我想在spaCy尚不适用的新语言(希伯来语)上使用spaCy的Matcher类。
我找到了一个有效的令牌生成器+ POS标记器(来自Stanford NLP),但是我更喜欢spaCy,因为它的Matcher可以帮助我执行一些基于规则的NER。
可以为基于规则的Matcher提供带有POS标签的文本,而不是标准的NLP管道吗?
答案 0 :(得分:1)
您可以手动设置其他来源的防伪文档的单词和标记,然后使用Matcher。这是一个使用英语单词/标签来演示的示例:
from spacy.lang.he import Hebrew
from spacy.tokens import Doc
from spacy.matcher import Matcher
words = ["my", "words"]
tags = ["PRP$", "NNS"]
nlp = Hebrew()
doc = Doc(nlp.vocab, words=words)
for i in range(len(doc)):
doc[i].tag_ = tags[i]
# This is normally set by the tagger. The Matcher validates that
# the Doc has been tagged when you use the `"TAG"` attribute.
doc.is_tagged = True
matcher = Matcher(nlp.vocab)
pattern = [{"TAG": "PRP$"}]
matcher.add("poss", None, pattern)
print(matcher(doc))
# [(440, 0, 1)]
答案 1 :(得分:0)
如果要使用spaCy训练新的统计模型,则应阅读Training spaCy’s Statistical Models上的文档。
答案 2 :(得分:0)
据我所知,spaCy还没有针对希伯来语的训练模型。为了让您使用没有模型的语言,
from spacy.lang.he import Hebrew
nlp = Hebrew()
#or
nlp = spacy.blank("he")
请确保您可以从此处构建基于规则的匹配器。
答案 3 :(得分:0)
Since我正在使用stanfordnlp-似乎还有一个小距离:-)