FuzzyScore與模糊搜尋
導包(maven),其他的上下面那個網站查:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-text -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.4</version>
</dependency>
FuzzyScore
是一個很簡單的類庫,主要用於分析文字的相似度。
首先是構造方法FuzzyScore fuzzyScore = new FuzzyScore(Locale.ENGLISH);
傳參選擇一種語言。支援中文Locale.CHINESE
。
有兩個方法主要講一下Integer fuzzyScore(CharSequence term, CharSequence query)
這個相似度的概念。大致是這個意思,具體實現還和兩個序列的下標有關係,詳情請檢視原始碼:
單個字元匹配相似度+1,連續字元匹配相似度+3
下面是根據這個相似度進行模糊搜尋的方式:
FuzzyScore fuzzyScore = new FuzzyScore(Locale.ENGLISH);
String[] array = {"abcde","aebc","ddabcc","abcdd"};
String query = "e";
Integer queryScore = fuzzyScore.fuzzyScore(query, query);
ArrayList<String> arrayList = new ArrayList<>();
for (String s : array) {
Integer score = fuzzyScore.fuzzyScore(s,query);
System.out.println(score);
if (score>=queryScore){
arrayList.add(s);
}
}
System.out.println(arrayList.toString());
執行結果如下:
1
1
0
0
[abcde, aebc]
相關文章
- Vim模糊檔案搜尋fzf
- 搜尋引擎es-分詞與搜尋分詞
- 【搜尋引擎】 PostgreSQL 10 實時全文檢索和分詞、相似搜尋、模糊匹配實現類似Google搜尋自動提示SQL分詞Go
- 如何使用SymSpell將模糊搜尋速度提高五倍以上 - lnx
- 讀書APP原始碼,搜尋欄模糊處理實現APP原始碼
- 小程式雲開發模糊查詢,實現資料庫多欄位的模糊搜尋資料庫
- 直播軟體開發,實現模糊搜尋的程式碼分析
- [WPF] 離線環境實現支援拼音模糊搜尋的AutoCompleteBox
- 如何使用QCompleter和QLineEdit實現支援模糊匹配的搜尋欄
- 搜尋引擎與前端SEO前端
- 直播系統搭建,可自動模糊匹配的搜尋下拉框
- BM42:語義搜尋與關鍵詞搜尋結合
- 基於SSH框架專案使用模糊查詢的搜尋功能開發框架
- 圖的遍歷:深度優先搜尋與廣度優先搜尋
- 最佳路徑搜尋(二):啟發式搜尋(代價一致搜尋(Dijkstra search),貪心搜尋,A*搜尋)
- 海量資料搜尋---搜尋引擎
- 搜尋
- 輸入多個編碼並支援模糊搜尋,引數是一個list
- 搜尋引擎-03-搜尋引擎原理
- NumPy 分割與搜尋陣列詳解陣列
- Numpy 排序搜尋計數與集合操作排序
- Django單元測試與搜尋引擎Django
- 點選搜尋框清空搜尋提示文字
- 直播系統程式碼,常用搜尋中搜尋歷史,搜尋推薦功能
- 搜尋策略
- vim搜尋
- 搜尋功能
- 搜尋技巧
- 20240713總結(搜尋專題,但是不想搜尋)
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(上篇)Elasticsearch
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(下篇)Elasticsearch
- 「效率集」聚合搜尋,瀏覽器必備的資源與資訊搜尋外掛瀏覽器
- 強化學習(十八) 基於模擬的搜尋與蒙特卡羅樹搜尋(MCTS)強化學習
- 資料結構與演算法 排序與搜尋資料結構演算法排序
- DjangoRestFramework 實現分頁功能與搜尋功能DjangoRESTFramework
- 一對一(搜尋與配對問題)
- 詳解Linux指令與檔案的搜尋Linux
- Elasticsearch 的配置與使用,為了全文搜尋Elasticsearch