1/17/2014

OpenNLP 1.5.3 API를 C# 라이브러리로 변경하는 방법


1. ikvm 최신버전을 다운 받는다 (http://www.ikvm.net/download.html).

2. OpenNLP 바이너리 파일도 다운 받는다 (http://opennlp.apache.org/cgi-bin/download.cgi). apache-opennlp-1.5.3-bin.zip 을 다운받으면 됨.

3. UIMA 바이너리 파일을 다운 받는다 (http://uima.apache.org/downloads.cgi).

4. 오라클에서 javamail api을 다운 받는다 (http://www.oracle.com/technetwork/java/index-138643.html).

5. 다운 받은 파일들의 압축을 전부 푼다.

6. ikvm 압축푼 폴더로 가서 bin 폴더에다가 2,3,4 에서 다운받은 jar 파일들, jwnl-1.3.3.jar, mail.jar, opennlp-maxent-3.0.3.jar, opennlp-tools-1.5.3.jar, opennlp-uima-1.5.3.jar, uima-core.jar, 이 6개 파일을 집어넣는다.

7. 윈도우에서 command 명령어를 이용해 ikvm의 bin 폴더로 이동한다.

8. 그리고 아래의 명령어를 입력해준다.

ikvmc -target:library -assembly:opennlp opennlp-maxent-3.0.3.jar jwnl-1.3.3.jar opennlp-uima-1.5.3.jar opennlp-tools-1.5.3.jar uima-core.jar mail.jar

9. 그럼 오류가 뜨긴 뜨는데 무시해도 된다.

10. 이제 아래의 파일들을 C#에서 add reference를 통해 추가만 해주면 쓸 수 있다.


  • opennlp.dll
  • IKVM.Runtime.dll
  • IKVM.OpenJDK.Core.dll
  • IKVM.OpenJDK.Jdbc.dll
  • IKVM.OpenJDK.Text.dll
  • IKVM.OpenJDK.Util.dll
  • IKVM.OpenJDK.XML.API.dll
  • IKVM.OpenJDK.Charsets.dll



참고로 모델 파일들은 [여기]에서 다운이 가능하며, 예제들은 [여기]에서 확인이 가능하다.

시간나면 예제들 올리겠음.


추가:

모델 파일 중에서  en-pos-maxent.bin 이 파일이 있는데, 이 파일을 winrar이나 압축 프로그램으로 열면 (압축을 풀라는 말이 아님) tags.dagdict 이라는 파일이 있는데 그걸 지워줘야지 제대로 쓸 수 있다.


예제:

만약 문장을 분리해내고 싶다면,

string ModelPath = @".\Model\";
java.io.FileInputStream modelInpStream = new java.io.FileInputStream(ModelPath + "en-sent.bin");
opennlp.tools.sentdetect.SentenceModel sentenceModel = new opennlp.tools.sentdetect.SentenceModel(modelInpStream);
private opennlp.tools.sentdetect.SentenceDetectorME sentenceDetector = new opennlp.tools.sentdetect.SentenceDetectorME(sentenceModel);
string[] input = sentenceDetector.sentDetect(txtboxInput.Text);
txtboxOutput.Text = string.Join("\n", input);

이런식으로 사용하면 된다.

No comments:

Post a Comment