如何确定字符串中是否存在语义概念

数据挖掘 Python 文本挖掘 语义相似性
2022-03-08 04:36:31

我需要找到一种方法来检测大字符串是否包含特定的子字符串。

想象一下,我有一个完整的合同页面在我的 Python 程序中转换为字符串。我想做的是说转换为字符串的页面中是否存在特定术语(比整个页面字符串小的字符串)。匹配必须在语义上完成。

例如,在以下情况下,我希望查询 1 的分数很高,而查询 2 的分数很差。请注意,我的查询可能不止一个句子。

查询 1

“供应商将在一周内完成产品的交付”

查询 2

“我喜欢菲尔柯林斯”

页面文字

“供应商将在每年 7 月获得报酬。

产品交付将在一周内完成。

……”

你会怎么做这个任务?

1个回答

这本质上是信息检索:通常有一个文档集合,目标是找到与给定查询最相似的文档(您称之为“语义概念”)。

传统的方法是将文档集合转换为向量,通常使用TFIDF权重,但有很多选择(我假设最近的方法倾向于使用词(或文档)嵌入)。然后使用相似度度量(例如余弦)来衡量每个文档与查询之间的相似度,并选择最相似的文档。由于在这种情况下将只有一个文档,因此您可以使用相似度级别的阈值来回答是或否(找到或未找到概念)。