1. 程式人生 > >利用java實現對文字的去除停用詞以及分詞處理

利用java實現對文字的去除停用詞以及分詞處理

功能:

對txt文件進行分詞處理,並去除停用詞。

工具:

IDEA,java,hankcs.hanlp.seg.common.Term等庫。

程式:

import java.util.*;
import java.io.*;


import java.lang.String;
import java.lang.StringBuilder;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.HanLP;
public class WordPre {
    public static void main
(String[] args)throws Exception { File file = new File("E:\\資料\\資料\\test.txt");//Test檔案 File file1 = new File("E:\\資料\\資料\\totalstop.txt");//停用詞 File file2=new File("E:\\資料\\資料\\testPro.txt"); BufferedReader br = new BufferedReader(new FileReader(file));//構造一個BufferedReader類來讀取Test檔案
BufferedReader br1 = new BufferedReader(new FileReader(file1));//構造一個BufferedReader類來讀取totalstop檔案 String string = null; String string1 = null; PrintWriter pfp= new PrintWriter(file2); ArrayList<String> stopword = new ArrayList(); while ((string1 = br1.readLine()) != null
) {//使用readLine方法,一次讀一行 讀取停用詞 stopword.add(string1); } br1.close(); //使用readLine方法,一次讀一行,讀取待處理文字 while ((string = br.readLine()) != null) { ArrayList<String> TermList = new ArrayList(); StringBuilder sb = new StringBuilder(); HanLP.Config.ShowTermNature = false; // 關閉詞性顯示 List<Term> termList = HanLP.segment(string);//呼叫HanLP.segment()對句子進行分詞處理 for(int i = 0;i < termList.size(); i++){ TermList.add(termList.get(i).toString()); } TermList.removeAll(stopword); //System.out.println(TermList); for(int i = 0;i < TermList.size(); i++) { sb.append(TermList.get(i)); sb.append(" "); sb.toString(); } pfp.print(sb); pfp.write("\r\n"); pfp.flush(); } pfp.close(); br.close(); } }

功能如程式所示,

首先讀取待處理文字,txt格式,一行一句話,大概34萬條資料,也就34萬行。

再讀取停用詞文字。

呼叫HanLP.segment()  對讀取到的 每一行 句子進行分詞處理,並呼叫removeAll去除停用詞,

儲存到本地txt,每個詞之間使用空格隔開。

結果:

原始文字:


處理之後文字:


實現效果還不錯。歡迎大家指導。