2011-10-20 132 views
1

我目前正在嘗試構建一個讀取一堆文件名(目前只有幾百個)的小型系統,然後允許用戶搜索文件名。最終的目標是找到一些令人不愉快的名字,但它們會分享一些常見的詞彙。我最終想添加一個功能,以允許它建議可能的重複。從文件名創建搜索條件

當前我將每個文件路徑添加到ArrayList,然後將文件名的每個單詞傳遞給使用鏈接的Hashtable。單詞使用String.split()創建,所有非字母數字字符都轉換爲空格。這部分工作正常,你可以搜索單詞的無憂。

我知道搜索多個術語背後的理論,獲取響應並建立與選擇每個文檔多少次的基本相關性。

我目前的問題是與這個'mybestfile'類似的文件名。我的程序只能將它們作爲一個單詞處理。除非搜索'mybestfile',否則你什麼也找不到。

任何人都可以提出我應該從這裏下來的設計路徑。我知道我可以在整個字典中解析,然後嘗試通過匹配子字符串來拉出單詞,但說實話,這只是一個簡單的程序,我寧願避免那種事情。

任何幫助將不勝感激!

(而且這個點半的學習,一半證明我能做到這一點,所以我想知道的是已經存在的解決方案,但更多的,他們是怎麼做的,而不是用它們來代替)

回答

1

您可以從Apache Codec language package中的各種「聽起來像」和距離算法開始。 (我認爲距離算法是在Commons Lang中,而不是編解碼器。)

SimMetrics是另一個。實際上找不到我要找的那個,但here's a list, too

+0

歡呼聲,我會檢查出來 –

+0

@ dann.dev如果你想到它,讓我知道你最終結束了什麼;我需要在不同的領域做類似的事情,但還沒有開始呢?/ –