2012-06-12 53 views
1

我正在做一些研究,我与Apache Mahout的打0.6亨利马乌 - 集群 - “命名”集群元素

我的目的是要建立一个系统,将其命名为根据用户的输入不同类别的文档。这些文件不是事先知道的,我也不知道在收集这些文件时我有哪些类别。但我知道,模型中的所有文档都应该属于预定义的类别之一。

例如: 可以说我已经收集了N个文档,属于3个不同的组:

  • 政治
  • 麦当娜(流行明星)
  • 科幻

我不知道哪个文档属于哪个类别,但我知道我的N个文档中的每一个都属于这些类别中的一个(例如,没有任何有关的文档,比如篮球amo NG这N个文档)

所以,我想出了以下的想法:

  • 应用亨利马乌集群(例如K均值对这些文件K = 3) 这应该分成N个文件到3组。这应该是我的学习模式。我仍然不知道哪个文档真的属于哪个组,但至少文档现在按组群集

  • 要求用户在网上找到任何应​​该关于'麦当娜'的文档(我可以'不会向我的用户展示我的N个文档,它是一个限制)。然后我想测量这个文档和3个组中的每一个的“相似性”。 我期望看到user_doc和模型中麦当娜组中文档之间的相似性度量将高于user_doc和关于政治的文档之间的相似度。

我已经设法使用'Mahout in Action'书中生成文档集群。 但我不明白我应该如何使用Mahout来衡量“准备好”群集文档和一个给定文档之间的相似性。

我想过对于具有相同质心(用k均值聚类)的N + 1个文档重新运行k = 3的聚类,并查看新文档是否落在哪里,但也许还有其他方法可以做那?

对Mahout可能有用吗?或者我的想法在概念上是错误的? (例如,在Mahout的API而言将是非常好的)

感谢一个长的问题很多,不好意思(不能更好地描述它)

任何帮助,高度赞赏

附:这不是一个家庭工作项目:)

回答

2

这可能是可能的,但更容易的解决方案(恕我直言)将手动标记每个类别的几个文件,然后使用这些来引导k-means。即,计算手标记的政治/麦当娜/科幻文件的质心,并让k-手段从那里拿走它。

(花哨的话,你会做semisupervisednearest centroids classification。)