【发布时间】:2012-02-08 15:13:07
【问题描述】:
就 Lucene/Solr 而言,我刚从托儿所出来,所以我可能试图完全错误地利用它,但我希望有人能指出我正确的方向。
我的文档(少于 3,000 个)是来自分类的简短陈述。都是单句,有的不超过4-6个字。每个文档只有一个字段,因此跨多个字段搜索不是我要研究的路线。我想做的是查询工作相关文档的内容并返回相关的分类语句。
目前我正在使用 Solr 附带的默认示例设置,并添加了来自 Wordnet 的动词同义词,因为执行的操作是我试图识别的内容(即“将服装更改为规格”的分类声明)。
基本的单词匹配按预期工作,但我想让事情变得更复杂一些。由于查询太长了,我在搜索小文档时永远不会得到高相关性分数。我确信这可以通过以某种方式标准化分数来解决,所以我并不真正关心分数的出来,而是正在识别的实际陈述(文档)。
我会更好地即时索引文档(当前是长查询)并查询每个分类语句并编译/排序结果,还是可以以其他方式有效地对微小文档执行这些长查询?我想这可能会带来它自己的困难。
【问题讨论】:
-
我参考了分类学上的维基百科条目,但我仍然不明白你的问题。请包括一些示例文档和查询以及它们应该如何匹配。你想对它们进行什么样的分析?
-
3000 个文档无论如何都是一个非常小的数字。将其全部存储在内存中的 python 脚本将占用几 MB 的 RAM,无需时间处理它,并在眨眼间从磁盘存储/检索它。所以你可以自己实现任何需要的算法。识别“执行的动作”似乎是“词性”算法(名词、动词等)的工作。像 Mahout 这样的数据挖掘包可以做到这一点。
-
@aitchnyu - 不幸的是,我对 SA 或 LSI 一无所知,无法编写自己的算法。我希望我可以利用 Solr 之类的东西让我在这里快速开始。我需要具体了解文档中是否存在某个语句。措辞可能完全不同(同义词等),但我需要能够抓住它。我确信这些东西可以通过算法和 POS 标记来完成,但我不知道该怎么做。此外,我对 Java 一点也不擅长,所以这会妨碍我使用一些工具。
-
@aitchnyu - 上面给出了一个示例文档。查询可以是任何内容,例如职位描述、用户指南、教程……任何内容。