将具有相同含义的特定领域单词/短语分组

数据挖掘 分类 nlp 文本挖掘 特征提取 命名实体识别
2022-02-18 18:09:00

我正在研究将具有相同含义的单词/短语组合在一起的 NLP 方法。例如,在句子 'the table is broken' 中,break 可以替换为以下单词/短语,并且句子仍然具有相同的含义。

Broken:损坏,毁坏,破坏,不适合用途,缺少一条腿

我想对包含特定领域和口语行话的文本执行此操作,因此现有的 NLP 解决方案可能不适合?

我的意图是将此作为命名实体提取和命名实体链接之间的桥接步骤。

1个回答

我建议你使用word2vec来完成这项任务。Word2vec 是一种无监督算法,用于计算语料库中用于学习的单词的 N 维嵌入。基本上,它以 n 维数组的形式为您在输入中使用的每个单词提供数字表示。

一旦建立模型并且可以使用 emeddings,找到相似的单词就像计算数组之间的相似度一样容易。这是在 word2vec 中通过寻找最相似的来完成的:

>>>result = word_vectors.most_similar(positive=['woman', 'king'], negative=['man'])
>>>print("{}: {:.4f}".format(*result[0]))
queen: 0.7699

或直接比较术语:

>>> result = word_vectors.similar_by_word("cat")
>>> print("{}: {:.4f}".format(*result[0]))
dog: 0.8798

这里查看更多示例。

要回答这个问题:

我想对包含特定领域和口语行话的文本执行此操作,因此现有的 NLP 解决方案可能不适合?

如果您使用自己的领域特定语料库训练模型,则应该没有任何问题;当然,前提是它足够长且足够丰富。