在文本处理中使用聚类

数据挖掘 文本挖掘 聚类
2021-10-12 05:18:06

嗨,这是我在数据科学堆栈中的第一个问题。我想为文本分类创建一个算法。假设我有大量的文本和文章。让我们说大约 5000 个纯文本。我首先使用一个简单的函数来确定所有四个及以上字符词的频率。然后我将其用作每个训练样本的特征。现在我希望我的算法能够根据它们的特征对训练集进行聚类,这是文章中每个单词的频率。(注意在这个例子中,每篇文章都有自己独特的特征,因为每篇文章都有不同的特征,例如一篇文章有​​ 10 个“水”和 23 个“纯”,另一个有 8 个“政治”和 14 个“杠杆”)。你能为这个例子推荐最好的聚类算法吗?

4个回答

如果你想继续你现有的路径,我建议通过每个词在整个语料库中的流行度来规范化每个词的频率,从而提升稀有词和预测词。然后使用随机投影将这些非常长的向量的维数减小到一定大小,这样您的聚类算法就会更好地工作(您不想在高维空间中聚类)。

但是还有其他的主题建模方式。阅读教程以了解更多信息。

我不知道你是否读过 Ted Pedersen 的 SenseCluster:http ://senseclusters.sourceforge.net/ 。非常好的感觉聚类论文。

另外,当你分析单词时,认为“计算机”、“计算机”、“计算机”……代表一个概念,所以只有一个特征。对于正确的分析非常重要。

要谈论聚类算法,您可以使用层次聚类在算法的每一步,您都会根据其特征合并两个最相似的文本(例如使用相异性度量,欧几里得距离)。通过这种不同程度的测量,您可以找到最佳的聚类数量,从而为您的文本和文章找到最佳聚类。

祝你好运 :)

不能说它是最好的,但潜在语义分析可能是一种选择。基本上它是基于共现的,你需要先对其进行加权。

http://en.wikipedia.org/wiki/Latent_semantic_analysis

http://lsa.colorado.edu/papers/dp1.LSAintro.pdf

问题是LSA没有可靠的统计支持。

玩得开心

对文本进行分类的一种方法是计算词频和逆文档频率。你可以参考这篇论文:http ://www.oracle.com/technetwork/testcontent/feature-preparation-130942.pdf