空间中引理查找表的扩展

2024-09-30 01:33:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在处理与NLP图书馆空间文本。然而,Spacy并没有正确地将所有单词词组化,因此我想扩展查找表。目前,我正在将Spacy的常量查找表与我的扩展合并,然后覆盖Spacy的本机查找表。在

然而,我有一种感觉,这种方法可能不是最好和最一致的方法。在

问题:在Spacy中是否还有更新查找表的可能,例如更新或扩展函数?我看了文件,找不到这样的东西。还是这种方法“很好”?在

我当前方法的实例:

import spacy
nlp = spacy.load('de')
Spacy_lookup = spacy.lang.de.LOOKUP
New_lookup = {'AAA':'Anonyme Affen Allianz','BBB':'Berliner Bauern Bund','CCC':'Chaos Chaoten Club'}
Spacy_lookup.update(New_lookup)
spacy.lang.de.LOOKUP = Spacy_lookup
tagged = nlp("Die AAA besiegt die BBB und den CCC unverdient.")
[ print(each.lemma_) for each in tagged]

Die
Anonyme Affen Allianz
besiegen
der
Berliner Bauern Bund
und
der
Chaos Chaoten Club
unverdient
.

Tags: 方法langnewnlpspacydelookupbbb
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:45

你的解决方案似乎不错。在

但是,我更清洁的解决方法是利用自定义空间管道特性。具体来说,如果令牌在doc中,您可以创建一个新组件来更新lemma属性,然后将其堆栈在管道中。在

示例代码:

import spacy
custom_lookup = {'AAA':'Anonyme Affen Allianz','BBB':'Berliner Bauern Bund','CCC':'Chaos Chaoten Club'}

def change_lemma_property(doc):
    for token in doc:
        if (token.text in custom_lookup):
            token.lemma_ = custom_lookup[token.text]
    return doc

nlp = spacy.load('de')
nlp.add_pipe(change_lemma_property, first=True)
text = 'Die AAA besiegt die BBB und den CCC unverdient.'
doc = nlp(text)
[print(x.lemma_) for x in doc]

相关问题 更多 >

    热门问题