doc
对象中的令牌的哪些属性会PhraseMatcher
检查并要求查找匹配项?
例如,如果我只是使用
创建doc
doc1 = nlp('lead')
那么'领先'令牌是一个ADJ,而如果我有一个像
这样的文档doc2 = nlp('lead plate')
那么'领先'令牌是NOUN。
如果我将doc1
添加到PhraseMatcher
个实例,我是否应该期望此匹配器在doc2
中找到匹配项?
同样如果我有,例如</ p>
doc1 = nlp('Lead')
doc2 = nlp('lead')
即。区分大小写吗?
这更不用说依赖等令牌属性了。我没有找到明确的文档。
答案 0 :(得分:3)
PhraseMatcher
将匹配ORTH
值,即确切文本。这使得它可以匹配大型术语列表和字符串的确切出现,而无需担心spaCy的标记化。有关此问题的更多背景信息,PhraseMatcher
无法处理其他属性的原因以及不区分大小写的可能解决方案,请参阅this discussion on the issue tracker。
如果您想根据令牌属性进行匹配,则可能需要使用基于规则的Matcher
代替:
pattern = [{"LOWER": "lead", "POS": "ADJ"}]
文档中还有newly added example,其中显示了如何将Matcher
与令牌匹配模式和正则表达式(或更常见的二进制标志)一起使用。这可以用于添加您自己的自定义标记描述,例如不同的拼写。
您可能还想查看spacy-lookup
,这是一个使用FlashText模块的社区插件,并提供了内置PhraseMatcher
的替代方案。