【问题标题】:How to reduce semantically similar words?如何减少语义相似的词?
【发布时间】:2018-09-03 06:56:40
【问题描述】:
我有大量从文档中提取的词库。语料库中有可能具有相同含义的单词。
比如:“command”和“order”意思一样,“apple”和“apply”意思不一样。
我想合并相似的词,说“命令”和“命令”到“命令”。
我曾尝试使用 word2vec,但它不检查单词的语义相似性(它为苹果输出良好的相似性并应用,因为单词中的四个字符是相同的)。当我尝试使用 wup 相似度时,如果单词有匹配的同义词但结果不是那么令人印象深刻,它会给出很好的相似度分数。
减少语义相似词以去除冗余数据并合并相似数据的最佳方法是什么?
【问题讨论】:
标签:
python-2.7
gensim
word2vec
text-analysis
redundancy
【解决方案1】:
我相信这里的选项之一是使用WordNet。它为您提供了该单词的同义词列表,因此您可以在知道其词性的情况下将它们合并在一起。
但是,我想指出“命令”和“命令”是不一样的,例如你不会在餐馆里指挥食物,这样的同音词对于许多词来说都是正确的。
我还想指出,对于 Word2vec,拼写是无关紧要的,根本没有考虑在内,该算法只考虑并发使用。我想您可能会将其与FastText 混合使用。
但是,您的模型应该存在一些问题。
因为在一组标准的嵌入中,这些概念之间的距离应该很大。 MUSE FastText“apple”和“apply”的相似度只有0.15,相当低。
我使用 Gensim 的函数
model.similarity("apply", "apple")
因此您可能需要修复学习参数或仅使用预训练模型。