komoran 1.2(예정)

검색 엔진을 위한 색인기 추가

기존 어절 단위 형태소 분석기 외에 문장 단위 형태소 분석기 추가


komoran1.12

-core library

komoran-1.12.jar


-required library

 shineware-common-lib-1.0.jar


-required datas

datas.zip


[version 1.12 history]

score 계산시 발생하던 버그 수정.

- 정확률 향상

n  기호 및 숫자 등을 제외한 순수 한글 어절 ( 약 17만 어절, 33만 형태소 )

u  어절 정확률 : 92.55% -> 93.04%

u  형태소 별 품사 정확률 : 94.97% -> 95.39%

n  기호 및 숫자 등을 포함한 전체 어절 ( 약 20만 어절, 46만 형태소 )

u  어절 정확률 : 84.36% -> 84.80%

u  형태소 별 품사 정확률 90.81% -> 91.20%


[versiong 1.11 history]

왜 1.11을 건너 뛰었지?!?! ㅠㅠ


[version 1.1 history]

고유 명사 약 50만 단어 추가.

- 웹으로 수집 가능한 고유명사 추가

- 한글 위키피디아에 수록된 단어 목록 추가

기타 불규칙 변환 관련된 버그 수정.

사전 추가에 따라 최소 1G 이상의 메모리를 필요로 합니다. (-Xmx1G)

사용법은 1.0 버전 참조.


komoran 1.0

http://shineware.tistory.com/entry/KOMORAN-10


[상업적인 용도로 사용하실 수 없습니다.]

  1. hare 2013.06.19 17:18 신고

    새로운 버전이 업데이트 되었군요! 축하드립니다.
    혹시 개발하실때 이클립스 쓰시나요? 이클립스 버전에 따라 실행이 되기도 않되기도 해서요.(갈릴레오버전에서는 실행이 안되며, 주노버전에서는 잘되네요. - 이클립스문제일테지만.. 한참을 헤맸네요.ㅎ)
    프로젝트 덩치가 점점커지니 기분이 좋으시겠습니다!!ㅎ

    • shine_ing 2013.06.19 17:29 신고

      감사합니다^^;;
      개발할 때 이클립스를 쓰고 있습니다만, 버전에 따라서 실행이 안되는 점은 생각을 못하고 있었네요. 왜 그럴까요.. 테스트를 한번 해봐야겠네요. 소중한 지적 감사드립니다^^

  2. songyi 2013.06.19 21:14 신고

    안녕하세요 지난번에 앱개발 관련해서 질문했던 이용자입니다 ^^;
    다름이아니라 연동시키기 위해 말씀하신 절대경로를 이용해도 보고 외부 SD카드를 이용해서도 해보았지만 뭐가 문제인지 그 경로 지정해서 객체 만드는부분에서 계속해서 에러가 나네요 ㅠㅠ
    혹시 소스중에 MorphologyAnalyzer의 생성자 부분 코드만이라도 참고좀해볼 수 있을까요 ?

    • shine_ing 2013.06.19 21:59 신고

      사용하시는 부분의 소스를 메일로 보내주시면 확인해드리겠습니다^^;; 혹시 앱 말고 PC에서는 잘동작하는지요?

  3. songyi 2013.06.19 22:43 신고

    public class korean {
    public static int[] music_index = new int[10];
    public static ArrayList<Pair<String, String>> morp = new ArrayList<Pair<String, String>>();
    public static int direct(String inpu) throws Exception {
    File path = Environment.getExternalStorageDirectory();
    String real_path = path.getAbsolutePath();
    MorphologyAnalyzer analyzer = new MorphologyAnalyzer(real_path+"/datas/");

    불러들이는 부분은 대강 이런식입니다. 안드로이드에서 내부 저장장치로는 접근이 안되는거 같아서
    SD카드 넣은 다음에 datas 폴더 만들어서 파일들 넣어놨습니다. 근데 계속 경로를 못찾는건지 죽어버리네요 ㅠ
    자바에서는 위에 사용법대로 패키지안에 datas폴더 만들어서 하면 잘됩니다!

    • shine_ing 2013.06.19 22:57 신고

      안드로이드는 잘 모르지만 sd카드에 있는 데이터를 읽어들이기 위해서는 권한을 설정해줘야 하는거 아닐까요?그래도 안된다면..안드로이드를 기반으로 한 내용이 아니라 어쩔수없을것 같네요^^;;

    • wow 2014.02.19 02:13 신고

      혹시 해결하셨나요?

    • shine_ing 2014.02.19 11:20 신고

      다른 분들의 테스트 결과를 토대로 말씀을 드리자면, SD 카드 경로 및 권한과 관련하여 문제가 발생한 내용이라서, 아마 권한 설정을 해주시면 될 것 같습니다~

    • wow 2014.02.19 23:16 신고

      SD card로 접근하면 GC_FOR_ALLOC freed 에러가 납니다. 즉 heap 영역에서 너무 많은 데이터를 처리하다보니 제대로 읽지 못하는 것 같은데 안드로이드 내부에서 접근하려고 res/raw에 넣으려고 하니 기본적으로 대문자를 못읽어서 안됩니다. 고민입니다. ㅠ 어떤 방법이나 해결책 없을까요?

    • shine_ing 2014.02.20 10:15 신고

      현재 버전 히스토리를 보시면 아시겠지만 1.1 버전 부터 최소 1G 이상의 메모리를 필요로 하고 있씁니다. 이와 관련되서 해결하시려면 1.0 버전을 사용하시는 것을 권고드립니다^^

  4. dalma 2013.07.10 22:53 신고

    아래와 같은 코드를 실행시켰는데 오류가 납니다. 무엇이 잘 못된 것일까요?

    "C:/text/komoran/datas/"폴더에 datas 파일, core, util jar파일을 같이 두었습니다.


    import java.util.List;
    import kr.co.shineware.nlp.komoran.core.MorphologyAnalyzer;
    import kr.co.shineware.util.common.model.Pair;
    import java.io.*;

    public class TEST {

    public static void main(String[] args) {
    MorphologyAnalyzer analyzer = new MorphologyAnalyzer("C:/text/komoran/datas/");
    List<List<Pair<String,String>>> result = analyzer.analyze("감기는 자주 걸리는 병이다");
    for (List<Pair<String,String>> wordResult : result) {
    for (Pair<String,String> pair : wordResult) {
    System.out.println(pair);
    }
    System.out.println();
    }
    }
    }

    오류
    java.util.zip.ZipException: Not in GZIP format
    at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
    at java.util.zip.GZIPInputStream.<init>(Unknown Source)
    at java.util.zip.GZIPInputStream.<init>(Unknown Source)
    at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:61)
    at kr.co.shineware.util.ds.trie.TrieDictionary.load(TrieDictionary.java:113)
    at kr.shineware.nlp.komoran.model.Observation.load(Observation.java:91)
    at kr.shineware.nlp.komoran.model.Observation.<init>(Observation.java:28)
    at kr.co.shineware.nlp.komoran.core.MorphologyAnalyzer.<init>(MorphologyAnalyzer.java:40)
    at TEST.main(TEST.java:10)
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at kr.shineware.nlp.komoran.corpus.model.IrregularDictionary.load(IrregularDictionary.java:131)
    at kr.shineware.nlp.komoran.corpus.model.IrregularDictionary.<init>(IrregularDictionary.java:39)
    at kr.co.shineware.nlp.komoran.core.parser.KoreanParser.<init>(KoreanParser.java:52)
    at kr.co.shineware.nlp.komoran.core.MorphologyAnalyzer.<init>(MorphologyAnalyzer.java:44)
    at TEST.main(TEST.java:10)

    • shine_ing 2013.07.11 12:01 신고

      datas/밑에 또 datas/가 있어서 그런게 아닐까 싶네요..^^

  5. 청화(淸華) 2013.08.04 17:18 신고

    shine_ing님의 형태소 분석기 잘 쓰고 있습니다. 감사합니다. ^^

  6. 헤이즐 2013.08.26 14:01 신고

    형태소 분석이 잘 이용하고 있습니다^^
    좋은 프로그램 만들어 주셔서 정말 감사합니다!

    그런데 형태소 분석기를 jsp를 이용해서 웹으로 출력하려고 해보았는데 jsp에서 500번 에러(java.lang.NullPointerException)를 내면서 실행이 안돼더군요. 포스팅되어 있는 소스를 고대로 썼는데, analyzer.analyze("감기는 자주 걸리는 병이다.") 이부분에서 에러가 나더군요. ㅠㅠ 어떤 문제가 있어서 이런지 도통 감이 안잡힙니다ㅠ ㅠ (일반 JAVA 프로젝트에서는 잘 실행되었습니다^^)


    에러의 일부분입니다.
    kr.co.shineware.nlp.komoran.core.parser.KoreanParser.setInitMorph(KoreanParser.java:407)
    kr.co.shineware.nlp.komoran.core.MorphologyAnalyzer.analyze(MorphologyAnalyzer.java:122)

    • 헤이즐 2013.08.30 16:10 신고

      제가 넘 급하게 에러코드를 봤나 봅니다. ㅠㅠ
      웹 프로젝트에서는 상대경로가 잘 지정이 안돼는 것 같더군요 ㅠㅠ
      위 에러도 경로지정이 잘 못되어 뜨던 에러였고요.

      웹프로젝트에서는 서블릿을 만들고 request 객체를 이용해서 아래와 같이 구문을 작성해야 datas파일을 잘 읽어 들였습니다.

      String path = request.getSession().getServletContext().getRealPath("/WEB-INF") + "/";
      MorphologyAnalyzer analyzer = new MorphologyAnalyzer(path + "datas/");

      상황에 따라 실제경로가 달라질 수 있으니 웹 프로젝트에서는 경로를 잘 확인해야 할 것 입니다. ㅠㅠ(이걸로 몇일 고생했네요... 아 시간아..)

  7. 에러 2013.12.23 23:21 신고

    MorphologyAnalyzer analyzer = new MorphologyAnalyzer("datas/");

    이 줄에서 넘어가지 않습니다.

    debug 하면 에러는 따로 뜨지 않고

    마우스를 갖다 대면 이렇게 나오네요.
    datas/폴더 문제는 아닌 것 같습니다.
    Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found.

    • 행인 2013.12.24 10:28 신고

      소스 없이 라이브러리만 갖고 디버깅하면 원래 나오는건데.........디버깅 말고 실행을 하셔야하지 않나요? 소스는 공개 안된걸로 아는데...

  8. 지나가다 2014.03.21 16:59 신고

    맨위의 실행 문제는
    이클립스 버전 차이도 있겠지만 JDK/JRE 버전 차이에 따른 것일 수 있습니다.
    라이브러리가 상위 버전에서 생성되면 하위 버전에서 실행 할때 동작이 잘 안되는 경우가 있습니다.
    라이브러리 생성 버전을 배포할때 명시 해 주시고 사용하시는 분들은 라이브러리 생성버전 이상에서 실행하시면 우선 해결 될듯 합니다.

    • shine_ing 2014.03.25 16:28 신고

      감사합니다~ 무슨 문제일까 고민하고 있었는데 그 부분은 생각도 못했었네요 =ㅅ-;;

  9. ㅠㅠ질문요 2014.03.29 21:52 신고

    안녕하세요.
    다운받아서 테스트 해보았습니다. 그런데 기분나쁠때 쓰는 ㅡㅡ있잖아요.
    ㅡ가 고유명사로 인식되는데... 원래 문법상 맞는건가요 개발자님?...
    질문입니다..^^

    • shine_ing 2014.03.31 12:29 신고

      위키피디아의 내용 중에 "ㅡ"가 등록되어 있어서 이런 현상이 나타난 것으로 판단됩니다. 일단은 위와 같은 현상을 해결하기 위해서는 1.0 버전을 사용하시기를 추천드립니다. 더불어서 말씀해주신 내용은 차기 버전에 반드시 포함시키겠습니다. 감사합니다.

  10. 안녕하세요! 2014.04.01 11:39 신고

    안녕하세요. 다운받아서 스프링 환경에서 테스트하고 있는 유저입니다!
    그런데 maven 프로젝트를 이용하다보니, 사용자가 만든 라이브러리를 추가할 때 결함이 있었습니다.
    그래서 maven 폴더에 추가하여 쓰려고 하는데 두 라이브러리의 groupId와 ArtifactId를 가르쳐주실 수 있습니까?? 개발자님 도와주셔요^^

    • shine_ing 2014.04.01 18:28 신고

      먼저 사용해주셔서 감사합니다.
      제가 지식이 부족하여 maven 환경에서 사용해본적이 없네요..그래서 말씀하신 내용이 어떠한 의미인지 정확히 파악이 안되네요. 얼핏 검색해본 결과 maven의 repository에 등록되어 있는 내용만 당겨서 쓸 수 있는 것 같은데..아닌가요? 만약에 맞다면 maven은 지원하지 않는다고 말씀드릴 수 있겠네요 ^^;;

    • 서비 2014.06.13 18:52 신고

      안녕하세요! 님
      메이븐 central 레파지토리에 등록이 안된 라이브러라면 라이브러리를 직접 관리 할 메이븐 레파지토리를 구축하시는 방법도 있습니다.
      세상의 모든 라이브러리가 모두 central에 들어갈 수는 없고 경우에 따라서는 외부로 유출할 수 없는 라이브러리를 따로 관리할 필요가 있으므로 nexus http://www.sonatype.org/nexus/ 등을 를 통해 지엽적인 메이븐 레파지토리를 구성하실 수 있습니다.

  11. 2014.07.11 10:01

    비밀댓글입니다

    • shine_ing 2014.07.11 10:26 신고

      말씀하신 클래스의 package를 보니 komoran에 필요한 library만을 사용하신 것 같네요. 소스 내용을 메일로 보내주시면 확인 후에 답장 드리도록 하겠습니다.

  12. 안녕하세요! 2014.08.10 21:43 신고

    형태소 분리기를 윈도우환경에서 사용하면 잘 돌아가는데
    리눅스 환경에서 돌릴려니까 작동을 안하네요ㅠㅠ
    원래 그런건가요? 아님 제가 다른 설정을 해야하는건가요??

    • shine_ing 2014.08.10 23:06 신고

      리눅스 환경이라도 제대로 동작하는 것을 확인하였습니다~ 혹시 JDK가 깔려있지 않거나 버전이 너무 낮은것은 아닌지요? JDK 1.7이상을 권장드립니다.

    • shine_ing 2014.08.11 09:58 신고

      메일로 답변드린대로 vm 설정관련이 아니라면 답변 부탁드립니다

+ Recent posts