python中的单词聚类

时间:2016-02-01 04:59:09

标签: python machine-learning cluster-analysis word

如何只对一组给定数据中的单词进行聚类:我已经在网上进行了很少的算法,比如k-Means algotihm,但似乎它们与文档聚类相关而不是单词聚类。任何人都可以建议我一些方法只有一组给定数据中的聚类词。 请新来的python。

2 个答案:

答案 0 :(得分:3)

Word集群将真的令人失望,因为计算机不懂语言。

您可以使用 levenshtein距离,然后执行层次聚类

可是:

  • dogfog的距离为1,即高度相似。
  • dogcat有3个字母中有3个不同。

除非你能定义一个好的相似性度量,否则不要聚集单词。

答案 1 :(得分:3)

基于我的上一个答案确实是一个错误答案的事实,因为它用于文档聚类而不是单词聚类,这是真正的答案。

您要找的是word2vec。 事实上,word2vec是一个基于深度学习的谷歌工具,效果非常好。它将单词转换为矢量表示,因此允许您使用它做多个事情。

例如,其中许多效果良好的例子之一是单词的代数关系:

  • 矢量('小狗') - 矢量('狗')+矢量(' cat')接近矢量('小猫') ;)
  • vector(' king') - vector(' man')+ vector(' woman')接近vector(' queen') ;)

这意味着它可以包含一个单词的上下文,因此它可以很好地适用于众多应用程序。

当你有向量而不是单词时,你几乎可以做任何你想要的事情。例如,您可以使用余弦距离进行k均值聚类作为相异度的度量...

希望这能很好地回答你的问题。如果您愿意,可以在不同的论文或网站上阅读有关word2vec的更多信息。我不会在这里链接它们,因为它不是问题的主题。