【问题标题】:spacy: how to get lemma-based PhraseMatcherspacy:如何获得基于引理的 PhraseMatcher
【发布时间】:2019-09-27 12:54:18
【问题描述】:

我想查找具有相同引理的短语单词,例如,如果我搜索“cat runs”,它应该匹配“cats ran”。我尝试创建一个带有无引理的新文档,但由于某种原因我需要依赖项,但新文档不包含依赖项,并且我无法匹配新文档和旧文档的索引。

【问题讨论】:

    标签: python spacy


    【解决方案1】:

    PhraseMatcher 支持对文本以外的属性进行匹配,因此您无需构建额外的 Doc:

    import spacy
    from spacy.matcher import PhraseMatcher
    nlp = spacy.load('en')
    matcher = PhraseMatcher(nlp.vocab, attr="LEMMA")
    matcher.add("CAT", None, nlp("cats run"))
    matches = matcher(nlp("cat ran")) # [(14858270728821099472, 0, 2)]
    

    (我不认为非英语 spacy 模型或斯坦福模型使用 -PRON- 引理,所以我认为您不需要额外检查。如果您确实需要修改引理,您可以修改它们在现有文档中的位置:token.lemma_ = token.lemma_.lower()。正如您在示例中已经拥有的那样,请确保以相同的方式修改提供给 PhraseMatcher 的文本文档和短语文档。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多