如何使用Spacy查找句子中是否包含名词?

4

我目前正在进行一个自然语言处理的项目。我需要找出一句话中是否有名词。如何使用spacy实现这一功能?

1个回答

4

解决方案1:

import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u'hello india how are you?')
print(len([np.text for np in doc.noun_chunks])>0)

解决方案2:

import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u'hello india how are you?')
print(len([token.pos_ for token in doc if token.pos_=="NOUN"])>0)

第一个解决方案返回 True,但第二个解决方案返回 False。以下代码可以修复它。"India" 被评估为专有名词,因此布尔逻辑需要包括 "NOUN" 或 "PROPN" 中的任一项。print(len([token.pos_ for token in doc if token.pos_=="NOUN" or "PROPN"])>0) - datajoel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接