根據給出的語料庫,訓練n-gram模型。根據訓練出的模型,判斷測試集中每個句子是不是語法合法的句子

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)讀入。然後比較用戶的輸入的語句進行分詞存入數組,然後計算各個語句的概率。具體方法如下圖:


 

最後是跟選定閾值進行比較得出正確語序的句子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章