2013年10月27日 星期日

[Java]中文斷詞系統 (CKIP WordSegmentationService)

中文斷詞系統是一個由中研院開發的工具
功能是可以將一整篇的中文文章,把每個詞與字都斷開
本篇主要的介紹是要如何使用Java 來操作這項斷詞系統的功能

中文斷詞系統官網-->連結請按我
Java class WordSegmentationService -->連結請按我

ps:如果只是單純想要在網路上使用斷詞的服務,直接進去官網看
官網就有提供很多樣化的服務了

<Java實作>
參考資料 : http://wiki.cheyingwu.tw/CKIPClient/JavaSampleCode
(我主要是參考這篇的,這篇部落客基本上寫的簡潔易懂,推薦!)
(部落客名字是 瘋人院院長的筆記本)



1.需要的Library http://dom4j.sourceforge.net/
將library下載下來後,import到java專案中
開發環境: Eclipse

2.需要事先進入官網申請帳號密碼,經過認證之後才能使用這項服務歐



<Source code>

package tw.cheyingwu.ckip;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.String;
import java.util.ArrayList;

public class Sample {

    public static void main(String[] args) {
        WordSegmentationService c; //宣告一個class變數c
        ArrayList<String> inputList = new ArrayList<String>(); //宣告動態陣列 存切詞的name
        ArrayList<String> TagList = new ArrayList<String>();   //宣告動態陣列 存切詞的詞性
        String s = "早安,台新金控12月3日將召開股東臨時會進行董監改選"
        
        System.out.println("********** 使用中研院斷詞伺服器 *********");
        
        c = new CKIP( "IP" , port, "帳號", "密碼"); //輸入申請的IP、port、帳號、密碼
        
        c.setRawText(s);
        c.send(); //傳送至中研院斷詞系統服務使用
        
        for (Term t : c.getTerm()) {
          
            inputList.add(t.getTerm()); // t.getTerm()會讀到斷詞的String,將其存到inputList陣列
            TagList.add(t.getTag());    // t.getTag() 會讀到斷詞的詞性,將其存到TagList陣列
        }
        
        //將資料output成檔案
        try {
            FileWriter fr1 = new FileWriter("output.txt");
            BufferedWriter bw = new BufferedWriter(fr1);
            for(int i=0;i<inputList.size();i++)
            {
                bw.write(inputList.get(i));
                bw.write("\t"+TagList.get(i));
                bw.newLine();
            }
            bw.close();
            
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

<demo output>


將上面的程式下載下來後,import到eclips就可以使用了歐






Related Articles

0 意見:

張貼留言

技術提供:Blogger.