文本相似性:使用哪些 nlp 方法?
数据挖掘
nlp
文本挖掘
word2vec
相似
类似文件
2022-02-13 13:43:26
1个回答
有很多方法可以查看文本的相似性,但这取决于您的用例。
语义
如今,词嵌入越来越流行。就像评论中建议的那样,您可以使用Doc2Vec将您的句子转换为向量并计算每个句子的余弦距离。
这些学习嵌入的想法是,您可以通过查看单词在上下文中的使用方式来对句子的含义进行编码。因此,如果单词在上下文中以相同的方式使用,句子将是相似的。
但是,这可能难以解释。
例如:
Good tattoo shop. Clean space.
Good pizza restaurant. Large space.
Terrible tattoo shop. Dirty space.
其中哪些在语义上是接近的?这在很大程度上取决于您的培训和您自己的判断,以确定结果是否对您有用。
情绪
如果句子的情绪是积极的或消极的(或在其他尺度上),也许你有兴趣说句子是相似的。
例如:
假设你可以有一个规模的情绪, 在哪里是负数,是中性的并且是积极的。
Good tattoo shop. Clean space.
Sentiment = 0.7
Good pizza restaurant. Large space.
Sentiment = 0.75
Terrible tattoo shop. Dirty space.
Sentiment = -0.9
网上有很多关于如何做到这一点的资源。这是带有一些链接的答案。
弓
词袋是一种非常简单的方法,但取决于你在做什么,它可以解决问题。假设你想说句子是相似的,如果它们是关于同一行业的企业的。
您可以为每个行业制作一个简单的字典:
word_per_industry = {
'restaurants' = ['restaurant', 'food', 'chef', 'dish', 'salad', 'lunch'],
'tatto_shop' = ['clean', 'dirty', 'art', 'sterlized']
.
.
.
}
然后,每个句子,您可以计算句子中哪个企业的单词更多,如果句子来自同一行业,它们是相似的。当然,你也可以根据另一个特征来做列表,不一定是行业。
