$Id: soft.html 65 2007-01-30 00:52:53Z taku-ku $;
MeCab 0.90 보다 소프트원승리 쓰기의 기능이 붙었습니다. 소프트원승리 쓰기는 입력문에 대해서 가능한 모든 형태소열을 주변 확률 첨부로 출력하는 기능입니다. 풀텍스트 검색의 인데키싱에 사용하는 것으로, 복합어의 단어 분할의 애매성등을 해결할 수 있습니다.
소프트원승리 쓰기의 상세한 것에 대하여는 논문 (을)를 참조해 주세요.
MeCab (은)는 디폴트로 최적해만을 출력합니다. -a 옵션을 지정하면 최적해는 아니고, 라티스중의 전형태소를 출력합니다.
% mecab -a 도쿄도청 도쿄 명사, 고유 명사, 지역, 일반,*,*, 도쿄, 트우쿄우, 토쿄 동 명사, 고유 명사, 일반,*,*,*, 동, 히가시, 히가시 동 명사, 고유 명사, 지역, 일반,*,*, 동, 히가시, 히가시 동 명사, 고유 명사, 인명, 명,*,*, 동, 히가시, 히가시 동 명사, 고유 명사, 인명, 성,*,*, 동, 아즈마, 아즈마 동 명사, 일반,*,*,*,*, 동, 히가시, 히가시 쿄토 명사, 고유 명사, 일반,*,*,*, 쿄토, 쿄우트, 쿄트 쿄토 명사, 고유 명사, 지역, 일반,*,*, 쿄토, 쿄우트, 쿄트 경 명사, 고유 명사, 지역, 일반,*,*, 경, 쿄우, 쿄 경 명사, 고유 명사, 인명, 명,*,*, 경, 미야코, 미야코 경 명사, 고유 명사, 인명, 성,*,*, 경, 쿄우, 쿄 도청 명사, 일반,*,*,*,*, 도청, 트쵸우, 트쵸 도 명사, 접미, 지역,*,*,*, 도, 트, 트 도 명사, 고유 명사, 지역, 일반,*,*, 도, 미야코, 미야코 도 명사, 고유 명사, 인명, 성,*,*, 도, 미야코, 미야코 도 명사, 고유 명사, 인명, 명,*,*, 도, 미야코, 미야코 도 명사, 일반,*,*,*,*, 도, 트, 트 청 명사, 접미, 일반,*,*,*, 청, 나비, 조- 청 명사, 고유 명사, 지역, 일반,*,*, 청, 나비, 조- 청 명사, 일반,*,*,*,*, 청, 나비, 조- EOS
각 형태소의 주변 확률( 그 형태소가 입력문 중(안)에서 어느 정도의 확률로 출현한다 의 것인지) 의 계산을 실시하려면, -a (와)과 -l 2 옵션을 동시에 사용합니다. -l 옵션은 어느 정도의 라티스 정보를 해석시에 구축하는지를 지정하는 옵션입니다. -l2 (와)과 지정하는 것으로 forwardbackward 알고리즘을 사용해 주변 확률의 계산을 실시합니다.-l 옵션은 이하의 레벨이 있습니다.
-l2 옵션을 사용하면 부동 소수점 연산이 들어가기 위해 -l 0 에 비해 8 배정도 늦어집니다.
각 형태소의 주변 확률을 출력하려면, -F 옵션을 사용해 출력 포맷을 개별적으로 출력 필요가 있습니다. 통상 %pP %pb (을)를 사용합니다. 출력 포맷의 지정 방법은 이쪽 (을)를 람하 재산.
% mecab -l2 -a -F"%m %H %pP %pbn" -E"EOSn" 쿄토 대학 쿄토 대학 명사, 고유 명사, 조직,*,*,*, 쿄토 대학, 쿄우트다이가크, 쿄트다이가크 0.559944 * 쿄토대 명사, 고유 명사, 조직,*,*,*, 쿄토대, 쿄우트다이, 쿄트다이 0.073824 쿄토 명사, 고유 명사, 일반,*,*,*, 쿄토, 쿄우트, 쿄트 0.004990 쿄토 명사, 고유 명사, 지역, 일반,*,*, 쿄토, 쿄우트, 쿄트 0.360982 경 명사, 고유 명사, 지역, 일반,*,*, 경, 쿄우, 쿄 0.000161 경 명사, 고유 명사, 인명, 명,*,*, 경, 미야코, 미야코 0.000003 경 명사, 고유 명사, 인명, 성,*,*, 경, 쿄우, 쿄 0.000096 도 명사, 접미, 지역,*,*,*, 도, 트, 트 0.000166 도 명사, 고유 명사, 지역, 일반,*,*, 도, 미야코, 미야코 0.000001 도 명사, 고유 명사, 인명, 성,*,*, 도, 미야코, 미야코 0.000006 도 명사, 고유 명사, 인명, 명,*,*, 도, 미야코, 미야코 0.000072 도 명사, 일반,*,*,*,*, 도, 트, 트 0.000015 대학 명사, 고유 명사, 지역, 일반,*,*, 대학, 다이가크, 다이가크 0.004919 대학 명사, 고유 명사, 인명, 명,*,*, 대학, 다이가크, 다이가크 0.004441 대학 명사, 일반,*,*,*,*, 대학, 다이가크, 다이가크 0.350523 대 명사, 접미, 일반,*,*,*, 대, 다이, 다이 0.003603 대 접두사, 명사 접속,*,*,*,*, 대, 다이, 다이 0.001123 대 접두사, 동사 접속,*,*,*,*, 대, 오오, 오 0.000011 대 명사, 고유 명사, 지역, 일반,*,*, 대, 오오, 오 0.000171 대 명사, 고유 명사, 인명, 명,*,*, 대, 마살, 마살 0.000016 대 명사, 일반,*,*,*,*, 대, 다이, 다이 0.001424 학 명사, 접미, 일반,*,*,*, 학, 가크, 가크 0.067828 학 명사, 고유 명사, 지역, 일반,*,*, 학, 가크, 가크 0.001092 학 명사, 고유 명사, 인명, 명,*,*, 학, 마나브, 마나브 0.004203 학 명사, 일반,*,*,*,*, 학, 가크, 가크 0.007051 EOS
-t 수치 옵션을 사용해 확률치의 「매끈함」을 변경할 수 있습니다. 수치를 소오면, 확률치가 매끈하게 되어, 단보람 형태소가 큰 확률치를 가지게 됩니다. 수치를 크게 하면 최적해의 확률이 커집니다. 디폴트는 0.75 입니다.
% mecab -l2 -a -F"%m %H %pP %pbn" -t0.1 -E"EOSn" 쿄토 대학 쿄토 대학 명사, 고유 명사, 조직,*,*,*, 쿄토 대학, 쿄우트다이가크, 쿄트다이가크 0.023617 * 쿄토대 명사, 고유 명사, 조직,*,*,*, 쿄토대, 쿄우트다이, 쿄트다이 0.052790 쿄토 명사, 고유 명사, 일반,*,*,*, 쿄토, 쿄우트, 쿄트 0.113576 쿄토 명사, 고유 명사, 지역, 일반,*,*, 쿄토, 쿄우트, 쿄트 0.200919 경 명사, 고유 명사, 지역, 일반,*,*, 경, 쿄우, 쿄 0.206514 경 명사, 고유 명사, 인명, 명,*,*, 경, 미야코, 미야코 0.157030 경 명사, 고유 명사, 인명, 성,*,*, 경, 쿄우, 쿄 0.245554 도 명사, 접미, 지역,*,*,*, 도, 트, 트 0.168921 도 명사, 고유 명사, 지역, 일반,*,*, 도, 미야코, 미야코 0.090030 도 명사, 고유 명사, 인명, 성,*,*, 도, 미야코, 미야코 0.098721 도 명사, 고유 명사, 인명, 명,*,*, 도, 미야코, 미야코 0.120077 도 명사, 일반,*,*,*,*, 도, 트, 트 0.131348 대학 명사, 고유 명사, 지역, 일반,*,*, 대학, 다이가크, 다이가크 0.056029 대학 명사, 고유 명사, 인명, 명,*,*, 대학, 다이가크, 다이가크 0.063926 대학 명사, 일반,*,*,*,*, 대학, 다이가크, 다이가크 0.097919 대 명사, 접미, 일반,*,*,*, 대, 다이, 다이 0.150510 대 접두사, 명사 접속,*,*,*,*, 대, 다이, 다이 0.151888 대 접두사, 동사 접속,*,*,*,*, 대, 오오, 오 0.083163 대 명사, 고유 명사, 지역, 일반,*,*, 대, 오오, 오 0.101090 대 명사, 고유 명사, 인명, 명,*,*, 대, 마살, 마살 0.090363 대 명사, 일반,*,*,*,*, 대, 다이, 다이 0.128706 학 명사, 접미, 일반,*,*,*, 학, 가크, 가크 0.233658 학 명사, 고유 명사, 지역, 일반,*,*, 학, 가크, 가크 0.150100 학 명사, 고유 명사, 인명, 명,*,*, 학, 마나브, 마나브 0.174424 학 명사, 일반,*,*,*,*, 학, 가크, 가크 0.200327 EOS
-a 옵션을 지정했을 경우, mecab_sparse_tonode 하지만 돌려준다 node 하 전형태소를 더듬을 수 있는 상대자향리스트가 됩니다. -l2 (을)를 지정하면 mecab_node_t::prob 에 주변 확률이 대입됩니다.
mecab_t *mecab;
mecab_node_t *node;
mecab = mecab_new2("-l2 -a");
node = mecab_sparse_tonode(mecab, input);
for (; node; node = node->next) {
/*
최적해 혹은 확률이 0.05
이상 때 출력 */
if (node->isbest || node->prob >= 0.05) {
fwrite (node->surface, sizeof(char), node->length, stdout);
printf("t%st%fn", node->feature, node->prob);
}
}
$Id: soft.html 65 2007-01-30 00:52:53Z taku-ku $;