我正試圖在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