我有一个问题,即以其含义将大量句子聚集成小组。当您有很多句子并想以它们的含义分组时,这类似于问题。

建议哪种算法这样做?我不知道事先的簇数(随着越来越多的数据也可以改变),通常使用哪些功能来表示每个句子?

我现在尝试最简单的功能,只有单词列表和定义为:

enter image description here

(A和B是句子A和B中相应的单词集)

这根本有意义吗?

我正在尝试申请 平均换档 从Scikit库到此距离的算法,因为它不需要提前数量。

如果有人建议解决这个问题的更好的方法/方法 - 我仍然是该主题的新手,将非常感谢。

有帮助吗?

解决方案

检查 斯坦福NLP小组开源软件(http://www-nlp.stanford.edu/software), 尤其是, 斯坦福分类器 (http://www-nlp.stanford.edu/software/classifier.shtml)。该软件写在 Java, ,这可能会让您高兴,但也对其他一些语言具有绑定。注意, 许可 - 如果您打算在商业产品中使用其代码,则必须获得商业许可。

另一组有趣的开源库,恕我直言,适合此任务,更多是 机器学习的平行框架Graphlab (http://select.cs.cmu.edu/code/graphlab), 包括 聚类库, ,实现各种聚类算法(http://select.cs.cmu.edu/code/graphlab/clustering.html)。它特别适合 大量数据 (像您一样),因为它的实施 MapReduce 模型,因此支持 多核多处理器 并行处理.

您很可能知道以下内容,但我会提到以防万一。 自然语言工具包(NLTK) 为了 Python (http://www.nltk.org)包含用于群集/分类/分类文本的模块。检查相关章节 NLTK Book: http://www.nltk.org/book/ch06.html.

更新:

说起 算法, ,看来您已经尝试了大多数 scikit-learn, ,例如本主题提取中的说明示例: http://scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf.html. 。但是,您可能会发现有用的其他库,这些库实现了各种各样的 聚类算法, , 包含 非负基质分解(NMF). 。这样的图书馆之一是 Python基质分解(PYMF) 与主页 https://code.google.com/p/pymf 和源代码 https://github.com/nils-werner/pymf. 。另一个更有趣的图书馆,也是基于Python的图书馆,是 Nimfa, ,实现各种 NMF算法: http://nimfa.biolab.si. 。这是一份研究论文,描述了 NIMFA: http://jmlr.org/papers/volume13/zitnik12a/zitnik12a.pdf. 。这是其文档中的一个示例,它为非常相似的文本处理问题提供了解决方案 主题聚类: http://nimfa.biolab.si/nimfa.examples.documents.html.

许可以下: CC-BY-SA归因
scroll top