【问题标题】:how to match the lemma of a string with the lemmas of the list using phrase matcher in spacy如何使用spacy中的短语匹配器将字符串的引理与列表的引理匹配
【发布时间】:2019-07-27 16:16:31
【问题描述】:

我有一个列表和一个句子,我想将列表与句子中单词的引理相匹配,即

list_words = ['play', 'burn fireworks', 'eat']
sentence = "sita was playing with her friends while her broter was burning fireworks"

我试过了,

patterns = [__model.make_doc(text) for text in list_words]
spacy_doc = __model(sentence)
matcher = PhraseMatcher(__model.vocab, attr="LEMMA")
mather.add(id, None, *patterns)

即在 PhraseMtcher 中添加 LEMMA 作为 attr, 但这对我没有帮助 因为它应该匹配 burning balloon 并从句子中播放,而不是那样,我得到一个空列表。

【问题讨论】:

    标签: python-3.x spacy matcher lemmatization


    【解决方案1】:

    如果__model 启用了标记器(它可能默认启用),如果您在创建模式时将__model.make_doc(text) 更改为__model(text),这将起作用。 make_doc() 仅适用于 attr="ORTH",因为它除了标记化之外没有任何作用。

    如果您有很多基于引理的模式并且它们都不需要解析或命名实体,您可以禁用__model 中的parserner 以使事情变得更快,因为lemmatizer 只依赖于标记器.

    (PhraseMatcher 警告您 nlp(text) 对于 ORTH-only 模式可能会很慢,并建议改用 nlp.make_doc(),但我认为如果您的文档没有属性,它也应该尝试警告您您正在尝试匹配。)

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 1970-01-01
      • 2021-08-08
      • 2021-08-17
      • 2019-01-05
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      相关资源
      最近更新 更多