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 티스토리 가입하기!
'Hmm'에 해당되는 글 4건
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.13 01:44

약 2년전 HMM 라이브러리를 공개한 적이 있습니다.


2년이 지난 지금도 많은 분들이 관련 내용에 대해서 문의를 주십니다.


또한 소스 요청도 종종 받고 있습니다. 이름, 소속 및 사용 용도를 메일로 보내주신 분에 한하여 소스를 드렸습니다. 


2년이라는 시간이 흘렀지만 보잘것 없는 라이브러리를 지금도 찾아주셔서 감사하기도 하고 한편으로는 저 자신에게 부끄럽기도 합니다. 


용기를 내어서 소스를 공개하고자 합니다.


사용법은 소스 내에 있는 toy example을 참고하시면 될 것 같습니다.



hmm_shineware_2.0.zip


또한 아래 페이지에서도 다운로드 가능합니다.


git : https://github.com/shin285/HMM


나름대로 안정화를 많이 시켰지만 부족한 부분이 많이 있습니다.


이와 관련하여 피드백을 주시면 반영하도록 하겠습니다. 감사합니다.

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

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

자바 HMM 라이브러리 소스 공개  (1) 2014.11.13
[FileUtil] 자바 파일 읽기  (2) 2012.11.06
자바 HMM 라이브러리  (21) 2012.10.31
형태소 분석기 오픈소스  (2) 2012.10.31
대학원생 | 2016.01.06 18:06 신고 | PERMALINK | EDIT/DEL | REPLY
공개 정말 감사드립니다. 비슷한 모델을 공부중으로 HMM 구현에 레퍼런스로 삼을만한 소스코드를 찾고 있었습니다. 정말 감사합니다
Name
Password
Homepage
Secret
2012.10.31 16:50

직접 구현한 HMM 라이브러리를 오픈소스로 공개하려 합니다.


사용방법은 첨부된 pdf 파일을 참조해주시기 바랍니다.


개발실력이 거의 없다고 보시면됩니다.


그러나 연구 및 개발을 하는데 있어서 HMM을 잘 모르는데 만들어야하는 고충에 빠지신 분들과 


아직 학교에서 연구에 매진중인 미래의 연구자 분들께서 사용하셨으면 좋겠습니다.


문의사항은 이메일이나 댓글로 남겨주시면 확인하는대로 답변드리겠습니다.



peopleware-common 라이브러리는 hmm 구동에 필요한 내부 라이브러리로 사용되고 있습니다.


반드시 함께 import하여 사용해주시기 바랍니다.



.jar 파일


peopleware-common-0.1.9.jar


peopleware-hmm-0.0.3.jar


설명서



HMM Library.pdf



https://github.com/shin285/HMM 에 가시면 다운로드 하실 수 있습니다.


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

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

자바 HMM 라이브러리 소스 공개  (1) 2014.11.13
[FileUtil] 자바 파일 읽기  (2) 2012.11.06
자바 HMM 라이브러리  (21) 2012.10.31
형태소 분석기 오픈소스  (2) 2012.10.31
고요한고흐 | 2013.05.28 11:22 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요
학교에 재학중인 대학생입니다
HMM알고리즘을 공부하다가 이런 좋은 라이브러리를 발견하게 되어
소스코드를 받아볼 수 있을까 해서 이렇게 글을 씁니다 ㅎㅎ
시간이 되시면 anstnzja@nvaer.com 로 보내주시면 감사합니다 ㅎㅎ
shine_ing | 2013.05.28 11:27 신고 | PERMALINK | EDIT/DEL
안녕하세요. 반갑습니다^^
금일 밤에 보내드리도록 하겠습니다~
MinjuneLee | 2013.06.04 20:41 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.
대학교에서 컴퓨터 공학을 전공 중인 학생입니다.
개인적으로 HMM 알고리즘의 구현에 대해서 알고 싶어서
소스를 받고 싶은데,,,,
윗 분 처럼 메일로 좀 보내주시면 안될까요?
tlsdmq12@gmail.com
입니다. 부탁드려요 ㅎㅎ
shine_ing | 2013.06.04 22:58 신고 | PERMALINK | EDIT/DEL
안녕하세요. 반갑습니다^^
개인적인 사정으로 금주는 조금 어려울 것 같습니다. 다음주에 바로 쏴드리겠습니다^^;
| 2013.07.08 00:52 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
soy | 2013.07.30 15:55 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 대학교에서 컴퓨터전공 공부를 하고 있는 학생입니다.
좋은 라이브러리를 공개해주셔서 감사합니다^^
알고리즘 구현에 대해 좀더 자세히 알고싶어서 그러는데 혹시 소스를 받을 수 있을까요?
jiyun0681@naver.com 입니다. 부탁드립니다^^

Akira | 2013.09.05 11:53 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요..
HMM 관련하여 연구를 진행하고 있으면서, 많은 도움을 받고 있어 감사드립니다.
논문을 진행하는데 있어 필요한 HMM에 대해서 자바 코드를 도움받고자 글을 남기게되었습니다.
akira107@naver.com 으로 보내주시면 감사하겠습니다.
쾌차를 바랍니다.
| 2013.10.01 17:28 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
si | 2013.10.18 23:43 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 HMM관련 연구를 진행중인 학생입니다.
라이브러리를 오픈소스로 공개해 주셔서 많은 도움이될 것 같습니다.
알고리즘 구현한 부분도 가능하다면 참고하고 싶습니다.
tony07ysi@nate.com으로 보내주시면 감사하겠습니다.
shine_ing | 2013.10.25 00:57 신고 | PERMALINK | EDIT/DEL
안녕하세요. 먼저 이렇게 찾아와주셔서 감사를 드립니다. 위의 내용에도 기술한것처럼 이름과 소속을 말씀해주시면 확인후에 소스를 보내드리겠습니다. 모 기업의 사원이 학생인척 현재 소스를 그대로 업무에 사용하여 서로 곤란했던 적이 있었기 때문에 이러한 간단한 인증(?)이 필요하게 되었습니다. 양해부탁드립니다.
| 2013.10.25 18:51 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
| 2014.01.02 16:25 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
| 2014.01.09 16:17 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
chrnow37 | 2014.04.07 23:46 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요, 건설분야에서 동작인식을 사용하여 생산성 분석에 사용하고자 HMM을 공부하고 연구중인 경북대학교 건설환경에너지공학부(건축공학과) 대학원생 이홍철이라고 합니다.
혹시 소스코드를 구할 수 있을까 싶어 이렇게 블로그에 글을 남겨봅니다. chrnow37@gmail.com 입니다.
사용은 연구목적으로만 사용하도록 하겠습니다. 물론 지금 제공하신 라이브러리만으로도 감사합니다.
랏드 | 2014.04.25 17:18 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요, 현직 프로그래머인데 최근 HMM에 관심있어서 개인적으로 연구를 진행중에 있습니다.
이론적으로는 이해가 되는데, 실제 구현이 궁금합니다. 혹시 자바 코드를 받을 수 있을까요?
148eur@gmail.com 으로 보내주시면 고맙겠습니다.
| 2014.11.07 16:49 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
| 2014.11.10 14:14 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
| 2016.01.26 22:07 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
| 2016.03.15 17:34 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
toson90 | 2016.05.31 13:35 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하십니까. 단국대학교에서 공부중인 학생입니다. 생체신호 패턴인식과 관련되어 공부중입니다. 라이브러리 및 문서를 보고 혹시 소스가 오픈소스인지, 오픈소스라면 혹시 소스코드를 구할수 있는지 문의드리고 싶습니다.
가능하다면 tooson9010@naver.com으로 받을수 있는지 궁금합니다. 감사합니다.
shine_ing | 2016.05.31 13:37 신고 | PERMALINK | EDIT/DEL
안녕하세요. 본문에 작성되어 있는 링크 https://github.com/shin285/HMM에 가시면 소스 코드를 다운로드 받으실 수 있습니다. 감사합니다.
Name
Password
Homepage
Secret
2012.10.31 12:01

컴퓨터 전공을 공부하다보면 HMM이라는 말을 자주 접하게 된다.


특히 자연어처리, 패턴인식과 같은 분야에서는 HMM에 대해서 수백번은 들어보게 된다.


HMM은 위키피디아에 보면 정리가 잘 되어있다. (위키피디아 - HMM)


물론 한글로 정리를 잘 해놓으신 분도 계신다. (난다로 님의 블로그)


HMM을 언제 써야하는지 왜 써야하는지는 위에 링크들을 참조하면 큰 도움을 얻을 수 있을 것이다.


필자는 블로그에서 상세히 설명 하고자 하는 것은 아니기 때문에(물론 할 능력도 안되지만..)


단순한 예를 들어서 HMM에 대한 핵심만 정리하도록 하자.


이전 사건에서 현재 사건이 올 수 있는 확률과, 현재 사건 자체가 일어날 확률을 연속적으로 계산하면 된다.


실질적인 예를 들어보자.


공대 사람이 오늘 하루를 돌아다니다가 여자친구를 사귈 수 있는 최적의 장소를 물색해보자


여자친구를 사귀는 중요한 요인이 공대 사람의 행동이라고 가정하자.


공대 사람이 할 수 있는 행동은 "먹기, 놀기, 공부하기, 수면"만 있다고 하자.


과거의 여자친구를 사귄 공대 사람들의 행동과 그 행동을 취한 장소를 살펴보니 다음과 같았다. 


여자친구 있는 공대생 1


도서관    공부

도서관    수면

강의실    놀기

기숙사    먹기

화장실    놀기

기숙사    수면


여자친구 있는 공대생 2


기숙사    수면

강의실    공부

도서관    공부

강의실    수면

화장실    놀기

도서관    놀기

기숙사    수면


오늘도 슬픈 싱글 공대생은 지친 몸을 이끌고 자고->먹고->공부 하려고한다.


이 때 연속된 이 행동을 각각 어떤 장소에서 취해야지 여자친구가 생길 수 있을까?!


HMM으로 학습을 한 후 결과를 보니 도서관->기숙사->강의실 이였다.


어떻게 이러한 결과가 나왔는지 계산해보자.


먼저 주어진 데이터( 여자친구 있는 공대생들의 행동 및 거취 )를 토대로


슬픈 싱글 공대생이 행동할 수 있는 최적의 장소를 구해내야한다.


구하기 위해서는 아래 그림 중에서 가장 높은 값을 갖는 경로 하나를 선택하면 된다.


즉, 아래 그림을 다 계산하면된다. (사실은 다 계산하지 않아도 된다. 자세한 내용은 계속 읽다보면.. )






그러면 끝난다........음 쉽다.........머리는 좀 터질것 같지만 분명히 쉬운게야..


이제 한 스텝씩 해보자.


기본적인 규칙은 이전 장소에서 현재 장소로 올 확률과 현재 장소에서 행동이 일어날 확률을 곱하는 것이다.


먼저 "자고" 파트부터 살펴보자.


시작에서 각각 도서관, 강의실, 기숙사, 화장실로 갈 확률을 구한다. (붉은글씨)


그리고 도서관, 강의실, 기숙사, 화장실에서 각각 잘 확률을 구한다. (파란글씨)


그리고 두 가지 확률을 곱한다. (녹색글씨)






누적확률에 이어서 다음 행동인 먹고를 계산한다.


먹고에서 먼저 도서관부터 계산해보자.


도서관을 계산할 때 아까 자고에서 계산한 누적 확률과 각각의 이전 장소에서 현재 장소인 도서관으로 올 확률을 곱하여 그 중 최대값만 선택한다.


말로하면 어려우니 그림을 보면 쉽게 이해가 된다.






위 그림에서는 이전 누적확률인 1/8과 도서관에서 도서관으로 갈 확률인 1/4를 곱한 값 1/32가 가장 큰 값이다.


구해진 가장 큰 값 1/32와 도서관에서 먹을 확률인 0/4를 곱하면 먹고에서 도서관에 대한 계산은 끝난다.


이런식으로 하여 가장 최대값을 갖는 그래프만 남겨둔 결과는 아래 그림과 같이 된다.


0인 결과는 더 이상 계산하지 않겠다. ( 그림 그리기의 압박.... )






위 그림에서 가장 우측에 계산된 값이 새로운 누적 확률이 된다. 


그럼 이 누적 확률을 갖고 다시 마지막 행동인 공부하기를 계산해보자.


아놔..계산해보니 전부다 0이다. 망했다. 뭘해도 여친은 안생긴다....


사실 확률값을 누적해서 곱하는 알고리즘의 경우에는 대부분 확률값을 0으로 주지 않는다.


그렇기 때문에 여기서는 일단 0을 1/100으로 주고 다시 계산해보자. ( 실제로는 MLE와 같은 방법을 이용하여 0을 대체한다. 이와 관련된 방법은 상당히 매우 무궁무진하기 때문에 생략.... )


최종 결과를 보면 아래 그림과 같다. 





최종적으로 갖게되는 최대값은 0.000855078125 이다.


이 최대값으로부터 지금까지 밟아왔던 곳을 거꾸로 되돌아 가면 가장 최적의 경로가 구해지는 것이다.


지금 계산한 방법이 비터비 알고리즘이다.


초반에 얘기 했듯이 모든 경우의 수를 다 계산하지 않았다. 


이 정도만 대략적으로 살펴본다면 도서관에서 자고 기숙사에서 먹고 강의실에서 공부를 하면 여자친구가 그나마...아주 그나마..생길수도 있다는 기대를 해볼 수 있다.


위의 예를 들어 HMM을 이해하는데 큰 무리는 없을 것이다.


사실 HMM은 형태소 분석기의 품사태거에서 주로 쓰인다. 이전 품사가 현재 품사에 영향을 주기 때문에 HMM이 지향하는 바와 매우 흡사하다.


===================================================================================================


위의 예에서는 확률값 0도 대충 0.01로 주었고,상황 자체도 맞지 않습니다. 단순한 이해를 위한 목적으로 예를 들었으니 너그럽게 이해해주셨으면 합니다.



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

'Computer Science > Machine Learning' 카테고리의 다른 글

HMM (Hidden Markov Model)  (13) 2012.10.31
좋은글 | 2013.04.12 19:22 신고 | PERMALINK | EDIT/DEL | REPLY
영문 hmm설명서보다가 여기와서 읽어보니 단번에 이해되네요ㅎㅎ
shine_ing | 2013.04.13 23:01 신고 | PERMALINK | EDIT/DEL
도움이 되셨다니 다행이네요^^
해리s | 2013.05.28 00:59 신고 | PERMALINK | EDIT/DEL | REPLY
HMM을 혹시 구현하셨나요? ㅎㅎ
포스팅을 보니까 주로 자바를 이용해서 개발을 하시는데 혹시 매트랩도 사용하세요?
shine_ing | 2013.05.28 09:44 신고 | PERMALINK | EDIT/DEL
네 HMM은 자바로 구현되어있습니다^^;
매트랩은 사용해본적이 없어서요 ㅠㅠ
Hoo | 2013.07.10 17:43 신고 | PERMALINK | EDIT/DEL | REPLY
위에 그림에서 보면 시작 -> 도서관,강의실,기숙사,화장실 이렇게 가는 확률이 각각 1/2, 0, 1/2, 0인데 이것을 어떻게 구하죠???
나도공돌 | 2013.11.06 16:33 신고 | PERMALINK | EDIT/DEL | REPLY
웃긴 예시로 잘이해하거갑니다 여친 생기실거에요
공대녀 | 2014.04.09 15:31 신고 | PERMALINK | EDIT/DEL | REPLY
The best ever 이해가 쉬운 글이었습니다 감사합니다~
그런데 HMM학습법에 관해서도 포스팅해주시면 더 좋을것같네요 :)
김영욱 | 2014.09.25 14:15 신고 | PERMALINK | EDIT/DEL | REPLY
정말 많은 도움이 되었습니다. 감사합니다^^
강지훈 | 2014.10.09 10:21 신고 | PERMALINK | EDIT/DEL | REPLY
히든이 없으므로 hmm이 아닌 mm이라능..
shine_ing | 2014.10.09 10:47 신고 | PERMALINK | EDIT/DEL
도서관 강의실 등의 장소가 히든이라는..
이다운 | 2015.06.24 17:52 신고 | PERMALINK | EDIT/DEL | REPLY
감사합니다.
공돌이 | 2015.10.12 16:49 신고 | PERMALINK | EDIT/DEL | REPLY
포스트 내용 잘 봤습니다. 다름이 아니라 시작에서 도서관,강의실,기숙사,화장실 갈 확률이 어떻게 1/2, 0, 1/2, 0 이 되는데 어떻게 해서 저 값이 나오는지 궁금해서 댓글 남깁니다... 감사합니다!
잡상인 | 2016.05.26 22:03 신고 | PERMALINK | EDIT/DEL | REPLY
재미있게 설명하셨네요^^
잘읽었습니다. 감사합니다.
Name
Password
Homepage
Secret
prev"" #1 next