@祁俊輝,2017年6月22日測試。
1 說明
- 本程序以關於SimHash算法的實現及測試V4.0為基礎,利用JSP添加JavaBean接口,改為網頁版;
- 因為在網頁版比較相似度時,生成txt文檔會耗費一定的時間,而且在Tomcat發布后路徑不方便控制,所以取消txt文檔的輸入輸出,全程以字符串形式輸入和返回;
- 目前文檔庫中有100篇txt現代小說,若后期需要增加,直接復制到該路徑下,然后在程序“TF_IDF”中把“TextNum”變量改為文檔庫中小說的個數即可。
制作過程中遇到的問題:
- Tomcat發布程序后,不能使用相對路徑,需使用絕對路徑(計算TF-IDF值),目前路徑為“E:\SimHash文檔庫”;
- 分詞包一定要復制到Tomcat安裝路徑下,才能正常使用,否則會報錯;
- CSS表格顯示的“table-cell”一定要是塊元素。
目前存在的問題:
- HTML頁面分辨率變化時,如窗口化,格式會亂(因為CSS中有些布局用的絕對布局,可能是這個原因)。
以下為本項目的流程示意圖:
2 程序
程序分為Java程序、HTML程序和CSS程序。
java程序含有“FenCi”、“TF_IDF”、“SimHash128Web”、“Main”四個類,前三個類對應三個主要步驟,最后一個類主要為javaBean接口類提供服務。
本次程序不再提供源碼,若有需要請聯系作者:qce.hui@qq.com。
3 結果展示
第一次進入網頁時展現為:
若兩個文本框什么都不輸入,點擊“檢測”,則不會有結果,仍然顯示以上。
若兩個文本框其中一個輸入字符,另一個不輸入,則會顯示“檢測無效”,如圖:
若兩個文本框都正常輸入,點擊“檢測”,則會顯示相應結果。
若海明距離在40以內,則會顯示海明距離及相似度,如圖:
后台數據會將分詞結果、計算TF-IDF值得結果以及生成的SimHash指紋顯示,如圖:
若若海明距離超過40,說明兩個文本完全不相似,會出現如下圖結果:
經測試,顯示結果與沒有使用網頁時相同,說明網頁版程序正確。