BLOG main image
분류 전체보기 (46)
Life (4)
Computer Science (3)
Programming (6)
Opensource (6)
Project (17)
Tip (10)
artikel terbaru. berita tekno..
artikel terbaru. berita tekno..
Best way to develop a mobile a..
Best way to develop a mobile a..
120,547 Visitors up to today!
Today 44 hit, Yesterday 69 hit
daisy rss
tistory 티스토리 가입하기!
'자바 형태소 분석기'에 해당되는 글 10건
2016.05.12 02:00

KOMORAN 3.0에 대한 안정성 및 피드백을 받기 위해서 베타 버전을 공개합니다.


2.0 대비 주요 변화는 아래와 같습니다.


  • 속도 개선
    • KOMORAN 2.0 : 초당 0.4MB 분석 (MB/sec)
    • KOMORAN 3.0 : 초당 1.0MB 분석 (MB/sec)
  • 기능 추가
    • 형태소 분석 결과로 입력 문장 내 형태소 위치 정보 제공
    • 형태소 분석 결과 중 명사 추출 기능 제공
    • 형태소 분석 결과를 plain text로 제공
    • training 모듈 추가 (직접 training/tuning 하실 수 있습니다!!!!)
  • gradle 적용
  • wiki title을 사전에 적용


기존의 자료 구조를 trie에서 aho-corasick으로 변경하여 속도를 개선하였습니다. (aho-corasick을 찾는데까지 오래 걸림...ㅠㅠ)

또한 lucene 기반의 analyzer에서 쉽게 적용할 수 있도록 분석 결과 token의 position 정보를 제공합니다. (개선해야 될 부분이 많습니다...ㅠ)

아직 KOMORAN 2.0처럼 많이 부족합니다.

그러나 KOMORAN 2.0 처럼 많이 사용해주시고 많은 피드백을 주신다면 감사드리겠습니다. (_ _)

사용법 및 소스는 아래 링크에서 확인하실 수 있습니다.

https://github.com/shin285/KOMORAN


덧, 있어보이려고 github repository에 badge를 2개나 붙였으나....개발 능력 부족으로 인해 coverage가 매우 낮지만....동작에는 문제가 없습니다..ㅠㅠ


저작자 표시 비영리 변경 금지
신고
코랄칼슘 | 2016.05.16 21:51 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요!! 코모란 잘 쓰고 있습니다.
에러리포트요!
싸이/VV+는/ETM 가수/NNG+다/JX
가수 싸이는 항상 VV로 나오네요 ㅠㅠ
shine_ing | 2016.05.18 11:40 신고 | PERMALINK | EDIT/DEL
싸이가 사전에는 있지만 싸이/VV가 확률이 더 높게 나와서 생기는 현상이네요. 학습 데이터를 도메인에 맞게 수정하는 방법 밖에는 없을 것 같습니다만...어떻게 하면 도메인에 맞게 자동으로 확률 값을 수정할 수 있게 할지 계속 고민하고 있겠습니다~ 피드백 감사드립니다 :)
김간지 | 2016.05.26 18:07 신고 | PERMALINK | EDIT/DEL | REPLY
회사에서 써보려고 하는데 3.0 beta 버전 혹시 상업적 이용불가 인가요???
shine_ing | 2016.05.26 18:09 신고 | PERMALINK | EDIT/DEL
아파치 라이센스여서 사용하셔도 무방합니다만, 아직 beta여서 안정성이 조금 떨어질 수 있습니다 :)
mjxaone | 2016.06.18 01:29 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.
개인적으로 검색엔진의 기초부분을 작업하고 싶어서
형태소 분석기를 찾던도중 KOMORAN을 보게 되었습니다.
조만간 열심히 사용하고, 많은 요청(?) 하겠습니다.
좋은 자료 감사합니다.
:D
개발개발 | 2016.08.13 18:23 신고 | PERMALINK | EDIT/DEL | REPLY
"바이든 부통령, 포로셴코과 대통령과 크림 사태 논의 통화" 라는 String 값으로 돌리는데요 ㅠㅠ
java.lang.NullPointerException 이 뜨네요...
바이든 부통령 이라는 단어 때문인거 같은데 해결법좀 알려주세요. ㅠ
그리고 그 포로셴코와 같은 단어는 명사 결과로 안나오는데 어떻게 해야하죠??

해보니 2.4버전에서는 되는데요 혹시 2.4버전에서 3.0버전의 analyzeResultList.getNouns() 같은게 있나요??
shine_ing | 2016.08.18 01:31 신고 | PERMALINK | EDIT/DEL
개인적인 사정 때문에 답변이 많이 늦어졌네요. 죄송합니다 ㅠㅠ말씀해주신 소중한 피드백으로 아주 치명적인 버그를 찾아냈습니다. 진심으로 감사드립니다. 방금 릴리즈한 최신 버전에서는 해결되었습니다. 번거로우시겠지만 앞으로도 피드백 부탁드립니다!
덧, 포로셴코와 같은 단어는 사용자 사전에 추가하시면 됩니다 :)
최신 버전 링크 : https://github.com/shin285/KOMORAN/releases/tag/3.0.2
카일로 | 2016.10.04 04:07 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.
예전에 띄어쓰기 무시한 사전은 아직 3.0에 들어가지 않았나요?

예를들어
바람과 함께 사라지다 이거가 사용자 사전에 있을 경우

바람과함께사라지다
바람과 함께사라지다
바람과함께 사라지다

등등이 2.4에는 고유명사로 잘 분류 되었던것 같습니다. (제 착각일 수도 있어 보입니다만..)
shine_ing | 2016.10.04 09:08 신고 | PERMALINK | EDIT/DEL
해당기능은 따로 제공하지 않습니다~ 물론 가능한 조합만들어서 사전에 넣으시면 원하시는 분석 결과를 얻으실 수 있습니다~
kwon | 2016.12.08 17:47 신고 | PERMALINK | EDIT/DEL | REPLY
komoran3.0 사용을 위해 테스트 하고 있습니다.
동작은 잘 하는데 특정 글자에서 java.lang.NullPointerException 에러가 발생하고 있습니다.
테스트한 글자는 '센', '센트롤이' 두가지 이구요 '센트롤' 이라고 하면 에러없이 정상작동 합니다.
KomoranResult.java 에서 Second 에 셋팅되지 않아서 에러가 나는것 같습니다.
if(jasoBeginIdx >= syllableAreaList.get(i).getSecond()){
syllableAreaPair.setSecond(i+1);
}

좀 더 추척해봤지만 소스 전체를 다 이해하지 못해서 어떻게 수정해야할지를 모르겠습니다~~
도움 부탁드려요~
shine_ing | 2016.12.09 11:14 신고 | PERMALINK | EDIT/DEL
리포팅 감사드립니다. 이슈는 확인을 하였습니다. 최대한 빠른 시일 내로 fix하도록 하겠습니다. 감사합니다.
LEE | 2017.03.20 13:09 신고 | PERMALINK | EDIT/DEL
안녕하세요
혹시 위 이슈 사항이 수정이 되었나요?

수정 되었으면
관련파일을 받을수 있는 곳을 알려주셨으면 합니다.

감사합니다
shine_ing | 2017.03.20 13:10 신고 | PERMALINK | EDIT/DEL
네 수정하였습니다~깃헙에서 클론 받으시면 적용되어 있습니다^^
Freeman | 2017.03.02 17:21 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 코모란을 잘 사용하고 있습니다.
테스트로 Thread를 적용해 보니, 아래와 같은 오류가 발생하네요....

코모란 라이브러리 Thread 적용해서 수행이 가능한지 궁금합니다.....

java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
at kr.co.shineware.nlp.komoran.core.analyzer.Komoran.regularParsing(Komoran.java:641)
at kr.co.shineware.nlp.komoran.core.analyzer.Komoran.analyze(Komoran.java:295)
shine_ing | 2017.03.02 17:24 신고 | PERMALINK | EDIT/DEL
2.x 버전을 쓰신다면 anayle 메소드에 synchronized를 붙여주셔야 합니다. 3.x버전은 thread safe 합니다~ 혹시 어떤 버전을 사용하고 계신지요?
hyon86 | 2017.03.24 15:28 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 코모란 3.0을 사용해 보고 있습니다.

kr.co.shineware.nlp.komoran.core.Komoran.java
아래 메서드 여러 스레드에서 동시 접근 해도 문제가 없는지 문의 드립니다.
public KomoranResult analyze(String sentence) <= 해당 메서드가 thread safety 한지?
shine_ing | 2017.03.24 15:31 신고 | PERMALINK | EDIT/DEL
아마 문제없을 것 같습니다~ 해보시고 댓글부탁드릴게요~
PDK | 2017.03.28 15:47 신고 | PERMALINK | EDIT/DEL | REPLY
복합어 분석이 가능한 코모란 3.0을 파이썬에서 사용하고 싶은데, 어떻게 안 될까요...
shine_ing | 2017.03.30 11:07 신고 | PERMALINK | EDIT/DEL
댓글이 늦어졌네요. 복합어 분석이 가능하다는 말씀이 사과나무 -> 사과+나무 이런 형태를 말씀하시는 건가요? 일단 해당 내용을 한번 고민해보겠습니다! 쉽지 않은 문제여서요.. 그리고 3.0을 파이썬에서 사용할 수 있도록 빠른 시간 내에 작업하겠습니다!
STEVE | 2017.07.03 15:24 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 코모란3.0을 git에서 받아 코드 분석하면서 스터디 중입니다.
빌드 하면서 코드를 하나씩 쫓아가다 보니 AhoCorasickDictionary<> 부분은 코드를 열어볼 수 없는데, 알고리즘 구현 후 별도로 관리되는 부분인지요?
그리고 models_full 리소스 안의 model 파일은 어떻게 만들어진 것인지 문의 드려도 될까요?
아무것도 모르고 코드만 쫓아서 보려다 보니 바로 막히는 것이 있어 문의 드립니다.
답변이 힘드신 내용이라면, 궃이 답신 없으셔도 됩니다.
잘 보고 있으며, 코드 공개해 주신점 정말 감사합니다.
shine_ing | 2017.07.03 17:11 신고 | PERMALINK | EDIT/DEL
안녕하세요. Ahocorasick 부분은 https://github.com/shineware/aho-corasick 에 구현되어 있습니다.

models_full 부분은 ModelBuilder라는 클래스를 찾아서 보시면 어떻게 바이너리 파일이 만들어졌는지 확인하실 수 있습니다.

관련되서 문의 사항이 있으시면 언제든지 문의부탁드립니다! 감사합니다.
LSH | 2017.07.11 19:47 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 KOMORAN 3.0 유용하게 잘 사용하고 있습니다.
관련해서 여쭤보고 싶은것이 있는데 2.4버전에서 지원하던
n-best 분석결과는 3.0에서 지원하지 않는지 여쭤보고 싶습니다.
또한 analzeTextfile 을 이용할 때 inputfilename에 들어가는 textfile의 경로를
어디에 위치해야하는지도 궁금합니다.
바쁘시겠지만 답변 부탁드리겠습니다. 감사합니다!
shine_ing | 2017.07.15 01:18 신고 | PERMALINK | EDIT/DEL
댓글이 늦었습니다. 죄송합니다.
3.0 버전에서는 현재 n-best 결과를 지원하지 않고 있습니다. 추후 버전에 n-best 결과를 지원할 수 있도록 하겠습니다. 더불어 analyzeTextfile을 이용하실 때 경로는 원하시는 곳에 파일을 위치시킨 후 그 파일의 경로를 inputfilename으로 지정해주시면 됩니다. 감사합니다.
LSH | 2017.07.31 16:34 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 친절한 답변 감사드립니다.
다름이 아니라 현재 코모란 3.0 beta 버전의 정확성이 대략 어느정도인지를 알 수 있을까요?
그리고 training과 tunning 의 개념이 무엇인지 궁금합니다.
Name
Password
Homepage
Secret
2014.11.24 02:49

KOMORAN 2.4




  • 주요 업데이트 내용
    • 불규칙 사전 정제
    • 형태소 분석 시 n-best 분석 결과 제공 기능 추가
      • sample code
        • String in = "바람과 함께 사라지다를 봤어.";

          int nbest = 2;

          List<List<List<Pair<String,String>>>> analyzeNbestResult = komoran.analyze(in,nbest);

      • 분석 결과
        • best 1
          • 바람과 함께 사라지다/NNP+/JKO

            /VV+/EP+/EF+./SF

        • best 2
          • 바람과 함께 사라지다/NNP+/JKO

            /VX+/EP+/EF+./SF

      • 기타
        • 어절 단위 n-best 형태소 분석은 분석 대상 문장을 공백 단위로 tokenize하여 어절 단위로 입력
    • 불규칙 사전 빌드 및 처리 방식 변경에 따른 성능 개선
      • 기호 및 숫자 등을 제외한 순수 한글 어절
        • 어절 정확률 : 93.37% -> 93.60%
        • 형태소 별 품사 정확률 : 95.62% -> 95.88%
      • 기호 및 숫자 등을 포함한 전체 어절
        • 어절 정확률 : 91.59% -> 92.12%
        • 형태소 별 품사 정확률 : 95.06% -> 95.36%

  • 버전 히스토리
    • [2.3]
      • 학습 데이터 정제
    • [2.2]
      • 불용 로그 제거
      • 공백 미포함 형태소 분석 기능 추가
    • [2.1.2]
      • 사용자 환경에 따른 용량별 데이터 제공
      • 조사 결합 규칙 적용
      • 연결 어미 품사 확장
      • 기타 버그 수정
    • [2.1.1]
      • 연속된 영어(SL), 숫자(SN), 한자(SH)에 대한 분석 결과 변경
      • 버그 수정 및 안정화
    • [2.1]
      • 형태소 분석기 안정화 및 속도 개선
    • [2.0.4]
      • 띄어쓰기 관련 버그 및 기타 안정화
    • [2.0.3]
      • 사용자 사전 포맷 오류 수정
    • [2.0.1]
      • 분석 중 에러가 발생하는 치명적 오류 수정
    • [2.0.0]
      • komoran 2.0 beta 최초 공개
    • [2.0.0] 미만

    자세한 사용법은 하기 링크 또는 첨부된 메뉴얼을 참조하시기 바랍니다.

    사용법 (글 제목 : KOMORAN ver 2.0.4 beta (자바 한국어 형태소 분석기))

    데모 사이트



저작자 표시 비영리 변경 금지
신고
권순재 | 2014.11.28 11:51 신고 | PERMALINK | EDIT/DEL | REPLY
에러리포트 입니다.
잘생기다 를 형태소 분석하니 아래와 같이 나오네요.
잘 MAG
생기 VV
그런데 국어사전에 '잘생기다'라는 단어가 있는걸 보아 잘생기다 VV 가 되어야 할 것 같습니다.
또 대한독립의 형태소 분석이
대하 VV
독립 NNG
이렇게 나타납니다. 아무리봐도 대한을 대하 VV와 어미 ㄴ으로 나누어서 형태소 분석을 하는 듯 합니다.
언제나 코모란 열심히 쓰고 있습니다. 감사합니다.
shine_ing | 2014.11.28 11:55 신고 | PERMALINK | EDIT/DEL
리포팅 감사합니다!
근데 제가 2.4 ver 기준으로 '잘생기다'를 테스트해보니
'잘생기/VA+다/EC' 로 나오네요.
대한독립의 경우에는 오분석인 것을 확인하였습니다.
관련 항목 참조하여 차기 업데이트에 반영하도록 하겠습니다! 진심으로 감사드립니다!
글로리 | 2015.03.11 17:57 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요!
궁금한 점이 있어서요!!^^
models학습을 HMM을 처리하셨다고하는데요 SVM이나 다른 모델로 변경할려면~
어떻게 해야하는지요?
models 디렉토리에 4개의 파일이 있습니다만~ 규칙이나 방법이나 자료가 있으시면 링크를 좀 부탁합니다
shine_ing | 2015.03.11 19:21 신고 | PERMALINK | EDIT/DEL
안녕하세요. 반갑습니다.
먼저 HMM을 이용해서 models를 생성한 것이여서, SVM을 활용하시려면 거의 새로 만드는 수준이 되야할 것 같습니다 ^^;;
코모란은 속도 향상을 위해서 형태소 분리와 동시에 HMM을 통과시키기 때문에 말씀하신 SVM을 활용하기에는 조금 어려울 것 같습니다 ㅠㅠ
글로리 | 2015.03.12 00:24 신고 | PERMALINK | EDIT/DEL | REPLY
빠른 답변 및 오픈소스에 대해서 감사합니다^^
학생이라 공부하는 재미가 쏠쏠합니당 ㅜㅜ. 관련 분야가 아니라 의지만 ㅜㅜ
그런데요 dic,irregular, dic.word, grammer,in에 대해서 간단한 설명을 부탁합니다.
이 부분을 이해하면 CRF++, SVM 등을 적용해서 간단하게 테스트를 할 수 있을 듯합니다만

shine_ing | 2015.03.30 17:45 신고 | PERMALINK | EDIT/DEL
안녕하세요. 답변이 많이 늦어졌습니다. 죄송합니다 ㅠㅠ
간략히 설명드리자면,
dic.irregular (불규칙 변환 규칙과 관련된 정보를 포함)
dic.word (형태소에 대한 품사 정보를 포함)
grammar (품사 간 결합 규칙 정보를 포함)
이런식으로 구성되어 있습니다.
말씀하신 CRF++나 SVM은 feature를 어떻게 쓸 것인지에 따라 입력될 내용이 많이 달라질 것으로 생각됩니다^^;;
김영 | 2015.03.13 17:26 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요~^^
1.에러 리포트입니다.
부여했다 -> 부여/NNG + 하/XSV+았/EP+다/EF로 나옵니다.

2. 사용하시는 사전이 세종말뭉치 사전인가요?
일반 세종말뭉치 사전에서는 빈도가 나오지 않습니다. 어떻게 빈도를 넣었죠잉??

언제나 코모란 재미나게 사용하고 있습니다. 감사요
shine_ing | 2015.03.30 17:47 신고 | PERMALINK | EDIT/DEL
안녕하세요. 답변이 많이 늦어져서 죄송합니다.
먼저 에러리포트 감사드립니다! 추후 버전에서 관련 내용을 포함시켜 꼭 개선시키겠습니다!
사용하고 있는 말뭉치는 세종 말뭉치입니다. 빈도수는 말뭉치에서 나오는 단어의 빈도수를 직접 세서 만들었습니다 ^^
감사합니다!
쓰레드 | 2015.06.02 15:32 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요, 오류가 있어서 문의드립니다.
제가 한글형태소 분석을 쓰레드를 이용하여 하려고 하는데요... 잘 안되네요 ^^
NullPointerException도 나고 ConcurrentModificationException 에러도 나고요...
쓰레드를 이용할순 없는건가요???

shine_ing | 2015.06.03 00:56 신고 | PERMALINK | EDIT/DEL
analyze에 synchronized 를 거시면 됩니다.
값진인생 | 2015.06.16 09:44 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. KOMORAN을 R에서 한국어 텍스트 마이닝(문서 군집과 분류)에 사용하고 싶습니다.
테스트 해 보니 KOMORAN 라이브러리가 R에서도 잘 실행되지만, 색인어를 추출하는 함수가 없어 아쉽습니다. 명사를 품사정보 없이 단어만 문자열 배열(또는 리스트)로 리턴하는 함수가 있었으면 좋겠습니다.

그리고 사용자 사전을 시스템 사전과 중복이 없도록 DB로 관리하려 하는데요. 시스템 사전에 어떤 단어가 등록되어 있는지 알 수 있는 방법이 있을까요?

좋은 자료를 공유해 주셔서 감사합니다.
shine_ing | 2015.06.16 14:14 신고 | PERMALINK | EDIT/DEL
안녕하세요. 먼저 말씀하신 것처럼 색인어만을 추출하는 함수에 대한 개발이 예정되어 있습니다.
사용자 사전과 시스템 사전 간의 중복 문제는 고민을 조금 많이 해봐야할 것 같습니다. 시스템 사전에 "다음"이라는 단어와 사용자 사전에 "다음"이라는 단어는 서로 다른 방식으로 동작합니다. 사용자 사전에 우선순위가 매우 높기 때문에 시스템 사전에 단어가 있더라도 추가적으로 사용자 사전에 넣는 경우도 많이 있거든요. 이 부분에 대해서는 어떤식으로 적용할지 고민을 많이 해보겠습니다.
피드백 주셔서 감사합니다. :)
값진인생 | 2015.06.17 18:13 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 개발이 예정되어 있다니 다음 버전이 기다려지네요 ^^
우선은 결과에서 명사만 추출하는 로직을 추가해서 테스트를 진행하고 있습니다.
그런데 사용자 사전에 추가한 단어가 적용이 되지 않네요.
예제에 있는 것처럼
Komoran 생성 -> setUserDic("사용자 사전 파일") -> analyze("문장")
순으로 실행했는데, 사용자 사전에 추가한 "보건복지부"가 "보건" "복지부"로 분석됩니다. 또한 공백이 포함된 단어도 분석되지 않고요. R에서 테스트를 하다보니 소스를 올려도 도움이 안될 것 같네요. 혹시 필요하시면 댓글 달아 주세요. 감사합니다.
==========================
수정> 사용자 사전 파일 인코딩을 UTF-8로 했다고 생각했는데, 다시 확인해 보니 CP949로 되어 있었네요. 인코딩 변경 후 잘 되네요 ^^
지구민 | 2016.01.22 14:03 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 저기 뭐좀 물어보려고 하는데요
혹시 1.6으로 재컴파일 해서 사용가능할까요?
가능하다면
https://github.com/shineware/komoran-2.0
여기 공개한 소스를 그대로 사용해도 되는건지요?
Name
Password
Homepage
Secret
2014.09.29 20:46

KOMORAN 2.3




  • 주요 업데이트 내용
    • 불규칙 사전 정제
    • models-full에 포함된 단어 중 오분석을 유발할 수 있는 단어 정제

  • 버전 히스토리
    • [2.2]
      • 불용 로그 제거
      • 공백 미포함 형태소 분석 기능 추가
    • [2.1.2]
      • 사용자 환경에 따른 용량별 데이터 제공
      • 조사 결합 규칙 적용
      • 연결 어미 품사 확장
      • 기타 버그 수정
    • [2.1.1]
      • 연속된 영어(SL), 숫자(SN), 한자(SH)에 대한 분석 결과 변경
      • 버그 수정 및 안정화
    • [2.1]
      • 형태소 분석기 안정화 및 속도 개선
    • [2.0.4]
      • 띄어쓰기 관련 버그 및 기타 안정화
    • [2.0.3]
      • 사용자 사전 포맷 오류 수정
    • [2.0.1]
      • 분석 중 에러가 발생하는 치명적 오류 수정
    • [2.0.0]
      • komoran 2.0 beta 최초 공개
    • [2.0.0] 미만

    자세한 사용법은 하기 링크를 참조하시기 바랍니다.

    사용법 (글 제목 : KOMORAN ver 2.0.4 beta (자바 한국어 형태소 분석기))

    - 데모 사이트


    KOMORAN과 관련된 문의 사항은 ceo@shineware.co.kr로 연락주시기 바랍니다.


저작자 표시 비영리 변경 금지
신고
lancif | 2014.10.02 15:37 신고 | PERMALINK | EDIT/DEL | REPLY
감사합니다! 요번 버전도 잘 쓸게요. ^^

버그 리포트 하나 더 합니다.

입력 : 어떠신지
출력 : 어떠/XR 신/NNG 이/VCP 지/EC
shine_ing | 2014.10.02 15:43 신고 | PERMALINK | EDIT/DEL
감사합니다.
매번 이렇게 피드백 주셔서 감사합니다!!
lancif | 2014.10.09 16:36 신고 | PERMALINK | EDIT/DEL | REPLY
버그 리포트할게요 ^^

"회신주시기 바랍니다"에서 따온건데요,

입력 : 회신주시기
출력 : 회/NNB 신주/NNG 시기/NNG

이렇게 나옵니다. 여기서, '주'가 동사로 뽑혔으면 하거든요.
입력했던 문장에 제대로 띄어쓰기를 해서 "회신 주시기"로 쓰면 제대로 됩니다.

감사합니다.
shine_ing | 2014.10.13 11:53 신고 | PERMALINK | EDIT/DEL
개인적인 일 때문에 답변이 늦었네요. 죄송합니다 ^^;;
리포팅하신 내용은 띄어쓰기가 올바르지 않아서 나타나는 문제인데, 사실 komoran에는 띄어쓰기 모듈이 들어있지 않습니다..ㅠㅠ 그래서 말씀하신 내용은 프로그램 측면에서 버그라기보다는 데이터 오류로 보여집니다만..말씀하신 내용들도 잘 처리를 해야겠죠! 조만간 띄어쓰기 모듈 추가해서 업데이트 하도록 하겠습니다! 항상 감사합니다!
lancif | 2014.10.15 10:54 신고 | PERMALINK | EDIT/DEL
감사합니다 ^^
Curycu | 2014.10.19 00:21 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요/ komoran 유저입니다 :) 요번에 코모란 및 여러 형태소 분석기들을 이용해서 텍스트마이닝 프로그램을 작성 중인데요, 코모란이 제공하는 메소드 중에서는 "추출된 형태소의 원문 내에서의 위치" 를 알려주는 메소드가 없는 것 같더라구요/ 내부적으로는 형태소 분석 시에 분명 사용되고 있는 정보일 듯 한데, 차후 업데이트에서 해당 정보를 제공하는 메소드를 추가해주실 수 있을까요?
shine_ing | 2014.10.19 01:17 신고 | PERMALINK | EDIT/DEL
분석된 형태소가 입력된 텍스트에서 몇번째위치인지 알려달라는 말씀이신가요? 만약에 맞다면 이 부분은 형태소분석기의 기능이 아니라서 조금 힘들것 같습니다^^;;
Curycu | 2014.10.19 02:01 신고 | PERMALINK | EDIT/DEL | REPLY
엇... 그렇군요 ㅠ.ㅠ 알겠습니다~
shine_ing | 2014.10.19 02:04 신고 | PERMALINK | EDIT/DEL
형태소 분석기를 쉽게 응용 및 적용 가능하게끔 라이브러리들을 개발 예정 중에 있습니다. 말씀해주신 피드백 성실히 반영하도록 하겠습니다! 감사합니다^^;
lancif | 2014.10.27 17:03 신고 | PERMALINK | EDIT/DEL | REPLY
버그 리포트 하나 할게요. ^^

입력: "가. 일정: 10/20"
출력: "가/VV 아/EF ./SF 일정/NNG :/SP 10/SN //SP 20/SN"

문제는 '가.'입니다. 목차를 표현하려고 쓰인 것인데, 동사가 뽑혀버렸습니다.
'나.', '라.' 에서도 같은 현상이 나타납니다.

Ambiguity 문제라 해결하기 어려울 수도 있겠지만, 일단은 리포팅해봅니다. ^^

매번 감사합니다!
shine_ing | 2014.10.27 18:11 신고 | PERMALINK | EDIT/DEL
매번 감사드립니다. 현재 영어 품사 태거를 만들고 있어서 코모란 업데이트가 지연되고 있네요..ㅠㅠ 조만간 빨리 반영하도록 하겠습니다!
lancif | 2014.10.28 09:45 신고 | PERMALINK | EDIT/DEL
감사합니다 ^^
lancif | 2014.10.30 10:21 신고 | PERMALINK | EDIT/DEL | REPLY
버그 리포팅 하나 더 할게요.

입력: "보내주셔요"
출력: "보/NNG 내주/NNG 시/VA 어요/EC"

입력: "주셔요"
출력: "주/NNG 시/VA 어요/EC"

피드백 매번 잘 반영해주셔서 감사합니다. ^^
shine_ing | 2014.11.04 18:14 신고 | PERMALINK | EDIT/DEL
감사합니다! 아마 금주 내로 업데이트 될 것 같습니다! 감사합니다!
정담 | 2014.11.04 18:13 신고 | PERMALINK | EDIT/DEL | REPLY
이쪽 분야는 전혀 몰라서 어떻게 할지 난감했는데
덕분에 수고를 많이 줄였습니다.
정말 큰 도움 되었습니다. 감사합니다.
^_^b
shine_ing | 2014.11.04 18:15 신고 | PERMALINK | EDIT/DEL
도움이 되었다니 다행이네요. 사용하시다가 불편하신 점이나 이상한 점은 망설이지 마시고 바로 알려주시면 적극 반영하겠습니다. 감사합니다!
Name
Password
Homepage
Secret
2014.09.12 10:21

KOMORAN 2.2


    • 주요 업데이트 내용
      • 일부 문장 분석 시 특정 로그가 출력되는 현상 제거
      • 형태소 분석 시 공백 포함/미포함 분석 기능 추가
        • 공백 포함 분석(2.2 이전 버전과 동일한 메소드 사용)
          • sample code
            • String in="바람과 함께 사라지다를 봤어.";            

              List<List<Pair<String,String>>> analyzeResultList = komoran.analyze(in);

          • 분석 결과

            • 바람과 함께 사라지다/NNP+를/JKO

              보/VV+았/EP+어/EF+./SF

        • 공백 미포함 분석(2.2 버전 신규 메소드)

          • sample code

            • String in="바람과 함께 사라지다를 봤어.";            

              List<List<Pair<String,String>>> analyzeResultList = komoran.analyzeWithoutSpace(in);

          • 분석 결과

            • 바람/NNG+과/JC

              함께/MAG

              사라지/VV+다/EC+를/JKO

              보/VV+았/EP+어/EF+./SF

    • 버전 히스토리
      • [2.1.2]
        • 사용자 환경에 따른 용량별 데이터 제공
        • 조사 결합 규칙 적용
        • 연결 어미 품사 확장
        • 기타 버그 수정
      • [2.1.1]
        • 연속된 영어(SL), 숫자(SN), 한자(SH)에 대한 분석 결과 변경
        • 버그 수정 및 안정화
      • [2.1]
        • 형태소 분석기 안정화 및 속도 개선
      • [2.0.4]
        • 띄어쓰기 관련 버그 및 기타 안정화
      • [2.0.3]
        • 사용자 사전 포맷 오류 수정
      • [2.0.1]
        • 분석 중 에러가 발생하는 치명적 오류 수정
      • [2.0.0]
        • komoran 2.0 beta 최초 공개
      • [2.0.0] 미만

자세한 사용법은 하기 링크를 참조하시기 바랍니다.

사용법 (글 제목 : KOMORAN ver 2.0.4 beta (자바 한국어 형태소 분석기))


KOMORAN과 관련된 문의 사항은 ceo@shineware.co.kr로 연락주시기 바랍니다.


저작자 표시 비영리 변경 금지
신고
얍얍 | 2014.09.18 19:48 신고 | PERMALINK | EDIT/DEL | REPLY
위에있는 프로그램 다섯개 다운받은다음에 어떻게 해야 되나요...?
도저히 사용법을봐도..잘 이해가 안가네요
shine_ing | 2014.09.24 00:57 신고 | PERMALINK | EDIT/DEL
완전한 프로그램이 아닌 자바 라이브러리 형태입니다. 자바 프로그래밍에 대한 이해가 있으셔야 사용이 가능하십니다. 프로그래밍과 관련 없이 사용할 수 있도록 완전한 프로그램을 조만간 추가하도록 하겠습니다. 불편을 드려서 죄송합니다..
권순재 | 2014.09.19 14:17 신고 | PERMALINK | EDIT/DEL | REPLY
버그 리포트 할게요
큰따옴표와 작은따옴표의 대표적인 용례를 소개해 주세요.
[큰따옴표 NNP, 작은따옴표 NNP, 대표 NNG, 적 XSN, 이 VCP, ㄴ ETM, 용례 NNG, 소개 NNG, 하 XSV, 아 EC, 주 VX, 시 EP]
큰따옴표 같은 경우 큰따옴표 NNP <- 요런식으로 잡히네용
shine_ing | 2014.09.24 01:00 신고 | PERMALINK | EDIT/DEL
models-full과 같은 경우에는 위키피디아에 있는 제목들이 고유명사로 추가되었습니다. 그 과정에서 말씀하신 큰따옴표가 위키페이지에 존재하여 고유명사로 인식되는 것을 확인하였습니다. 이 부분은 위키피디아 데이터를 검수하여 수정하도록 하겠습니다. models-light 버전을 사용하시면 큰따옴표가 NNP로 분석되지 않을 것입니다^^ 감사합니다.
lancif | 2014.09.24 14:28 신고 | PERMALINK | EDIT/DEL | REPLY
코모란 매번 잘 쓰고 있습니다. ^^
저도 버그리포트 하나 할게요.

입력: 않을게요
출력: 않/VX 으시/EP ㄹ게요/EC

여기서 '으시'가 잘못나온것 같아요. '시'가 빠져야할것 같아요
shine_ing | 2014.09.24 15:20 신고 | PERMALINK | EDIT/DEL
불규칙 사전에 잘못된 정보가 있는 것 같네요~ 업데이트 시 반드시 반영하도록 하겠습니디ㅏ. 감사합니다!
lancif | 2014.09.25 16:40 신고 | PERMALINK | EDIT/DEL | REPLY
질문하나 더 드릴게요. ^^

입력: 가능
출력: 가능/XR

이렇게 나오는데요, 이것도 버그인가요?
아니면, XR('어근' 맞나요?)로 나오는게 맞는건가요?
shine_ing | 2014.09.25 16:45 신고 | PERMALINK | EDIT/DEL
글쎄요..어근이라는 품사 자체가 매우 애매한 부분이죠..학습한 데이터를 살펴보니 어근이라고 태깅되어 있네요^^ 개인적으로 어근이라는 태그를 명사로 변경할까 생각중입니다..애매하죠 참..ㅎㅎ
lancif | 2014.09.25 17:33 신고 | PERMALINK | EDIT/DEL
그렇군요. 감사합니다 ^^
lancif | 2014.09.29 11:07 신고 | PERMALINK | EDIT/DEL | REPLY
버그 리포트 하나 더 드립니다. ^^

입력: 주셔요
출력: 어/EC 주/VX 시/EP 어요/EC
shine_ing | 2014.09.29 13:13 신고 | PERMALINK | EDIT/DEL
정말 감사드립니다! 사실 이런 부분은 학습데이터 자체에 의한 버그라서 정말 찾기 힘든 부분인데.. 진심으로 감사드립니다!
lancif | 2014.09.29 14:02 신고 | PERMALINK | EDIT/DEL
저야 말로, 좋은 형태소분석기 만들어주셔서 감사합니다 ^^
Name
Password
Homepage
Secret
2014.07.21 11:37

안녕하세요. 거의 1년만에 공개 포스팅을 작성합니다.


다름이 아니라 내부적으로 계속 KOMORAN에 대해서 업데이트를 진행 중에 있었으며, 

이제 그에 따른 결과물을 다시 한번 공유하고자 이렇게 글을 작성합니다.


1.x 버전과 마찬가지로 이번 버전도 많은 분들의 피드백과 도움이 있어야 더 좋은 형태소 분석기로써의 면모를 갖출 수 있을 것 같습니다.


먼저 속도, 정확률 측면에서 성능이 좋아졌으며 부가적으로 아래와 같이 공백이 포함된 고유명사를 분석할 수 있는 기능이 추가되었습니다.


  • 입력 문장 : 바람과 함께 사라지다를 봤습니다.
  • 사용자 사전 : 바람과 함께 사라지다/NNP
  • 분석 결과
    • 바람과 함께 사라디자/NNP+를/JKO
    • 보/VV+았/EP+습니다/EF+./SF


 위와 같은 기능을 추가한 이유는 기존의 어절 단위로 분석 결과를 제공하는 형태소 분석기의 경우 영화명, 상품명, 행사명 등과 같이 띄어쓰기가 포함된 고유명사를 분석하는데 큰 걸림돌이 되었습니다. 어절 단위 형태소 분석 결과를 토대로 기계 학습, 규칙 등을 사용하는 후처리 모듈을 통해서만 처리가 가능하였습니다. 이에 대한 근본적인 문제를 해결하기 위해서 위와 같은 기능을 추가하였습니다.


현재 마무리 단계에 있으며 기분석 사전에 대한 적용 방법에 대해서 고민 중입니다. 기존 1.x 버전이 어절 단위 기분석 사전이였다면 현재 2.0 버전 부터는 문장 단위 기분석 사전이 될 확률이 높습니다. 이와 관련된 이슈는 추후에 정리하여 공지하도록 하겠습니다.


공개는 이번달 말쯤으로 예정되어있습니다.

빨리 마무리 지어서 공개하도록 하겠습니다.

이번에도 많은 분들이 도움을 주시길 바라겠습니다. 감사합니다.








저작자 표시 비영리 변경 금지
신고
origoni | 2014.07.22 07:01 신고 | PERMALINK | EDIT/DEL | REPLY
정말 감사합니다.
이달 말이 너무 기다려지네요.
잘 사용해보고 피드백 드리겠습니다.
shine_ing | 2014.07.23 10:31 신고 | PERMALINK | EDIT/DEL
감사합니다. 피드백 적극 반영하도록 하겠습니다!
obama | 2014.07.23 10:28 신고 | PERMALINK | EDIT/DEL | REPLY
분석속도는 많이 향상 되었는지요?
이전 버전은 KLT, MACH 2.0 대비 엄청 느렸는데 이부분에 대한 개선이 있었으면 좋겠습니다.
shine_ing | 2014.07.23 10:45 신고 | PERMALINK | EDIT/DEL
안녕하세요. 댓글 감사드립니다.
먼저 분석 속도는 기존 1.0에 비해서 많이 향상되었습니다만,
말씀하신 KLT나 MACH 2.0 대비해서는 아직도 많이 느립니다. 그 이유 중 첫번째는 태그셋의 차이입니다. 아시다시피 세종태그셋 대비 KLT와 MACH에서 분석되는 태그의 종류가 적습니다. 그렇기 때문에 일단 연산 속도 및 정확률 측면에서 높은 성능을 보일 수 있습니다. 또 다른 이유로는 KLT와 MACH 2.0은 C,C++로 만들어졌다는 것입니다. 이러한 근본적인 문제 때문에 현재 C,C++ 버전을 계획 중에 있습니다. 좋은 지적 감사드리며, 항상 속도 문제 때문에 신경이 쓰였었는데 조금 더 고민을 많이 해보겠습니다~ 감사합니다.
shine_ing | 2014.07.23 13:53 신고 | PERMALINK | EDIT/DEL
아 다른 분들이 댓글만으로 판단하실까봐 추가적으로 댓글을 답니다. KLT, MACH 2.0에 비해서는 느리지만 공개된 타 형태소 분석기와는 비슷하거나 더 빠른 처리 속도를 보여줍니다. 감사합니다~
obama | 2014.08.11 17:54 신고 | PERMALINK | EDIT/DEL | REPLY
태그셋이 세종 태그셋 이군요. POS도 사용자 옵션으로 빼면 Full 사용할 경우보다 Minimum으로 사용할 경우의 속도를 높일 수도 있겠죠.
Java라면 꼬꼬마 보단 이미 빠르니 KAIST의 HanNanum과 Lucene의 arirang 속도만 넘기시면 국내 최고가 될 것 같습니다. ^^
shine_ing | 2014.08.11 17:50 신고 | PERMALINK | EDIT/DEL
조만간 슈퍼스피드로 보답하겠습니다!! 커밍순~
Name
Password
Homepage
Secret
2013.06.19 02:40

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


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

저작자 표시 비영리 변경 금지
신고
hare | 2013.06.19 17:18 신고 | PERMALINK | EDIT/DEL | REPLY
새로운 버전이 업데이트 되었군요! 축하드립니다.
혹시 개발하실때 이클립스 쓰시나요? 이클립스 버전에 따라 실행이 되기도 않되기도 해서요.(갈릴레오버전에서는 실행이 안되며, 주노버전에서는 잘되네요. - 이클립스문제일테지만.. 한참을 헤맸네요.ㅎ)
프로젝트 덩치가 점점커지니 기분이 좋으시겠습니다!!ㅎ
shine_ing | 2013.06.19 17:29 신고 | PERMALINK | EDIT/DEL
감사합니다^^;;
개발할 때 이클립스를 쓰고 있습니다만, 버전에 따라서 실행이 안되는 점은 생각을 못하고 있었네요. 왜 그럴까요.. 테스트를 한번 해봐야겠네요. 소중한 지적 감사드립니다^^
songyi | 2013.06.19 21:14 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 지난번에 앱개발 관련해서 질문했던 이용자입니다 ^^;
다름이아니라 연동시키기 위해 말씀하신 절대경로를 이용해도 보고 외부 SD카드를 이용해서도 해보았지만 뭐가 문제인지 그 경로 지정해서 객체 만드는부분에서 계속해서 에러가 나네요 ㅠㅠ
혹시 소스중에 MorphologyAnalyzer의 생성자 부분 코드만이라도 참고좀해볼 수 있을까요 ?
shine_ing | 2013.06.19 21:59 신고 | PERMALINK | EDIT/DEL
사용하시는 부분의 소스를 메일로 보내주시면 확인해드리겠습니다^^;; 혹시 앱 말고 PC에서는 잘동작하는지요?
songyi | 2013.06.19 22:43 신고 | PERMALINK | EDIT/DEL | REPLY
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 신고 | PERMALINK | EDIT/DEL
안드로이드는 잘 모르지만 sd카드에 있는 데이터를 읽어들이기 위해서는 권한을 설정해줘야 하는거 아닐까요?그래도 안된다면..안드로이드를 기반으로 한 내용이 아니라 어쩔수없을것 같네요^^;;
wow | 2014.02.19 02:13 신고 | PERMALINK | EDIT/DEL
혹시 해결하셨나요?
shine_ing | 2014.02.19 11:20 신고 | PERMALINK | EDIT/DEL
다른 분들의 테스트 결과를 토대로 말씀을 드리자면, SD 카드 경로 및 권한과 관련하여 문제가 발생한 내용이라서, 아마 권한 설정을 해주시면 될 것 같습니다~
wow | 2014.02.19 23:16 신고 | PERMALINK | EDIT/DEL
SD card로 접근하면 GC_FOR_ALLOC freed 에러가 납니다. 즉 heap 영역에서 너무 많은 데이터를 처리하다보니 제대로 읽지 못하는 것 같은데 안드로이드 내부에서 접근하려고 res/raw에 넣으려고 하니 기본적으로 대문자를 못읽어서 안됩니다. 고민입니다. ㅠ 어떤 방법이나 해결책 없을까요?
shine_ing | 2014.02.20 10:15 신고 | PERMALINK | EDIT/DEL
현재 버전 히스토리를 보시면 아시겠지만 1.1 버전 부터 최소 1G 이상의 메모리를 필요로 하고 있씁니다. 이와 관련되서 해결하시려면 1.0 버전을 사용하시는 것을 권고드립니다^^
dalma | 2013.07.10 22:53 신고 | PERMALINK | EDIT/DEL | REPLY
아래와 같은 코드를 실행시켰는데 오류가 납니다. 무엇이 잘 못된 것일까요?

"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 신고 | PERMALINK | EDIT/DEL
datas/밑에 또 datas/가 있어서 그런게 아닐까 싶네요..^^
청화(淸華) | 2013.08.04 17:18 신고 | PERMALINK | EDIT/DEL | REPLY
shine_ing님의 형태소 분석기 잘 쓰고 있습니다. 감사합니다. ^^
헤이즐 | 2013.08.26 14:01 신고 | PERMALINK | EDIT/DEL | REPLY
형태소 분석이 잘 이용하고 있습니다^^
좋은 프로그램 만들어 주셔서 정말 감사합니다!

그런데 형태소 분석기를 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 신고 | PERMALINK | EDIT/DEL
제가 넘 급하게 에러코드를 봤나 봅니다. ㅠㅠ
웹 프로젝트에서는 상대경로가 잘 지정이 안돼는 것 같더군요 ㅠㅠ
위 에러도 경로지정이 잘 못되어 뜨던 에러였고요.

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

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

상황에 따라 실제경로가 달라질 수 있으니 웹 프로젝트에서는 경로를 잘 확인해야 할 것 입니다. ㅠㅠ(이걸로 몇일 고생했네요... 아 시간아..)
에러 | 2013.12.23 23:21 신고 | PERMALINK | EDIT/DEL | REPLY
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 신고 | PERMALINK | EDIT/DEL
소스 없이 라이브러리만 갖고 디버깅하면 원래 나오는건데.........디버깅 말고 실행을 하셔야하지 않나요? 소스는 공개 안된걸로 아는데...
지나가다 | 2014.03.21 16:59 신고 | PERMALINK | EDIT/DEL | REPLY
맨위의 실행 문제는
이클립스 버전 차이도 있겠지만 JDK/JRE 버전 차이에 따른 것일 수 있습니다.
라이브러리가 상위 버전에서 생성되면 하위 버전에서 실행 할때 동작이 잘 안되는 경우가 있습니다.
라이브러리 생성 버전을 배포할때 명시 해 주시고 사용하시는 분들은 라이브러리 생성버전 이상에서 실행하시면 우선 해결 될듯 합니다.
shine_ing | 2014.03.25 16:28 신고 | PERMALINK | EDIT/DEL
감사합니다~ 무슨 문제일까 고민하고 있었는데 그 부분은 생각도 못했었네요 =ㅅ-;;
ㅠㅠ질문요 | 2014.03.29 21:52 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.
다운받아서 테스트 해보았습니다. 그런데 기분나쁠때 쓰는 ㅡㅡ있잖아요.
ㅡ가 고유명사로 인식되는데... 원래 문법상 맞는건가요 개발자님?...
질문입니다..^^
shine_ing | 2014.03.31 12:29 신고 | PERMALINK | EDIT/DEL
위키피디아의 내용 중에 "ㅡ"가 등록되어 있어서 이런 현상이 나타난 것으로 판단됩니다. 일단은 위와 같은 현상을 해결하기 위해서는 1.0 버전을 사용하시기를 추천드립니다. 더불어서 말씀해주신 내용은 차기 버전에 반드시 포함시키겠습니다. 감사합니다.
안녕하세요! | 2014.04.01 11:39 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 다운받아서 스프링 환경에서 테스트하고 있는 유저입니다!
그런데 maven 프로젝트를 이용하다보니, 사용자가 만든 라이브러리를 추가할 때 결함이 있었습니다.
그래서 maven 폴더에 추가하여 쓰려고 하는데 두 라이브러리의 groupId와 ArtifactId를 가르쳐주실 수 있습니까?? 개발자님 도와주셔요^^
shine_ing | 2014.04.01 18:28 신고 | PERMALINK | EDIT/DEL
먼저 사용해주셔서 감사합니다.
제가 지식이 부족하여 maven 환경에서 사용해본적이 없네요..그래서 말씀하신 내용이 어떠한 의미인지 정확히 파악이 안되네요. 얼핏 검색해본 결과 maven의 repository에 등록되어 있는 내용만 당겨서 쓸 수 있는 것 같은데..아닌가요? 만약에 맞다면 maven은 지원하지 않는다고 말씀드릴 수 있겠네요 ^^;;
서비 | 2014.06.13 18:52 신고 | PERMALINK | EDIT/DEL
안녕하세요! 님
메이븐 central 레파지토리에 등록이 안된 라이브러라면 라이브러리를 직접 관리 할 메이븐 레파지토리를 구축하시는 방법도 있습니다.
세상의 모든 라이브러리가 모두 central에 들어갈 수는 없고 경우에 따라서는 외부로 유출할 수 없는 라이브러리를 따로 관리할 필요가 있으므로 nexus http://www.sonatype.org/nexus/ 등을 를 통해 지엽적인 메이븐 레파지토리를 구성하실 수 있습니다.
| 2014.07.11 10:01 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
shine_ing | 2014.07.11 10:26 신고 | PERMALINK | EDIT/DEL
말씀하신 클래스의 package를 보니 komoran에 필요한 library만을 사용하신 것 같네요. 소스 내용을 메일로 보내주시면 확인 후에 답장 드리도록 하겠습니다.
안녕하세요! | 2014.08.10 21:43 신고 | PERMALINK | EDIT/DEL | REPLY
형태소 분리기를 윈도우환경에서 사용하면 잘 돌아가는데
리눅스 환경에서 돌릴려니까 작동을 안하네요ㅠㅠ
원래 그런건가요? 아님 제가 다른 설정을 해야하는건가요??
shine_ing | 2014.08.10 23:06 신고 | PERMALINK | EDIT/DEL
리눅스 환경이라도 제대로 동작하는 것을 확인하였습니다~ 혹시 JDK가 깔려있지 않거나 버전이 너무 낮은것은 아닌지요? JDK 1.7이상을 권장드립니다.
shine_ing | 2014.08.11 09:58 신고 | PERMALINK | EDIT/DEL
메일로 답변드린대로 vm 설정관련이 아니라면 답변 부탁드립니다
Name
Password
Homepage
Secret
2013.06.08 22:01

komoran 1.2(예정)

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

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


komoran 1.1

-core library

komoran-1.1.jar

-required library

shineware-common-lib-1.0.jar

-required data files

data.zip


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

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

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

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

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

사용법은 1.0 버전 참조.


komoran 1.0

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


저작자 표시 비영리 변경 금지
신고
Keith Kim | 2013.06.13 01:52 신고 | PERMALINK | EDIT/DEL | REPLY
맥 Snow Leopard에서 콘솔에서는 한글이 다 깨져나오는군요. 왜 그런지는 모르겠습니다. 이클립스에서 돌려보니 한글이 바르게 나오긴 합니다만 결과가 1.0버전 페이지에 있는것과 다릅니다. 다음은 1.1에서의 결과입니다:

Pair [first=안녕하세요, second=NNP]
Pair [first=?, second=SF]

Pair [first=좋, second=VA]
Pair [first=은, second=ETM]

Pair [first=아침, second=NNG]
Pair [first=이, second=VCP]
Pair [first=ㅂ니다, second=EC]
Pair [first=., second=SF]

그리고 작은것들이지만:
- 이 페이지에 있는 data.zip은 1.0버전의 샘플 코드에서는 datas/ 디렉토리를 사용합니다.
- 샘플코드를 돌리기위해서는 다음의 import를 명시해야 하는데 풀 샘플코드가 올라왔으면 좋겠군요.
import java.util.List;
import kr.co.shineware.nlp.komoran.core.MorphologyAnalyzer;
import kr.co.shineware.util.common.model.Pair;
shine_ing | 2013.06.13 09:54 신고 | PERMALINK | EDIT/DEL
1. 한글 깨짐 현상
콘솔에서 따로 테스트는 실행해보지 않았습니다만, 기본적으로 UTF-8로 인코딩이 되어 있습니다. 한글이 깨지는건 아마 인코딩 문제이지 않을까 싶네요.

2, 1.0 버전과 1.1 버전의 결과 차이
1.1 버전에는 위키피디아에 있는 사전을 추가하였습니다. "안녕하세요"라는 한국 TV 프로그램명이 있는 관계로 고유 명사로 태깅 된 것 같습니다. 추후에 어떤 식으로 반영할지에 대해서 업데이트 하겠습니다 ^^;;

3. 그 외 작은 것들
정말 감사드립니다. 제가 이클립스만 사용하다 보니 생각이 많이 짧았네요. 말씀하신대로 예제의 샘플코드와 폴더 이름을 동일하게 하여 다른 분들의 혼동을 미연에 방지하겠습니다^^

진심으로 감사드립니다~ 앞으로도 지적 부탁드립니다~! ㅎㅎ
origin.R | 2013.06.17 20:03 신고 | PERMALINK | EDIT/DEL | REPLY
이렇게 유용한 라이브러리를 만들어주셔서 정말 감사합니다.
저는 KOMORAN을 웹 컨텐츠를 분석하는데 사용하고 있습니다.
아주 잘 사용하고 있습니다.

한가지 궁금한 점이 있는데요,

MorphologyAnalyzer::analyze 메소드의 리턴 타입이

List<List<Pair<String,String>>> 인데요,

여기서, 리스트를 두 개를 쓰신 이유는 n-best 를 표현하려고 하신건가요?
shine_ing | 2013.06.18 00:46 신고 | PERMALINK | EDIT/DEL
아 아직 설명이 많이 미흡했네요..정리하고 있는데도 이 부분을 빼먹었네요ㅠㅠ;; 문장을 입력 단위로 받다보니 List의 List 형태로 구성이 되었습니다. "감기는 자주" 라는 문장을 넣으면, 가장 바깥 List에는 감기는, 자주의 분석 결과가 들어가게 되며 실제 분석 결과는 각각 "감기/VV, 는/ETM", "자주/MAG"가 들어가게 됩니다. 요약하면, 바깥 List는 어절 내부 List는 어절의 분석 결과가 삽입됩니다.
origin.R | 2013.06.17 20:55 신고 | PERMALINK | EDIT/DEL | REPLY
로딩 중에 런타임 에러가 생기는 경우가 있습니다.
5~6번 돌릴 때 한번 씩 생기고 있구요, 에러가 발생하지 않을 경우엔, 정상적인 결과가 나옵니다.
(참고로, 저는 맥(마운틴라이언)을 쓰고 있으며, 이클립스(주노)에서 작업하고 있습니다. 인코딩은 utf-8로 세팅해놓은 상태입니다.)

다음은, 에러가 생기는 샘플 코드입니다.


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 exam {
public static void main(String[] args) {
System.out.println("Start");
MorphologyAnalyzer analyzer = new MorphologyAnalyzer("data/");
System.out.println("Done");
}
}


이 소스코드를 여러번 실행시키다 보면, 런타임 에러가 발생합니다.
(대략 10번 정도 실행시켜 보시면 에러를 만나실 수 있을겁니다.)

콜 스택은 다음과 같이 나옵니다.

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3462)
at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3269)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1787)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:70)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:77)
at kr.co.shineware.util.ds.trie.TrieNode.load(TrieNode.java:62)
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 exam.main(exam.java:9)


또 사용해보다가 궁금한 점이 생기면 말씀드리겠습니다.

유용한 라이브러리 만들어 주셔서 정말 감사합니다!!
shine_ing | 2013.06.18 00:48 신고 | PERMALINK | EDIT/DEL
위에서 언급한 것과 같이 JVM의 메모리는 1G로 세팅해주셔야 합니다. (-Xmx1G) 그래도 위와 같은 에러가 발생한다면 메모리를 조금 더 주시는 것을 권장합니다^^;;
origin.R | 2013.06.19 07:59 신고 | PERMALINK | EDIT/DEL | REPLY
그런 것이었군요. 감사합니다!!
shine_ing | 2013.06.19 08:50 신고 | PERMALINK | EDIT/DEL
도움이 되셨길 바랍니다^^ 추가적으로 금일새로운 버전으로 업데이트 하였으니 새로운 버전을 사용하시는 것을 추천드립니다^^
kim | 2017.02.22 17:41 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. komoran으로 많은 도움 주셔서 감사합니다.
질문이 있는데요.
grammar.in이나 dic.word에 보면 품사 뒤의 숫자는 어떻게 얻으신 것인지 알 수 있을까요?

탄로 NNG:10
앞당겨야 앞당기/VV 어야/EC:1
VV SS:9,VV:1,

감사합니다.
행인 | 2017.02.24 15:35 신고 | PERMALINK | EDIT/DEL
세종코퍼스에서 추출해서 얻으셨다고 전에 댓글에서 봤습니다!
Name
Password
Homepage
Secret
2013.05.18 17:21

1.    KOMORAN?

KOMORAN SHINEWARE SOFT에서 제작한 한국어 형태소 분석기로서 자바 라이브러리 형태(.jar)로 제공됩니다. KOMORAN은 기존 형태소 분석기의 연구 결과들을 바탕으로 하여 속도’, ‘성능’, ‘사전 관리 비용에서 가장 우수한 성능을 낼 수 있도록 설계되었습니다.

 

2.    KOMORAM 특징

KOMORAN은 자소 단위, 확률 기반의 형태소 분석기 입니다. 속도, 성능, 사전 관리 측면에서 기존 형태소 분석기와 차별되는 특징은 아래와 같습니다.

-       속도

n  Hash 기반의 파싱 방법을 적용하여 한글 분석 속도 향상

n  TRIE 기반의 사전 구성으로 사전 재탐색 횟수를 최소화하여 사전 탐색 속도 향상

n  KOMORAN 내부의 자료형(Data Type)을 대부분 정수(Integer)로 처리하여 연산 속도 향상

n  Hash 기반의 Viterbi 알고리즘을 이용하여 분석 후보 탐색 속도 향상

-       성능

n  한글 불규칙 처리 규칙을 자동화하여 불규칙 어절 대한 분석 정확률 향상

n  TRIE 및 압축된 사전 정보를 사용하여 메모리 사용률 최소화

-       사전 관리

n  사용자 사전을 추가하여 신조어, 고유명사 등의 분석 가능

n  기분석 사전을 적용하여 정확률 및 분석 속도 향상 가능

 

3.    KOMORAN 성능 평가

KOMORAN의 성능을 평가하기 위해 아래와 같이 속도 및 정확률에 대한 실험을 진행하였습니다.

-       속도 평가

n  평가에 사용된 컴퓨터 Spec.

u  프로세서 : 2.3GHz Intel Core i5

u  메모리 : 8GB 1600MHz DDR3

n  초당 2만 어절 분석(word/sec)

n  초당 4천 문장 분석(line/sec)

n  초당 0.2MB 분석(MB/sec)

-       정확률 평가

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

u  어절 정확률 : 92.55%

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

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

u  어절 정확률 : 84.36%

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

 

4.    사용 방법

KOMORAN을 사용하기 위해서는 먼저 komoran 라이브러리와 common 라이브러리를 다운로드 받아야 합니다. KOMORAN 라이브러리는 아래 경로에서 다운로드 받으실 수 있습니다.

-       Core library  

komoran-1.0.jar


-       Require library  

shineware-common-1.0.jar


-       Require data files 

datas.zip


 

(1)   기본적인 사용 방법

 

//Require files 가 저장된 루트 폴더를 지정하여 객체 생성

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

                    

List<List<Pair<String,String>>> result = analyzer.analyze("안녕하세요? 좋은 아침입니다.");

                    

for (List<Pair<String, String>> eojeolResult : result) {

                     for (Pair<String, String> wordMorph : eojeolResult) {

                                System.out.println(wordMorph);

                     }

                     System.out.println();

}

위 소스를 실행한 결과는 아래와 같습니다.

 

Pair [first=안녕, second=NNG]

Pair [first=, second=XSV]

Pair [first=, second=EP]

Pair [first=어요, second=EC]

Pair [first=?, second=SF]

          

Pair [first=, second=VA]

Pair [first=, second=ETM]

 

Pair [first=아침, second=NNG]

Pair [first=, second=VCP]

Pair [first=ㅂ니다, second=EC]

Pair [first=., second=SF]

 

(2)   기분석 사전 적용

기분석 사전은 아래와 같이 setFWD(“기분석 사전 파일명”)을 이용하여 적용 가능합니다.

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

//기분석 사전 적용

analyzer.setFWD("fwd.txt");

 

기분석 사전의 파일 구조는 아래와 같습니다.

n  구조

u  [분석할 어절]\t[분석 결과]

n  Example

수입불가      수입/NNG+불가/NNG

사람이라고   사람/NNG+/VCP+라고/EC

 

(3)   사용자 사전 적용

사용자 사전은 아래와 같이 setUserDic(“사용자 사전 파일명”)을 이용하여 적용가능합니다.

//Require files 가 저장된 루트 폴더를 지정하여 객체 생성

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

//사용자 사전 적용

analyzer.setUserDic("userDic.txt");

 

사용자 사전의 구조는 아래와 같습니다.

n  구조

u  [단어]\t[품사]

u  시작 기호 ‘#’로 주석처리 가능

n  Example

#주석은 라인의 가장 앞에 #을 표시하여 사용

싸이콘서트   NNP

네이버        NNG

 

5.    문의 사항

KOMORAN과 관련된 문의 사항은 ceo@shineware.co.kr로 연락주시기 바랍니다.

저작자 표시 비영리 변경 금지
신고
유총재 | 2013.05.19 23:49 신고 | PERMALINK | EDIT/DEL | REPLY
또 업데이트가 되었군요!

감사히 잘 사용하고 있습니다!^^
shine_ing | 2013.05.20 00:32 신고 | PERMALINK | EDIT/DEL
사용해주셔서 감사합니다^^
좋은 연구 많이 하시길 바라겠습니다^^
hare | 2013.05.20 11:35 신고 | PERMALINK | EDIT/DEL | REPLY
오!!! 추가된 기능이 후덜덜하군요. 깔끔하게 잘 됩니다.
버전 1.0 으로 올라온것 축하드립니다.
shine_ing | 2013.05.20 11:39 신고 | PERMALINK | EDIT/DEL
감사합니다^^ 많이 사용해주시고 버그 및 개선 사항 제안도 많이 해주세요^^
이상형 | 2013.05.28 18:50 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 한글파싱을 찾다가 여기까지왔습니다.
너무너무 반가운 프로그램이내요
졸업프로젝트때문에 코드분석해서 빅데이터코드에 적용하고싶은데 소스코드알려주실수있나요?
부탁드립니다.
4513zxc@daum.net
shine_ing | 2013.05.28 19:39 신고 | PERMALINK | EDIT/DEL
안녕하세요~소스코드 공개는 현재로써는 조금 힘들것 같습니다^^;;빅데이터 처리를 위해 내부에 넣는다고 하셨는데 내부에 넣기에는 너무 크지 않나 싶네요^^;;
오산돌구 | 2013.05.29 13:37 신고 | PERMALINK | EDIT/DEL | REPLY
회사에서 사용하는거랑 비교 해 봐야겠어요 : )
이 멋진걸 혼자 만드셨다니....대단하십니다.
잘 만드셔서 원래 목적에 도달하셨으면 좋겠네요~
shine_ing | 2013.05.29 14:26 신고 | PERMALINK | EDIT/DEL
과찬이십니다..ㅠ
현재 기분석 사전이랑 기타 고유 명칭들이 전혀 포함되어 있지 않아서 상용화된 형태소 분석기보다는 아마 성능이 떨어질 것 같네요. 나중에 회사에서 비교해보신 후 그 결과를 저도 알 수 있을까요? ^^;; 염치 없지만 부탁드립니다 ㅠㅠ
오산돌구 | 2013.05.31 07:42 신고 | PERMALINK | EDIT/DEL | REPLY
뉴스랑 블로그글이랑 긁어서 속도랑 원하는 결과가 나오는지 확인하면 될까요?
형태소분석에 대해서 원리는 하나도 모릅니다.;;;
이번에 저도 형태소 분석기에 대해 공부해보려고 하는데 shine_ing님의 라이브러리를 잘 활용해야겠네요
형태소 분석기관련해서 공부하다 궁금한게 있으면 여쭤봐도 될까요?
shine_ing | 2013.05.30 23:05 신고 | PERMALINK | EDIT/DEL
말씀 해주신대로 확인해주시면 정말 감사하죠^^;;
사실 KOMORAN이 상용화 서비스에 이용이 가능할지에 대해서 판단을 하려면 실제 상용화된 형태소 분석기와의 비교가 필요한데 개인적으로는 조금 어렵네요^^;;
형태소 분석 관련되서 저도 잘은 모르지만..도움을 드릴 수 있다면 최대한 도와드리겠습니다^^;
songyi | 2013.06.14 14:45 신고 | PERMALINK | EDIT/DEL | REPLY
이런걸 개발하시다니 정말 대단하십니다. ㅠㅠ
이 형태소분석기를 학교프로젝트에서 진행중인 안드로이드 개발에 포함을 하려고하는데
MorphologyAnalyzer analyzer = new MorphologyAnalyzer("datas/");
여기 부분에서 계속 디버깅에러가 나네요. ㅠㅠ
안드로이드에서는 폴더설정을 다르게 해야하는건가요
shine_ing | 2013.06.14 15:20 신고 | PERMALINK | EDIT/DEL
감사합니다^^;;
글쎄요 안드로이드에서 진행해본적은 없지만 자바로만 짜여진 소스로 돌아갈 것 같네요..저 경로를 상대경로가 아닌 절대경로로 한번 줘보시겠어요? 해보시고 알려주세요^^;;
t-man | 2013.07.02 20:35 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요? 만들어 주신 프로그램, 잘 쓰고 있습니다.

두 가지 질문인데요.

1. 형용사들이 XR로 태깅됩니다. 깔끔, 간결, 강렬, 상큼 등등이요. VA가 맞지 않을까요?
한두개가 아니고 거의 대부분이 XR로 되는 것 같은 느낌입니다.

2. 사용자 사전은 정확히 어떻게 적용이 되는지요?
위의 문제 해결을 위해, 제가 직접 형용사들을 VA로 태깅해서 파일을 만들어 써 봤는데, 적용이 안되고 여전히 XR로 나오더라고요. 즉, 기존 사전에 있는 단어는 기존 사전 기준으로 태깅이 되는 것인가요?

감사합니다.
shine_ing | 2013.07.03 11:36 신고 | PERMALINK | EDIT/DEL
안녕하세요. 이용해주셔서 감사합니다. 먼저 가장 최근 버전을 사용하시길 권장해드립니다 ^^:;

질문에 대한 답변을 드리겠습니다.

1. 깔끔, 간결, 강렬, 상큼은 어근(XR) 개념으로 보시는게 맞을 것 같습니다.
달리다, 아릅답다 등과 같이 뒤에 활용형이 떨어질 수 없는 부분에 대해서만 VA가 맞는 것 같습니다.

2. 사용자 사전이 입력에 입력이 되면 사용자 사전먼저 우선순위를 갖게 됩니다. 그러나 문법적 확률로 인해 문법에 어긋나는 경우에는 사용자 사전이 적용되지 않습니다. VA로 태깅을 하신 후 해당 단어만 입력을 해보시면 적용이 되었는지 확인하실 수 있으십니다. "깔끔 \t VA"를 입력하신 후 깔끔을 넣어보셨을 때 VA로 태깅되는지 확인해보시면 될 것 같습니다^^
t-man | 2013.07.03 15:43 신고 | PERMALINK | EDIT/DEL | REPLY

답변 감사합니다!!!

그런데 깔끔하다, 간결하다 등은 품사가 형용사이고, 깔끔이나 간결은 형용사의 어근 아닌가요.
형태소 분석기 소프트웨어의 용도를 고려해 보면, 이들을 그냥 '어근'이라고 태깅해 주면 좀 곤란할 것 같아요. 어근은 또 품사가 아니기도 하고요. 아무튼, 어근이라는 태그는 그 자체로는 정보량이 적어서 큰 의미가 없으니까요.

그 다음에, 사용자 사전의 경우는 정확히는 모르겠지만 대충 말씀하신 작동을 이해하겠습니다. 그런데 사용자 사전을 사용해야 하는 경우를 세심히 고려해 보면, 문법과 무관하게 사용자의 의도대로 품사가 태깅되는 옵션이 있었으면 좋겠습니다. 특히 형태소 분석기 소프트웨어가 아무리 뛰어나도 역시 사람만큼 정확히 문장 분석을 하기 힘들다는 점을 고려해 보면 특정한 단어들에 대해서 문법 오류를 override하면서 사용자가 제시한 품사로 태깅되게 해 주면 좋을 것 같아요. 이를테면 '단어 /t VA F' 처럼 표기하면 override할 수 있게 하는 거죠.

아무튼, 소프트웨어 너무 감사드리고요, 제 제안 좀 고려해 주시길 부탁드립니다. :) 감사 감사.
shine_ing | 2013.07.03 16:55 신고 | PERMALINK | EDIT/DEL
안녕하세요. 좋은 의견감사합니다. 현재 버전에서는 당장 힘들 것 같고, 추후 버전에서 사용될 수 있도록 업데이트를 고려해보겠습니다. 소중한 의견 진심으로 감사드립니다^^
Name
Password
Homepage
Secret
2013.03.19 00:40

자바로 만든 한글 형태소 분석기를 공개합니다.


이름은 KOMORAN입니다.


현재 자체 테스트는 완료하였습니다.


기본적인 어절 단위 형태소 분석기를 따르고 있습니다. (sec 당 약 100kb 분석)


사용 중 발생하는 에러는 댓글로 부탁드립니다.


필요한 라이브러리 파일은 아래와 같습니다.

    • 형태소 분석 라이브러리 내 사용된 유틸성 라이브러리


    • 분석에 필요한 모델 파일들은 아래와 같습니다.



사용법은 아래와 같습니다.


public static void main(String[] args) {

MorphologyAnalyzer analyzer = new MorphologyAnalyzer("형태소 분석용 파일들이 저장된 루트 폴더");

List<List<Pair<String,String>>>reslut =  analyzer.analyze("감기는 자주 걸리는 병이다.");

for (List<Pair<String, String>> wordResult : reslut) {

for (Pair<String, String> pair : wordResult) {

System.out.println(pair);

}

System.out.println();

}

}


사용법과 관련하여 문의 사항이 있어서 스크린샷을 첨부하였습니다.

datas 밑에 필요한 파일들을 위치시켜 놓습니다.



형태소 분석기 객체 생성시에 위에 위치한 폴더 경로인 "datas/"를 지정해줍니다.




출력 결과는 아래와 같습니다.


Pair [first=감기, second=VV]

Pair [first=는, second=ETM]


Pair [first=자주, second=MAG]


Pair [first=걸리, second=VV]

Pair [first=는, second=ETM]


Pair [first=병, second=NNG]

Pair [first=이, second=VCP]

Pair [first=다, second=EF]

Pair [first=., second=SF]


본 형태소 분석기는 상업적 용도의 사용을 금지합니다. (안정성 검증 필요, 별도 연락)


개인 및 비상업적 용도로만 사용을 하실 수 있습니다.


※ 현재 자연어처리와 관련된 라이브러리 및 엔진들을 계속적으로 연구하고 만들고자 합니다. 함께 하시길 원하시는 분은 연락부탁드립니다.


==========[2013.03.20. 14:50분 추가]==========

- 현재 성능 테스트, 오류 및 버그 분석을 위해서 기분석 사전(FWD)을 사용하지 않고 있습니다.


==========[2013.03.22. 14:50분 추가]==========

- 현재 내용은 4월 1일부터 새로운 버전으로 릴리즈 예정입니다. 이용에 참고 하시기 바랍니다.


==========[2013.04.01. 23:50분 추가]==========

- 기분석 사전이 포함된 새로운 버전으로 릴리즈 되었습니다. 링크 참고 하시기 바랍니다. ( KOMORAN 0.6 )

- 현재 버전은 기존에 사용중이신 분들을 위해 그대로 유지하겠습니다.


==========[2013.05.20. 11:51분 추가]==========

- 1.0 버전이 릴리즈 되었습니디다. 링크 참고 하시기 바랍니다. ( KOMORAN 1.0 )


저작자 표시 비영리 변경 금지
신고
안녕하세요 | 2013.03.20 13:53 신고 | PERMALINK | EDIT/DEL | REPLY
저는 프로그램같은 건 전혀 모르지만 예시문장부터 오류길래 남겨요. 감기는은 감기/NNG+는/JX 일텐데 프로그램은 동사 감기다로 분석했네요 ^^;
shine_ing | 2013.03.20 14:48 신고 | PERMALINK | EDIT/DEL
안녕하세요^^ 사실 감기가 NNG가 맞지만 현재 어절 내 확률기반으로 계산을 하고 있기 때문에 VV로 나오고 있습니다~ 물론 어절 간의 정보를 이용하면 감기/NNG로 나올 수는 있습니다만, 전체적인 성능은 오히려 떨어지는 단점이 있습니다~ 지적 감사드립니다~

결론 : 데이터 추가 또는 어절 정보 사용으로 수정 가능.
조치 : 조만간 업데이트 예정.
유총재 | 2013.04.01 14:22 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.

분석기 잘 사용하고 있습니다.

Clien에서 졸업작품에 사용한다고 글을 남겼는데..

데이터가 좀 많은 것을 for문으로 돌리면서 넣어봤더니...

Heap space 오류를 뱉어내는군요 ㅠ

다른 부분에서의 Memory Leak은 다 확인 해 보았으나, 형태소 분석기를 추가하면 Memory 오류가 발생합니다.

혹, 분석기 내에서 제가 인풋으로 집어넣은 String이나..String을 통해 분석된 형태소가 계속 저장되어 있는 건 아닌지 싶어 글 남깁니다.

항상 감사하고 있습니다!
shine_ing | 2013.04.02 00:42 신고 | PERMALINK | EDIT/DEL
안녕하세요.
내부적으로 init을 해주어서 메모리 부족문제는 최대한 안나도록 해놓았습니다만, 한번 더 확인해보겠습니다. 혹시 그 데이터를 제가 테스트 해볼 수 있을까요?
========= 이하 추가 내용 =========
현재 1G정도의 문서를 분석해봤는데 memory 오류가 나질 않네요..실험하신 데이터를 제가 직접 돌려봐야할 것 같네요. 데이터 좀 부탁드리겠습니다 ^^
유총재 | 2013.04.02 10:50 신고 | PERMALINK | EDIT/DEL | REPLY
직접 테스트 해 보셨다니 감사합니다.ㅠㅠ

실험 데이터 보기 쉽게 정리해서 올리겠습니다!

소스코드를 코멘트로 올리는 게 편할까요..메일로 따로 보내드릴까요??
shine_ing | 2013.04.02 11:13 신고 | PERMALINK | EDIT/DEL
용량이 크지 않으면 메일로 보내주셨으면 합니다 ^^
shin285 AT naver.com 으로 부탁드리겠습니다~
shine_ing | 2013.04.05 09:18 신고 | PERMALINK | EDIT/DEL | REPLY
"유총재"님이 알려 주신 Heap space 오류는 형태소 분석기 문제가 아닌 것으로 확인 됐습니다.
casionwoo | 2013.05.07 12:29 신고 | PERMALINK | EDIT/DEL | REPLY
질문이 있는데요 혹시 Pair에서 second가 그 형태소의 의미인거같은데 설명을 찾을수가 없어요 혹시 각각이 무슨 뜻인지 알수 있을까요?
shine_ing | 2013.05.08 00:53 신고 | PERMALINK | EDIT/DEL
안녕하세요. KOMORAN 업데이트와 문서 정리를 동시에 하다보니 정신이 없어서 기본적인 설명도 빠트렸네요..ㅠㅠ 기본적으로 형태소 정보는 세종 품사 셋을 따르고 있습니다. http://nlp.kangwon.ac.kr/~nlpdemo/KACTEIL-KMA/right.html 를 참조하시면 될 것 같습니다^^ 감사합니다~
casionwoo | 2013.05.08 11:34 신고 | PERMALINK | EDIT/DEL | REPLY
제가 사용해서 분석을 해 보려하는데 사용은 잘됩니다만 "싸이콘서트"
라는 말을 싸, 이콘서트, 콘서트 이렇게 인식하더라고요

혹시 싸이라는 말을 인식을 못하는거 같은데 사전을 제가 따로 고치는 방법이 있을까요?

원하는 단어를 사전에 등록 시키는 방법이 있는지를 알고 싶습니다.
shine_ing | 2013.05.08 14:46 신고 | PERMALINK | EDIT/DEL
문의주신 내용은 현재 업데이트 되고있는 버전에 반영하였습니다. 금주내로 업데이트 예정이오니 조금만 기다려주세요^^
casionwoo | 2013.05.08 20:07 신고 | PERMALINK | EDIT/DEL | REPLY
혹시 제가 사전을 수정하여서 사용할 수 잇는 방법에는 없을까요?
이상한 에러가 생길때마다 바로바로 수정하여서 사용하고싶어서요.ㅠ
참고로 사용하는 것은 졸업프로젝트에 사용하고 있습니다.
shine_ing | 2013.05.09 02:55 신고 | PERMALINK | EDIT/DEL
사전을 추가 할 수는 있지만 사전을 직접 수정하는 방법은 상당히 위험합니다. 형태소 분석기를 어떤 요소에 사용하고 계신지는 모르겠지만, 사전을 바로바로 수정 하시길 원하신다면 형태소 분석기보다는 정규표현식을 이용한 일반 사전 매칭 방법을 사용하시는 방법이 더 적합할 것 같습니다.
Name
Password
Homepage
Secret
2012.10.31 03:28

국내에는 공개적으로 사용가능한 형태소 분석기가 몇개 없습니다.


자연어처리를 전공한 사람으로써 매우 안타깝다고 생각하고 있었습니다.


비록 성능은 좋지 못하지만 기본에 충실한 어절 단위 형태소 분석기를 오픈 소스로 공개하려합니다.


유능한 개발자 분들이 만들어두신 형태소 분석기도 있지만


사전이 잘못 됐는지는 모르겠으나 대부분 명사로 추출되는 경향이 강했습니다.


물론 루씬과 같은 검색기에서 주로 사용되는 품사는 명사류입니다만,


엄연히 말하자면 형태소 분석기와 색인기(명사 추출기)는 다르다고 말씀드리고 싶습니다.


비록 개발능력은 떨어지지만 고전 방식의 형태소 분석기를 제공하도록 하겠습니다.


다양한 분야에서 널리 사용되었으면 하는 작은 바람입니다.

저작자 표시 비영리 변경 금지
신고

'Opensource > Shineware' 카테고리의 다른 글

자바 HMM 라이브러리 소스 공개  (1) 2014.11.13
[FileUtil] 자바 파일 읽기  (2) 2012.11.06
자바 HMM 라이브러리  (21) 2012.10.31
형태소 분석기 오픈소스  (2) 2012.10.31
남호성 | 2015.05.24 16:29 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 대학에서 컴퓨터 공부중인 학생입니다.
한글 리뷰 분석 프로그램을 만들기 위해 필요한 api를 알아보던중 이글을 보게 되었습니다. 혹시 소스를 얻을수 있을까 해서 글남깁니다
shine_ing | 2015.05.24 17:46 신고 | PERMALINK | EDIT/DEL
이미 공개되어있습니다^^
Name
Password
Homepage
Secret
prev"" #1 next