본문 바로가기
백엔드기술/개발언어

임시 참조 - 루씬 한글형태소분석기 사용하기(main)

by RevFactory 2010. 5. 25.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package analysertest2;

import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import java.io.Writer;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import kr.org.kisti.morph.DBConnection;
import kr.org.kisti.morph.KMSMorphUtil;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.kr.KoreanAnalyzer;
import org.apache.lucene.analysis.kr.KoreanTokenizer;
import org.apache.lucene.analysis.kr.morph.MorphException;

/**
 *
 * @author admin
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws MorphException {
        // 형태소 분석
        KMSMorphUtil kmu = new KMSMorphUtil();
        String input1 = "올해 크리스마스에는 눈이 내리지 않고 비교적 포근할 전망이다.";
        String result1 = kmu.morphAnalyze(input1);
        System.out.println(result1);

        // 복합명사 분해
        String input2 = "하늘공원";
        String result2 = kmu.compoundNounAnalyze(input2);
        System.out.println(result2);

        // 띄워쓰기
        String input3 = "올 해크리스마스 에는 눈이내리지않고 비교적포근할전 망이다.";
        String result3 = kmu.wordSpaceAnalyze(input3);
        System.out.println(result3);

        // 색인어 추출
        String input4 = "올해 크리스마스에는 눈이 내리지 않고 비교적 포근할 전망이다.";
        String result4 = kmu.guideWord(input4);
        System.out.println(result4);
       
        System.out.println("");
        // 사회과학일반 분야에 대한 논문명 분석 결과
        DBConnection dbConnect = new DBConnection();
        dbConnect.getConnection();
        List<String> result = dbConnect.ExcuteQuery("select * from paper where cls_id like 'B010000'");
        dbConnect.close();

        Writer fs = null;
        try {
            fs = new FileWriter("output.txt");
        } catch (IOException ex) {
            System.out.println("Cann't write file.");
        }

        for(String s : result) {
            if(s.contains("-")) {
                String temp = s;
                s = temp.replace("-", " ");
            }

           
            try {
                fs.write("원문내용 : " + s + "\r\n");
            } catch (IOException ex) {}
            System.out.println("원문내용 : " + s);

            try {
                String resultString = kmu.morphAnalyze(s);
                fs.write("분석결과 : " + resultString + "\r\n");
                System.out.println("분석결과 : " + resultString);

                resultString = kmu.wordSpaceAnalyze(s);
                fs.write("띄워쓰기 : " + resultString + "\r\n");
                System.out.println("띄워쓰기 : " + resultString);

                resultString = kmu.guideWord(s);
                fs.write("단어추출 : " + resultString + "\r\n");
                fs.write("\r\n");
                System.out.println("단어추출 : " + resultString);
                System.out.println("");

            } catch (IOException e) {
            } catch (Exception e) {
                try {
                    fs.write("[ERROR] 분석할 수 없음.." + "\r\n");
                    fs.write("\r\n");
                } catch(IOException ex) {}
                System.out.println("[ERROR] 분석할 수 없음..");
                System.out.println("");
              }
           
        }
       
        try {
            fs.close();
        } catch (IOException e) { }
    }
}

'백엔드기술 > 개발언어' 카테고리의 다른 글

임시 참조 - 루씬 한글 형태소 분석기 사용하기 (Util)  (0) 2010.05.25
임시 참조  (0) 2010.05.25
뮤텍스 (Mutex)  (0) 2009.12.09