自定义spacy停用词并保存模型

问题描述

我正在使用它来将停用词添加到 spacy 的停用词列表中

nlp.Defaults.stop_words |= {"my_new_stopword1","my_new_stopword2",}

但是,当我使用 nlp.to_disk() 保存 nlp 对象并使用 nlp.from_disk() 再次加载它时, 我正在丢失自定义停用词列表。 有没有办法用 nlp 模型保存自定义停用词?

提前致谢

解决方法

大多数语言默认值(停用词、词汇属性和语法迭代器)不会与模型一起保存。

如果要自定义它们,可以创建自定义语言类,请参阅:https://spacy.io/usage/linguistic-features#language-subclass。从此链接复制的示例:

from spacy.lang.en import English

class CustomEnglishDefaults(English.Defaults):
    stop_words = set(["custom","stop"])

class CustomEnglish(English):
    lang = "custom_en"
    Defaults = CustomEnglishDefaults

nlp1 = English()
nlp2 = CustomEnglish()

print(nlp1.lang,[token.is_stop for token in nlp1("custom stop")])
print(nlp2.lang,[token.is_stop for token in nlp2("custom stop")])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...