1.主要採用分詞和本體技術
2.用tomcat + myeclipse開發
3.架構mvc
4.實現思路:
- 上傳檔案,對檔案轉化成字串,然後用lucene分詞
代碼:r
File files=new File(FileName);<br />//System.out.println(FileName);<br />FileInputStream str=new FileInputStream(files); </p><p>int dotindex=FileName.indexOf(".");<br />if(FileName.substring(dotindex).equals(".doc")){<br />try {<br />Word_txt word_txt=new Word_txt(); //把word文檔抽取出來<br />txtContent=word_txt.Wordtotxt(FileName);</p><p>Search search=new Search(); //對字串分詞<br />String outtxt=search.separatedTerm(txtContent);</p><p>Class.forName("com.mysql.jdbc.Driver");<br />Connection conn=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/spacedebris"<br />, "root", "alen");</p><p>String sql="insert into fileinfo(FileName,FileContent,TxtContent,fenContent,FileDes) values (?,?,?,?,?)";</p><p>PreparedStatement pstmt= conn.prepareStatement(sql);<br /> pstmt.setString(1,FileName);<br /> pstmt.setBinaryStream(2,str,(int)files.length());<br /> pstmt.setString(3,txtContent);<br /> pstmt.setString(4,outtxt);<br /> pstmt.setString(5, fileDes);<br /> pstmt.executeUpdate(); //更新到資料庫<br /> pstmt.close();<br /> conn.close(); </p><p> errorMsg=FileName+"已經成功匯入!";
然後根據需要把相關的關鍵詞和文檔一一對應起來,用資料庫儲存
- 可以藉助許多中文分詞工具,如:極易分詞等,對中文文檔分詞,最後為儲存到資料庫的檔案和關鍵詞等用lucene建立索引,為下一步搜尋做好準備!做到這一步,你就可以做到對所有文檔進行全文檢索搜尋了~!
- 要做到語義搜尋,這裡用到的是本體技術。這裡用到的是protege工具,可以用來構建出owl形式的本體!然後prefuse開源包可以把本體顯示出來!如:
- 這個圖形主要是根據本體之間的關係建立,然後通過直接點擊本體,就可以進行搜尋到與這個本體相關的文檔,並且可以根據本體圖的關係,達到語義搜尋的目的!
註:關鍵技術:本體、lucene分詞、applet與js通訊、prefuse研究....
由於圖片不知道如何上傳,對這個有興趣的朋友,可以一起探討!
先寫這些,有些東西還需要時間研究!