[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就可以使用了歐


0 意見:
張貼留言