1

伙计们,我有一堆有标题和摘要的文件(大约 200k)。每个文档还有其他可用的元数据,例如类别 - (只有烹饪、健康、锻炼等之一)、类型 - (只有幽默、动作、愤怒之一)等。元数据结构良好,所有这些都是可用的在 MySql 数据库中。

当她在我们的网站上阅读这些文档之一时,我需要向我们的用户展示相关文档。我需要为产品经理提供标题、摘要和元数据的权重,以试验这项服务。

我计划在这些数据之上运行聚类,但由于所有 Mahout 聚类示例都使用基于数字的DenseVectors基于 Lucene 的文本矢量化这一事实而受到阻碍。

这些示例要么仅为数字数据,要么仅为文本数据。以前有没有人解决过这种问题。我一直在阅读 Mahout in Action 一书和 Mahout Wiki,但没有取得多大成功。

我可以从第一原则做到这一点——将所有标题和摘要提取到数据库中,计算 TFIDF 和 LLR,将每个单词视为一个维度,并通过大量代码编写来进行这个实验。这似乎是一个漫长的解决方案。

简而言之,这就是我被困的地方——我是注定要遵循第一原则,还是存在我以某种方式错过的工具/方法。我很想听听那些解决过类似问题的人的意见。

提前致谢

4

2 回答 2

0

我实际上正在研究类似的东西,但不需要区分数字和文本字段。

我决定使用语义向量包,它完成了关于 tfidf、语义空间向量构建和相似性搜索的所有部分。它使用 lucene 索引。

请注意,如果语义向量不适合您(当然,如果您走那条路) ,您也可以使用s-space包。

我对这种方法的唯一警告是索引部分不能是迭代的。每次添加新文档或修改旧文档时,我都必须为所有内容编制索引。使用语义向量的人说他们有很好的索引时间。但我不知道他们的语料库有多大。我将使用维基百科转储测试这些问题,看看它有多快。

于 2013-01-31T10:02:24.240 回答
0

您在这里有一个文本相似性问题,我认为您正在正确考虑它。只需遵循有关文本的任何示例。真的有很多代码吗?一旦你计算了文档中的单词,你就完成了。然后将其馈送到您想要的任何集群器中。术语提取不是你用 Mahout 做的事情,尽管肯定有一些库和工具擅长它。

于 2013-01-30T19:15:26.690 回答