尝试使用 spacy matcher时出现错误: spacy.matcher.matcher.Matcher.add()是否有任何替代 function ? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我想在 spaCy 还没有可用的 model 的新语言(希伯来语)上使用 spaCy 的 Matcher class。
我找到了一个工作标记器 + POS 标记器(来自斯坦福 NLP),但我更喜欢 spaCy,因为它的 Matcher 可以帮助我做一些基于规则的 NER。
基于规则的匹配器是否可以输入带有 POS 标记的文本,而不是标准的 NLP 管道?
您可以手动为其他来源的 spacy 文档设置单词和标签,然后使用 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)]
如果你想用 spaCy 训练一个新的统计 model,你应该阅读关于训练 spaCy 的统计模型的文档。
据我所知,spaCy 还没有训练有素的希伯来语 model。 为了您使用没有模型的语言,
from spacy.lang.he import Hebrew
nlp = Hebrew()
#or
nlp = spacy.blank("he")
很确定您可以从这里构建基于规则的匹配器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.