如何将具有相似内容的文本分组在一起?

数据挖掘 nlp 相似 文本
2021-09-20 13:44:47

我需要找到一种解决方案来根据文档相似性对文本语料库进行分组。假设我在 ML 方面没有经验 - 只有少数阅读 - 我想知道计算每个文本的tf-idf是否是正确的方法。我已经阅读了一些关于计算和比较 tf-idf 上的余弦相似度的内容,但我不知道如何进一步处理结果。

说“几乎相等”意味着“单词的顺序很重要”,而不仅仅是不同顺序的相同单词。

我正在考虑使用 Apache Spark 的 MLlib 来完成这项工作(或者至少使用 Scala 库)。

任何人都可以将我引向正确的方向,或者甚至更好地在此页面添加指向教程的链接吗?

3个回答

好吧,在进一步谷歌搜索后,我找到了解决方案:MinHash 或 SimHash 可以完成这项工作,我还在 GitHub 上找到了一个实现 MinHash 的工具,就在这个链接上

您必须使用 TF-IDF 和 N-Grams 构建术语矩阵。构建矩阵后,您必须计算字符串之间的接近度,并根据接近度将这些字符串组合在一起。

如果单词顺序很重要,那么我会说尝试 tf-idf 但作为短语。以 2-word 或 3-words 作为特征,为其生成 tf-idf 并进行相似度匹配。