【问题标题】:How to check if a token in present in a document with spaCy?如何使用 spaCy 检查文档中是否存在令牌?
【发布时间】:2020-03-24 08:57:22
【问题描述】:

我有一个庞大的 spaCy 文档列表和一个我想在文档中查找的单词列表。 一个例子:我想在一个网站文本中查找“阿司匹林”这个词,它是用 spaCy 解析的。 我要查找的关键字列表很长。

天真的方法

不要使用 spacy 而只是使用 if keyword in website_text: 作为一个简单的匹配器。当然,这样做的缺点是令牌会被忽略,搜索 test 会在 testedattested 等词处产生误报。

使用 spaCy 的匹配器

Matcher 是一个选项,但我需要根据我的关键字列表自动构建很多匹配器。

有没有推荐的方法来完成这项任务?

【问题讨论】:

    标签: python nlp spacy


    【解决方案1】:

    我会采用您幼稚的方法,但您可以使用 regular expressions 来获得不会出现误报的更智能的匹配。

    例如,\b(test|aspirin)\b 会选择“测试”和“阿司匹林”这两个词,但不会选择“有抱负”、“已证明”或“测试”。您可以在括号内添加其他单词,用竖线分隔,以获取更多关键词。

    Here's an example of it working.

    要将其实际应用于 Python 代码,您可以使用 re 模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      相关资源
      最近更新 更多