1

我正在做一些研究,我正在使用 Apache Mahout 0.6

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

例如:假设我收集了 N 个文档,属于 3 个不同的组:

  • 政治
  • 麦当娜(流行歌星)
  • 科幻小说

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

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

  • 应用 mahout 聚类(例如,在这些文档上 k=3 的 k-mean)这应该将 N 个文档分成 3 组。这应该是我学习的一种模式。我仍然不知道哪个文档真正属于哪个组,但至少这些文档现在按组聚类

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

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

我考虑过为具有相同质心的 N+1 个文档(就 k 均值聚类而言)重新运行 k=3 的集群,并查看新文档是否落在哪里,但也许还有其他方法可以做到这一点?

是否有可能与 Mahout 或我的想法在概念上是错误的?(就 Mahout API 而言的示例会非常好)

非常感谢,很抱歉问了一个很长的问题(无法更好地描述它)

非常感谢任何帮助

PS这不是一个家庭作业项目:)

4

1 回答 1

2

这可能是可能的,但更简单的解决方案(恕我直言)是从每个类别中手动标记一些文档,然后使用这些文档来引导 k-means。即,计算手工标记的政治/麦当娜/科幻文档的质心,并让 k-means 从那里获取它。

(用花哨的术语来说,您将进行半监督 最近质心分类。)

于 2012-06-12T14:02:29.167 回答