我正在做一些研究,我正在使用 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这不是一个家庭作业项目:)