使用word2vec聚类相似的单词

时间:2019-08-17 13:02:10

标签: nlp data-science word2vec

我有各种各样的餐馆标签,并且我也有一些与餐馆无关的词。如下所示:

vegan vegetarian pizza burger transportation coffee Bookstores Oil and Lube

我大约混合了500个标签。我想知道是否有一种方法可以选择与食物选择相关的类似标签,并省去诸如油和润滑油,运输等字眼。

我尝试使用word2vec,但是其中一些单词不止一个,并且找不到正确的方法。

蛮力方法是手动标记它们。但是,我想知道是否可以使用NLP或Word2Vec将所有相关标签聚集在一起。

2 个答案:

答案 0 :(得分:0)

Word2Vec可以帮助解决此问题,但要考虑的关键因素是:

  • 您的单词向量是如何训练的?使用现成的向量(例如在大型新闻故事中训练的流行GoogleNews向量)不太可能与您域中这些词的含义相匹配,或包含多词标记(例如'oil_and_lube '。但是,如果您有一个来自您自己领域的良好训练语料库,并且在上下文中使用了受控词汇表中的多词标记(例如oil_and_lube),那么您可能会获得非常好的向量,以精确地表达所需的标记。

  • 单词向量的相似度并非严格意义上的“同义词”,而是通常其他形式的紧密联系,包括相反性和单词可以互换或在相似上下文中使用的其他方式。因此,单词向量相似性值是否可以为您特定的所需“与食物相关”测试提供良好的阈值截止,这是您必须尝试并进行的尝试。 (例如:{{1}是否会影响彼此直接替换的单词是否彼此最接近,或者相同主题中的相同主题是否彼此最接近。 }参数变小或变大。因此,您可以找到调整Word2Vec训练参数的方法来改善所得矢量以满足您的特定需求。)

就如何进行更多建议,将需要更多有关可用培训数据的详细信息-这些标签来自何处?他们使用的格式是什么?你有多少? –以及您的最终目标–为什么区分餐厅和非餐厅的标签很重要?

答案 1 :(得分:0)

好的,谢谢您的详细介绍。

为了在word2vec上进行培训,您应该考虑以下事实:

  1. 您需要一个 巨大 变量 文本数据集。查看您的训练集,并确保它包含所需的有用数据,以获取所需的内容。
  2. 每行设置一个句子/短语。
  3. 对于预处理,您需要 删除标点符号 ,并将所有字符串设置为 小写
  4. 请勿词形修饰或词干修饰,因为文本不会那么复杂!
  5. 尝试其他设置:

    5.1 算法:我使用了word2vec,可以说 BagOfWords BOW )在与 SkipGram 不同的训练集。

    5.2 层数:200层效果不错

    5.3 向量大小:向量长度= 300是可以的。

现在运行训练算法。使用获得的模型来执行不同的任务。例如,在您的情况下,对于同义词,您可以将两个单词(即向量)与余弦(或相似性)进行比较。根据我的经验,余弦提供了令人满意的结果:两个单词之间的距离由0到1之间的倍数给出。同义词具有较高的余弦值,您必须找到同义词和非同义词之间的界限。