- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
metaphor1 = " I run a race"
from nltk.corpus import verbnet as vn
for word in metaphor1.split():
if vn.classids(word) != []:
start = set(vn.classids(word))
print (start)
上面的代码将会打印出来
['meander-47.7', 'preparing-26.3-1', 'run-51.3.2', 'swarm-47.5.1-1']
['run-51.3.2']
第一个列表是“run”的所有动词含义,但第二个列表给出了句子中使用的含义。我想删除第一个列表,我尝试这样做
metaphor1 = " I run a race"
from nltk.corpus import verbnet as vn
for word in metaphor1.split():
if vn.classids(word) != []:
start = set(vn.classids(word))
remove = set(vn.classids('run'))
final = list(set(vn.classids(word))-set(vn.classids('run')))
print (final)
但是这会返回
[]
[]
到底是什么导致了这个问题以及如何解决它。
最佳答案
循环返回一个空列表,[]
,因为集合与其自身的对称差是一个空集合。
您想要删除同义词集的第三个元素,run-51.3.2
。您错误地将变量 remove
分配给 run
的整个同义词集,而不仅仅是一个元素。
试试这个
import nltk
metaphor1 = STRING HERE
for word,pos in nltk.pos_tag(nltk.word_tokenize(metaphor1):
if 'V in pos: #Another way to focus on only verbs
return [sense for sense in vn.classids(word) if 'run' not in sense]
我使用pos_tag
作为显式动词。即使该单词不在 VerbNet 数据库中,即使该单词充当动词,VerbNet 也可能返回一个空列表。
我使用了word_tokenize
来使代码更加通用。
代码返回一个列表。如果您只想将变量打印到控制台,请将 return
更改为 print
。
关于python - Verbnet : vn. classids() 返回 2 个列表,但我需要删除其中 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28922423/
似乎我遇到了一些问题,我很困惑为什么...... 代码: $(".post-click").click(function() { var classid = $(this).attr('id'
当我使用 SWFObject 进行静态发布时,我总是在标签中看到一个 classid,即 标签中的 classid 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https
从 YouTube 嵌入功能获得的典型代码片段如下所示: 现在,元素有一个 type 属性来告诉浏览器它正在嵌入一个 flash 文件,但对于使用 的浏览器标签,浏
当使用 regasm 为 COM 互操作注册程序集时,它所做的一件事是创建一个 HKEY_CLASSES_ROOT\CLSID{000…000} 注册表项,其默认值为 COM 类的 ProgId(请参
我正在开发一个嵌入了 Shockwave Flash 播放器的 Windows 应用程序。C++ 部分应该能够调用 Flash 电影方法,反之亦然。最初的实验是使用 MFC 完成的。它有效。但现在我想
我已将一个类型库导入到具有许多调度接口(interface)的 Delphi XE2 中。他们中的大多数都有一个自动创建的组件类并自动创建相应的delphi T 接口(interface)。 但是,我
我有以下两个容器 map > allStudents; map > assocStudents; 其中 assocStudents 是所有学生的子集。获得 allStudents 减去 assoc
我正在尝试使用 mex.h将我编写的 c++ 程序转换为 Matlab 命令的 header ,但我不明白它们的 mxArray 结构是如何工作的。 假设我有一个 std::vector称为 data
我有这个表结构 | id | classid | contextid | ---------------------------- 1 2 2 2
metaphor1 = " I run a race" from nltk.corpus import verbnet as vn for word in metaphor1.split():
我是一名优秀的程序员,十分优秀!