1

我必须实现一个模块,我需要将具有类似含义的语句(字符串)分组到不同的聚类中。我读了关于k-means,EM聚类等等。但是我面临的问题是这些算法是用图上的向量点解释的。我没有得到这些算法如何实现具有类似含义的句子(字符串)。请建议一些适当的方法。字符串聚类算法

例如, 让我们考虑一个课堂场景.. 1)老师有充足的知识。 2)学生明白教师教什么。 3)老师有时在课堂上守时。 4)老师在课堂上可以听到。

可以说我们有这4句话。然后看他们,我们可以说,句子1和2具有相似的含义。但是句子3和4既不相关,也不相关。这样我需要对句子进行分类。那么怎么做呢?

+0

这是一个很大的问题。我认为Google的Udacity的“深度学习”课程提供了一个很好的免费的使用'tensorflow'与python进行文本挖掘的介绍。 –

+0

我不认为这个问题有一个最佳答案,所以我投票决定将它关闭得太宽泛。这就是说 - 看一下“Word to Vector”或“Word Embedding”模型,这些模型在这方面显示出很多承诺。 – templatetypedef

回答

2

首先你应该让自己熟悉bag of words的概念。 基本思想IST在一个句子中的每个单词映射上出现,例如数量,对于句子hello worldhello tanay会得到映射到

Hello World Tanay 
    1 1  0 
    1 0  1 

这使您可以使用标准方法之一。

也犯不着将在看看TF/DF它是由重新称量词在bag of words表示,他们的重要性来区分(在你的情况或句子)的文件

其次,你应该看看LDA这是专门为将概念聚集在单词上而设计的。尽管如此,它是由概念构成的。

对我而言,最有希望听起来像是这些方法的组合。生成bags of words,使用TF/DF重新调整bag of words,运行LDA并使用LDA概念增加重新编号bag of words,然后使用标准聚类算法。

+0

让我们考虑一下课堂场景.. 1)老师有足够的知识。 2)学生明白教师教什么。 3)老师有时在课堂上守时。 4)老师在课堂上可以听到。 可以说我们有4个句子。然后看他们,我们可以说,句子1和2具有相似的含义。但是句子3和4既不相关,也不相关。这样我需要对句子进行分类。那么怎么做呢? –

+2

@TanayNarkhede:为了改善您的问题,您应该将此评论与编辑合并。尽管如此,这个例子让我怀疑这是可能的。因为,即使我作为一个人,也很难看出这种联系,因为它深深地隐藏在句子的语义中。 – CAFEBABE

2

集群不能做到这一点。

因为它会在数据stucture,但你想的意味着是很难抽象的人的观念,以集群中使用的统计数据来捕捉...

所以你首先需要解决的真正的艰巨任务使计算机可靠地理解语言。而不是在“最佳匹配”的基础上,但足以让量化的相似之处。

这方面实际上有些尝试,通常涉及海量数据和深度学习。他们可以在“巴黎 - 法国+美国=?”等玩具实例上做到这一点。 - 有时候。 Google for IBM Watson和Google word2vec。

祝你好运。您将需要高性能的GPU和Exabytes的培训数据。