SPACYNLP:适用于可以是动词的专有名词-根据输入顺序的歧义性和基于标点符号的拆分

SPACYNLP:适用于可以是动词的专有名词-根据输入顺序的歧义性和基于标点符号的拆分,nlp,spacy,Nlp,Spacy,我正在使用spacy NLP。没有解析器能够始终正确地确定歧义标记的专有/名词/动词状态,因为在大多数语言中,拼写相同的单词可能具有不同的含义 例如,“遭遇”可以是外星人将你撞上他们的宇宙飞船的遭遇(名词,事件),也可以是“遭遇”如“遭遇世界”-->接触(动词) Spacy有时会以不同的方式识别同一拼写单词,即使在相似的情况下: 是不是标点符号(“=”?)导致了这种情况 我期望标记作为动词或名词识别的连续性,但不会改变。我理解,使用经过培训的spacy数据(使用en_small和en_medi

我正在使用spacy NLP。没有解析器能够始终正确地确定歧义标记的专有/名词/动词状态,因为在大多数语言中,拼写相同的单词可能具有不同的含义

例如,“遭遇”可以是外星人将你撞上他们的宇宙飞船的遭遇(名词,事件),也可以是“遭遇”如“遭遇世界”-->接触(动词)

Spacy有时会以不同的方式识别同一拼写单词,即使在相似的情况下:

是不是标点符号(“=”?)导致了这种情况

我期望标记作为动词或名词识别的连续性,但不会改变。我理解,使用经过培训的spacy数据(使用en_small和en_medium)不会在进展过程中使用LSTM,因此我不应期望spacy“由于同一句子中的先前决定而建立连续性”,但我仍然感到惊讶的是,同样的句子格式,同样的内容,spacy识别不同

与世界相遇。遭遇自我“和”遭遇世界=遭遇自我 => 分别解析为动词、名词

“面对自我,面对世界。”

=>解析为动词,动词

“遇见自我”


=>解析为动词

确保您使用的是spacy的最新版本和最新模型,如en_core_web_lg

在我的设置中,我没有得到您描述的错误:

nlp = spacy.load('en_core_web_lg')

doc = nlp("Encounter the world=Encounter the self.")
print([(t, t.pos_) for t in doc])
# [(Encounter, 'VERB'), (the, 'DET'), (world, 'NOUN'), (=, 'PUNCT'), (Encounter, 'VERB'), (the, 'DET'), (self, 'NOUN'), (., 'PUNCT')]

我的spacy版本:

print(spacy.__version__)
# 2.2.1

一般建议:始终正确分割数据。在本例中,您显然有两个单独的段与
=
字符连接。您是否通过分别传递这两个短语进行了测试?@WiktorStribiżew虽然未在示例图中显示,但Spacy正在围绕=,自动将此句子分成两个跨距。我添加了更多的示例来演示意外情况results@TiagoDuque谢谢你的建议-添加了更多完全独立的句子的例子。如果我说“self”没有被翻译成“名词”,我可能没有弄错,对吧?我猜这是把它当作代词。