python - TypeError:“spacy.tokens.token.Token”类型的参数不可迭代
问题描述
我需要检查句子的主语是否存在于列表中,但我对这个错误有一些问题,我不明白如何解决它
def __init__(self, user_input):
personal_words = ["I", "ME", "US"]
er = ["YOU"]
pos = pop(user_input)
for token in pos:
if token.dep == nsubj:
subject = token
print(subject)
if any(item in subject for item in personal_words):
personal()
elif any(item in subject for item in er):
era()
else:
n_personal()
TypeError:“spacy.tokens.token.Token”类型的参数不可迭代
解决方案
这不是错误——该Token
对象是单个令牌数据的容器对象,而不是可迭代序列。在您的代码中,您正在检查item in subject
,它期望subject
(令牌)是一个序列。如果要检查令牌文本是否与字符串匹配,实际上是要检查token.text == string
.
推荐阅读
- ruby-on-rails - 一个模型在另一个模型中的 CRUD
- react-native - 尽管样式表中的样式,但文本未居中
- linux - 如何使用 ssh-add 从代理中删除身份(pem 文件)
- java - 将整数值添加到数据库表错误
- javascript - 为什么我的 javascript 代码不起作用,即使它在网站 JSFiddle 上工作?文本框的按钮编辑值
- typescript - 如何在不使用“任何”的情况下键入此功能
- c# - C# System.Speech.Recognition 没有命令?
- r - RunUMAP 给出分段错误
- android - 无法增加模拟虚拟设备的 /system/ 大小
- javascript - 遍历数组并为每个项目返回一个 `Dropdown.Item` 元素