2-Gram的訓練:先是將下載好的漢語分詞工具NLPIR導入eclipse中,注意在使用這個分詞工具的時候必須將Data包更新爲最新,不然會初始化失敗。編寫代碼實現對文件的分詞,由於這個分詞工具只可以實現3M左右的文件分詞,過大的文件會出現無法讀取從而報錯,所以需要我們把100M的文件進行切割讀入。我的程序中是把文件切成101份文本,然後進行分詞,用bufferwriter進行寫入afterSeg.txt,注意把bufferwiters的參數值設置成true,這樣纔可以實現追加文本,不會導致覆蓋。然後,HashMap<String ,int>派上用場了,用HashMap存儲每一個詞,存在於HashMap的詞不在存入但出現次數加一,沒有在HashMap中出現的把它添加進HashMap中,出現次數設置爲1。同時進行前後兩個詞一起出現的概論統計,存在於HashMap的詞不在存入但出現次數加一,沒有在HashMap中出現的把它添加進HashMap中,出現次數設置爲1。然後把HashMap的數據寫入wordTime文件中。
測試: 在上面一個程序得到的afterSeg.txt文件,我們用同樣的方法(HashMap)讀入。然後比較用戶的輸入的語句進行分詞存入數組,然後計算各個語句的概率。具體方法如下圖:
最後是跟選定閾值進行比較得出正確語序的句子。