검색 엔진 쪽에서 일 하고 있는 만해입니다. ^^ ㅋ
Markov Model에 대한 설명을 드리고 싶어서 답변 달기를 눌렀는데..
누르는 순간 깨달은 사실..
앗 나도 모르지.. 쩝.
다만 업무가 약간 관련이 있는 관계도 대략 뭐라는것만 알고 있어서 이거라도 알려 드릴려고 합니다 ^^
제가 맡은 업무는 한글 형태소 분석기란 부분이고요
이 묘듈에서는 HMM(Hidden Markov Model)이란 알고리즘을 이용합니다.
쉽게 얘기 하면
"알뜰하다 " 이 단어를 해석 할때
알뜰 + -하- + - 다. (명사 + 접미사 + 어말어미)
알뜰하- + -다. (형용사 + 어말어미)
라는 두가지 경우의 수가 나옵니다.
이 단어는 간단한 수준이고요
나는 하늘을 나는 비행기를 보았다.
->
나는 : 나 + 는
하늘을 :하늘+을
나는 : 날다 + 는
비행기를 : 비행기 + 를
봤다 : 보다 + 았 + 다
저 문장으로 봤을때 "나는" 이라는 단어가 두번 나올때 한번은
주격명사 "나" + 조사 "는"
날다"동사" + 조사 "는"
이거 두개를 컴퓨터는 구분을 못합니다.
저것을 구분하기 위해서 이전 상태와의 연관성을 파악해서 다음 상태를 결정 하는 방법론 중 하나입니다.
요즘 대부분의 형태소 분석기는 HMM이고.
최신 기술로는 CRF(Conditional Random Field)라는 기법이 쓰이고 있으며,
Chunking Using Conditional Random Fields in Korean Texts. 라는 포항 공대에서 나온 논문이 있습니다.
저 논문을 보면 뭔가 힌트가 좀 있나 싶어서 봤더니 별거 없더군요.. 제길..
개념적인 부분은 "Conditional Random Fields : An Introduction"이라는 제목의 논문을 참고 하시기 바랍니다.
30일날 PPT 발표가 잡혀 있어서 회사에서 PPT 작성중에 한번 들러 봤습니다. ^^
내일도 오프 참가가 힘들것 같네요.. T_T
크레브 님이 쓰신 글 :
: 한글로 되 있는 설명이 이해가 안갈때
: 보통 두가지를 생각합니다.
:
: 1. 설명이 잘못됐거나
: 2. 내 머리가 나쁘거나.. 흑~
:
: "프로그래밍 수련법"이란 책을 보다가 보면
: 마르코프 체인 알고리즘이라고 설명이 나오던데 뭔소리 하는건지 왜 이렇게 이해가 안갈까요?
: 알고리즘에 자신있는 분이 알기쉽게 설명 좀 해주시죠~
:
: 도대체 이 알고리즘은 무엇을 하기 위한 걸까~ 쩝
:
:
:
:
: The Markov Chain Algorithm (마르코프 체인 알고리즘)
:
: 이 알고리즘은 입력되는 데이터를 중복되는 문구의 연속이라 가정하고, 각 문구를 두 부분으로 나누는데 한 부분은 둘 이상의 전위단어(prefix)이고 또 한 부분은 이들 뒤에 따라오는 하나의 후위단어(suffix)이다. 마르코프 체인 알고리즘은 이미 존재하는 텍스트를 처리하여 저장하고, 이 정보에 따라 전위단어 뒤에 오는 후위단어를임의로 선택하여 새로운 텍스트를 생성한다.
:
: 설명을 위해 다음을 보자.
:
: Show your flowcharts and conceal your tables and I will be mystified. Show your tables and your flowcharts will be obvious.(end)
:
: 전위 단어를 두 개로 제한하면 그들 뒤를 따라오는 후위단어들로 이루어진 쌍으로 만들 수 있다.
:
: Input prefix : Suffix words that follow:
: Show your flowcharts tables
: your flowcharts and will
: flowcharts and conceal
: flowcharts will be
: your tables and and
: will be mystified. obvious.
: be mystified. Show
: be obvious. (end)
:
: 위의 테이블을 보면서 마르코프 체인 알고리즘을 살펴보면, 우선 "Show your"을 출력하며 시작한다. 그리고 나서 이들의 후위단어인 "flowcharts"나 "tables"를 선택할 것이다. 전자를 선택하면 전위단어는 "your flowcharts"가 되고 다음 후위단어를 찾는다. 이런 식으로 충분한 문장이 생성되거나 끝 표시가 들어올 때까지 반복한다. 전위단어의 수를 많게 하면 많게 할수록 생성되는 문장은 원문에 가까워진다. 또한 너무 적게 하면 뜻을 지닌 글을 만들기 어렵게 된다.
:
:
: ---------------------> 요기까지는 인터넷에서 찾음 , 책내용과 비슷함
:
: -----------> 여기서부터는 책에서 발췌:
: 원본 글의 첫 두단어를 w1과 w2로 잡는다.
: w1 과 w2를 출력한다.
: 반복문 :
: 글에서 접두사 w1, w2 를 따라 나오는 단어들 가운데에서 임의로 w3을 선택한다.
: w3을 출력한다.
: w1과 w2를 w2와w3으로 바꾼다.
: 반복한다.
:
: