【问题标题】:Tweet clustering after semantic analysis语义分析后的推文聚类
【发布时间】:2023-04-03 10:07:01
【问题描述】:

我想对一组推文进行聚类。我已经检索了推文,清理了它们,对它们应用了一个朴素贝叶斯分类器,并将它们分成两个文件,正面和负面。最后,我做了以下工作来搜索每条推文之间的相似之处:

  with open("positive.txt", "r") as pt:
        lines = pt.readlines()
        for lineA in lines:
            vectorA = text_to_vector(lineA)
            for lineB in lines:
                vectorB = text_to_vector(lineB)
                cosine = get_cosine(vectorA, vectorB)
                print lineA, "\n", lineB, "\n", "Cosine:", cosine

现在这应该衡量每个句子相对于另一个句子的相似性,我在想下一步可​​能是将所有短语的值相加,因此将句子 n 的关系的所有余弦值相加对所有句子,在这样做之后,绘制它们并应用 KMeans 之类的东西,我不完全确定我在这里采取了正确的方法,所以非常感谢任何帮助。

【问题讨论】:

  • 有很多选择,但根据我的经验,它们都不适用于推文。你有重复(容易),接近重复(更具挑战性,大规模)。但是集群 - Twitter 中的垃圾太多,无法正常工作。

标签: python nlp cluster-analysis k-means tweets


【解决方案1】:

如果您有一组文档要聚类(基于它们的内容),最简单的选择是使用工具Cluto。您基本上必须分两步运行它。

第一步是执行程序doc2mat,它接受一个输入文件,该文件应该包含所有文档,每行一个文档。 doc2mat 程序会写出一个矩阵文件,由每个文档的 tf-idf 向量表示组成。

然后您需要将此矩阵文件输入到程序 vcluster 中,该程序将产生聚类结果。如果您将参考类文件输入到 vcluster,您还可以评估聚类结果。

【讨论】:

  • 我可以在执行第一步后应用 k-means 吗?似乎也无法在护理周围找到 vcluster 以提供链接?最后,您能否详细说明您的最后一个陈述,不要认为我完全理解,请尝试一下并在我看到它是我正在寻找的内容后立即验证答案!
  • 是...你可以应用 K-means...浏览 vcluster 的文档...参数之一是“clmethod”,对于 K-means 应该是“direct” ...仔细阅读本手册glaros.dtc.umn.edu/gkhome/fetch/sw/cluto/manual.pdf
猜你喜欢
  • 2013-01-30
  • 2013-04-19
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多