首页 > 解决方案 > 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”类型的参数不可迭代

标签: pythonspacy

解决方案


这不是错误——该Token对象是单个令牌数据的容器对象,而不是可迭代序列。在您的代码中,您正在检查item in subject,它期望subject(令牌)是一个序列。如果要检查令牌文本是否与字符串匹配,实际上是要检查token.text == string.


推荐阅读