我正试图在Lucene上实现BM25f评分系统。我需要根据我的需要对here进行原始实现进行一些小的更改,我在他获得平均字段长度和文档长度的部分迷路了...有人可以指导我如何或从何处获得它?如何在Lucene中获得平均字段长度和文档长度?
回答
你可以从文件领域相关TermVector
实例字段长度,但是这会增加你的索引大小。除非你买不起一个更大的指数,否则这可能是要走的路。当然,你仍然需要自己计算平均值,并将其存储在其他地方(或者可以将其存储在具有众所周知的外部标识的特殊文档中,只需在统计信息发生变化时更新)。
如果你可以将数据存储在指数之外,有一两件事你可以做的是算令牌时文档记号化,并存储计数平均。如果您的文档集合是静态的,只需在索引后将每个字段的值转储到文件&进程中。如果索引只需要添加更新,则可以存储文档数量和每个字段的平均长度,并重新计算平均值。如果文档将被删除,并且您需要准确的计数,则需要重新解析要删除的文档,以了解每个字段包含多少条款,或者如果您正在使用该条款,则需要从TermVector
获取长度。
可以说我不喜欢指数大小的增加,那么? – Shrinath 2011-05-23 10:01:48
如果不存储术语向量,则必须在索引时计算每个字段中术语的数量,并在某处存储这些计数或平均值。一个“特殊”文件是一种可能性。另一种可能性是使用某个数据库或键值存储来存储索引统计信息。不过,如果您添加或删除文档,请记住更新它们。当然,如果你的文件长度相近,那么稍微偏离一点就不会伤害BM25的统计数据。 – 2011-05-23 17:00:05
- 1. lucene文档长度4.0
- 2. 平均字长度.txt
- 3. ArrayList:获取最长字符串的长度,获取字符串的平均长度
- 4. 如何获得长度JavaScript表单文本字段
- 5. 如何获得字符串的长度[] []
- 6. 平均字长
- 7. LISP - 如何从嵌套列表中获取平均长度?
- 8. Spark中的平均单词长度
- 9. 如何获得文件长度?
- 10. 长文本字段的最大长度
- 11. 获得使用python的单词的平均长度减少
- 12. document.createElement文本字段长度
- 13. 长度和长度()在Java
- 14. 如何在IE中获得字段长度而不计占位符文本
- 15. 可变长度VBA的平均行
- 16. jQuery - 根据长度获得长度和触发点击增量
- 17. 使用Python在文件中查找每行的平均长度
- 18. 如何使用itext 5获取PDF文档中内容的长度和宽度
- 19. Python - 文件夹中所有文件的平均长度函数
- 20. 如何从谷歌获得多维纬度和长度
- 21. 如何获得Lua桌子的长度?
- 22. 如何获得NSString的“真实长度”
- 23. 如何获得javascript“数组”的长度
- 24. 如何获得FLAC帧长度
- 25. 如何获得bitmapimage(jpg/png)的长度?
- 26. 在不同长度的字段中均匀提升
- 27. 无法获得长度
- 28. 如何计算列表中的平均时间长度
- 29. 在服务类中获得连续的纬度和长度?
- 30. 如何根据文字长度使图像高度增长?
前段时间我浏览过这个问题,我猜这个实现计算了Lucene之外的平均字段和文档长度(例如在提交索引文档时)。据我所知Lucene没有这个功能(平均字段和文档长度)。 – 2011-05-19 15:50:08