我有一个条件在下面的任务-它是关于Java /数据结构的。我将尽量简短地提出我的问题,因为回答这些问题将帮助我找到方向(因为我迷路了):
简单的信息检索系统,其中查询包含关键字,需要搜索的文档集合。响应查询,系统标识每个包含全部或部分关键字的文档(最多为n个文档),并按关键字的降序打印文档名称,即包含所有关键字的文档应该出现在列表的顶部。
发布于 2012-05-01 11:34:29
首先,您可能正在寻找阿帕奇·卢塞尼,这是一个在java中实现IR系统的开源库!
单独实现某些东西是很困难的,但是IR中最重要的数据结构是倒置指数。
倒排索引实际上是一个map:term->list<index>,它在每个术语之间映射到它所显示的文档。倒排索引的优点-是它符合IR标准操作,如连接(和查询)。
在您的具体问题中,从集合构建一个反向索引,一旦k术语的查询到达-获取与这些术语对应的k列表,并得到它们的联合。
现在,一旦您有了联合--剩下的就是创建一个直方图 (每个术语出现多少个列表,可以实现为HashMap) -并按降序打印这些直方图的键。
如果你想扩展你的IR知识,我建议阅读曼宁的信息检索导论。
https://stackoverflow.com/questions/10397060
复制相似问题