根据关键字列表从文档中提取部分 - Python

数据挖掘 机器学习 Python nlp 文本挖掘
2022-02-23 04:48:52

我是 NLP 的新手,我想问一下如何根据我使用 Python 的关键字从文本中提取句子。我创建了一个关键字列表,用于从文档中提取句子。

如果这将是一个简单的标记化问题,您将通过标记循环列表,我如何捕获同义词或相关词?

例如:

Keyword: Internal business

Sentence: You can only use this software for your business only.


Keyword: Confidentiality

Sentence: Information will be kept as secure as possible.

我实际上使用 TF-IDF 实现了文本分类,但数据集小,关键字多。我认为这行不通。提前致谢。

是否可以应用像 word2vec 这样的预训练模型?

是否也可以创建适合我关注的自定义模型?

2个回答

获取相关句子的理想方法是尝试为要分类的句子获取句子向量,然后将预定义关键字的向量与获得的句子向量进行比较。您可以通过平均句子中存在的单词的词向量来获得句子向量。一旦获得句子向量,就可以使用余弦相似度来比较关键字向量和句子向量。具有最大余弦相似度的那个会给你结果。

一个选项是Word Mover 的距离 (WMD),这是一种用于查找字符串对之间距离的算法。它基于单词嵌入(例如 word2vec),将单词的语义含义编码为密集向量。

WMD 距离衡量两个文本文档之间的差异,作为一个文档的嵌入词需要“旅行”以到达另一个文档的嵌入词的最小距离量。

例如:

在此处输入图像描述 资料来源:“从词嵌入到文档距离”论文

在您的情况下,您将获取关键字并将其与每个句子进行比较。如果距离低于阈值,则关键字与句子相关。