首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何匹配术语,除了那些后面的特定词使用spacy匹配器?

如何匹配术语,除了那些后面的特定词使用spacy匹配器?
EN

Stack Overflow用户
提问于 2021-06-24 17:06:05
回答 1查看 380关注 0票数 0

我有多篇研究论文,其中包括:“社交媒体平台”和“媒体平台”。

我想匹配所有的“媒体平台”术语,而不触及“社交媒体平台”术语。

以下是我的示例文本:

“社交媒体平台很棒。它是一个伟大的媒体平台。”

我只想与“媒体平台”在第二句中略去第一句中的:

“社交媒体平台很棒。它是一个伟大的媒体平台。”

到目前为止,我使用的模式并不十分有效,因为它也与“伟大”一词相匹配。

“社交媒体平台很棒。它是一个伟大的媒体平台。”

这是我的模式:

代码语言:javascript
复制
pattern = [{'LOWER': 'social', 'OP': '!'},
           {'LOWER': 'media'},
           {'LOWER': 'platform'}]

有可能用spacy matcher来解决这个问题吗?还是有可能使用regex?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-26 07:49:14

由于否定操作的工作方式,无法准确地从spaCy匹配器获得所需的结果。您应该使用一个函数来筛选匹配,如下所示:

代码语言:javascript
复制
matches = ... matcher output ...
final = [mm for mm in matches if mm.start == 0 or mm.doc[mm.start-1].text != "social"]

没有理由在这个问题上使用regex。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68120015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档