spaCy PhraseMatcher 匹配什么?
What does the spaCy PhraseMatcher match on?
doc
对象中标记的哪些属性需要 PhraseMatcher
检查并需要找到匹配?
例如,如果我只是使用
创建一个 doc
doc1 = nlp('lead')
然后 'lead' 令牌是一个 ADJ,而如果我有一个文档,例如
doc2 = nlp('lead plate')
那么 'lead' 标记是一个名词。
如果我将 doc1
添加到 PhraseMatcher
实例,我是否应该期望此匹配器在 doc2
中找到匹配项?
同样,如果我有,例如
doc1 = nlp('Lead')
doc2 = nlp('lead')
即是否区分大小写?
这还不算像依赖等令牌属性。我没有找到关于这个的文档。
PhraseMatcher
将匹配 ORTH
值,即准确的文本。这让它可以匹配大型术语列表和字符串的精确出现,而不必担心 spaCy 的标记化。有关这方面的更多背景信息,为什么 PhraseMatcher
不能作用于其他属性,以及不区分大小写的可能解决方案,请参阅 this discussion on the issue tracker。
如果您想根据令牌属性进行匹配,您可能希望使用基于规则的 Matcher
:
pattern = [{"LOWER": "lead", "POS": "ADJ"}]
文档中还有此 newly added example,展示了如何将 Matcher
与标记匹配模式和正则表达式(或更普遍的二进制标志)一起使用。这对于添加您自己的自定义令牌描述(如不同的拼写)很有用。
您可能还想查看 spacy-lookup
,这是一个社区插件,它使用 FlashText 模块并提供内置 PhraseMatcher
的替代方案。
doc
对象中标记的哪些属性需要 PhraseMatcher
检查并需要找到匹配?
例如,如果我只是使用
创建一个doc
doc1 = nlp('lead')
然后 'lead' 令牌是一个 ADJ,而如果我有一个文档,例如
doc2 = nlp('lead plate')
那么 'lead' 标记是一个名词。
如果我将 doc1
添加到 PhraseMatcher
实例,我是否应该期望此匹配器在 doc2
中找到匹配项?
同样,如果我有,例如
doc1 = nlp('Lead')
doc2 = nlp('lead')
即是否区分大小写?
这还不算像依赖等令牌属性。我没有找到关于这个的文档。
PhraseMatcher
将匹配 ORTH
值,即准确的文本。这让它可以匹配大型术语列表和字符串的精确出现,而不必担心 spaCy 的标记化。有关这方面的更多背景信息,为什么 PhraseMatcher
不能作用于其他属性,以及不区分大小写的可能解决方案,请参阅 this discussion on the issue tracker。
如果您想根据令牌属性进行匹配,您可能希望使用基于规则的 Matcher
:
pattern = [{"LOWER": "lead", "POS": "ADJ"}]
文档中还有此 newly added example,展示了如何将 Matcher
与标记匹配模式和正则表达式(或更普遍的二进制标志)一起使用。这对于添加您自己的自定义令牌描述(如不同的拼写)很有用。
您可能还想查看 spacy-lookup
,这是一个社区插件,它使用 FlashText 模块并提供内置 PhraseMatcher
的替代方案。