Python 如何添加一些我在spacy中做名词块(或textblob中的np_提取器)时已经知道的名词短语?

Python 如何添加一些我在spacy中做名词块(或textblob中的np_提取器)时已经知道的名词短语?,python,spacy,textblob,Python,Spacy,Textblob,我在spacy中使用名词组块,在textblob中使用np提取程序来查找一些文章中的所有短语。 他们的一些技术术语分析错误。例如:“方差分析也称为方差分析”,结果表明名词短语是“方差分析”、“分析”、“方差”,但我认为正确的名词短语是“方差分析”、“方差分析”。 我已经有了一个包含一些技术短语的短语列表,我认为它可以帮助解析。如何使用此列表重新培训或改进名词短语提取器?这听起来是一个很好的使用案例。在像您这样的场景中,它特别强大,您可以将统计模型(例如,基于词性标记和依赖项的名词块)与您自己的规

我在spacy中使用名词组块,在textblob中使用np提取程序来查找一些文章中的所有短语。 他们的一些技术术语分析错误。例如:“方差分析也称为方差分析”,结果表明名词短语是“方差分析”、“分析”、“方差”,但我认为正确的名词短语是“方差分析”、“方差分析”。
我已经有了一个包含一些技术短语的短语列表,我认为它可以帮助解析。如何使用此列表重新培训或改进名词短语提取器?

这听起来是一个很好的使用案例。在像您这样的场景中,它特别强大,您可以将统计模型(例如,基于词性标记和依赖项的名词块)与您自己的规则结合起来,以涵盖其余的特定情况

下面是一个简单的例子:

导入空间
从spacy.matcher导入短语匹配器
nlp=spacy.load(“en_core\u web\u sm”)
matcher=短语匹配器(nlp.vocab)
#这只是一个示例–请参阅文档,了解如何更优雅地执行此操作
添加(“短语”,无,nlp(“方差分析”),nlp(“方差分析”))
doc=nlp(“关于方差分析或方差分析的文本”)
匹配=匹配器(文档)
对于match_id,在matches中开始和结束:
匹配的_span=doc[开始:结束]
打印(匹配的文本)
#方差分析
#方差分析
匹配项的
开始
结束
索引允许您创建一个span–因此您将以
span
对象结束,就像
doc.noun\u块
返回的对象一样。如果您想更优雅地解决这个问题,还可以添加一个like
doc.\uu.custom\u noun\u chunks
,它在
doc
上运行匹配器,并返回匹配的跨距,甚至是匹配的跨距加上原始的名词块


顺便说一句,
doc.noun_块
基于词性标记和依赖项解析。您可以查看英文代码,了解它们是如何计算的。虽然理论上可以通过微调标记器和解析器来改进名词块,但这种方法似乎有点过分,而且对于您的用例来说更具推测性。如果您已经有了短语列表,您最好直接匹配它。

谢谢您的回答!我还有一个问题,就是有没有函数来评估这个模型生成的那些名词的准确性?如果模型对一个名词的准确性没有信心,我想放弃这个名词。我只想保留模型所确信的那些名词。