猿问

Spacy is_stop 不识别停用词?

当我使用 SpaCy 来识别停用词时,如果我使用en_core_web_lg语料库它不起作用,但是当我使用en_core_web_sm. 这是一个错误,还是我做错了什么?


import spacy

nlp = spacy.load('en_core_web_lg')


doc = nlp(u'The cat ran over the hill and to my lap')


for word in doc:

    print(f' {word} | {word.is_stop}')

结果:


 The | False

 cat | False

 ran | False

 over | False

 the | False

 hill | False

 and | False

 to | False

 my | False

 lap | False

但是,当我更改此行以使用en_core_web_sm语料库时,会得到不同的结果:


nlp = spacy.load('en_core_web_sm')


 The | False

 cat | False

 ran | False

 over | True

 the | True

 hill | False

 and | True

 to | True

 my | True

 lap | False


慕少森
浏览 187回答 2
2回答

湖上湖

试试from spacy.lang.en.stop_words import STOP_WORDS,然后你就可以显式检查单词是否在集合中from spacy.lang.en.stop_words import STOP_WORDSimport spacynlp = spacy.load('en_core_web_lg')doc = nlp(u'The cat ran over the hill and to my lap')for word in doc:    # Have to convert Token type to String, otherwise types won't match    print(f' {word} | {str(word) in STOP_WORDS}')输出以下内容:The | False cat | False ran | False over | True the | True hill | False and | True to | True my | True lap | False对我来说看起来像一个错误。但是,STOP_WORDS如果您需要,这种方法还可以让您灵活地将单词添加到集合中
随时随地看视频慕课网APP

相关分类

Python
我要回答