缺少 spacy en_core_web_lg 中的停用词

missing stop words from spacy en_core_web_lg

我下载了 en_core_web_lg(en_core_web_lg-2.0.0) 但是当我加载它并在 spacy 上使用它时。但它似乎遗漏了很多基本的常见停用词,例如 "be"、"a" 等。我是否遗漏了正确的版本?

import nltk
n = nltk.corpus.stopwords.words('english')
"be" in n

O/P:正确

import spacy
nlp = spacy.load("en_core_web_lg")
nlp.vocab["be"].is_stop

O/P: 错误

英语停用词在 this 文件中定义,如您所见,be 属于它们。

您可以导入英文停用词集,然后检查您的词是否属于它。 可能有更简单的方法,但以下代码肯定可以实现您正在寻找的内容:

from spacy.lang.en import STOP_WORDS
import spacy
nlp = spacy.load('en')
doc = nlp("be amazing")
for token in doc:
    if (token.text in STOP_WORDS):
        print(token.text)

您可能 运行 遇到过这个错误:

https://github.com/explosion/spaCy/issues/1574

en_core_web_md 和 en_core_web_lg 模型缺少停用词,但您的代码将按预期使用 en_core_web_sm。