CaboCha를 MATLAB에서 호출하여 참여하고 분석 할 수 있는지 시도했습니다.

소개



담당자 해석 툴로서 유명한 CaboCha 에서 최근 계좌 해석을 시작했습니다만, 커맨드 프롬프트라면 어째서도 잘 안 된다(아래 그림 참조), 그리고, 그 이외의 텍스트 해석은 MATLAB의 것으로 익숙해져 있으므로, MATLAB에서 일원적으로 모두 해석할 수 있으면 좋겠다고 생각해 보았습니다.



↑표시의 설정의 문제만인 생각도 합니다만 잘 고치지 않고. . 명령 프롬프트에서는 이런 상태에서도 MATLAB에서 움직이면 제대로 해석 할 수 있었으므로 안심하십시오.

환경



Windows 10
MATLAB R2019b

설정



CaboCha를 사용하려면 MeCab도 필요하므로 차례로 설치합니다.

MeCab 공식 사이트 에서 mecab-0.996.exe 다운로드
Windows판의 위의 파일에는 사전도 함께 들어 있으므로, 이만큼 다운로드하면 OK입니다.

②다운로드한 exe 파일을 오른쪽 클릭으로 「관리자로서 실행」하고, 셋업을 진행시킨다. 도중에 사전의 문자 코드 선택 화면이 나옵니다만, 여기는 SHIFT-JIS를 선택합니다.


CaboCha 다운로드
나는 최신 cabocha-0.69를 가지고 왔다.

④②와 마찬가지로 「관리자로서 실행」하고 셋업을 진행한다. 여기도 문자 코드는 SHIFT-JIS를 선택합니다.

⑤ 패스 설정
제어판→시스템 및 보안→시스템→시스템 고급 설정을 선택하고 고급 탭 아래에 있는 환경 변수를 클릭합니다. 시스템 환경 변수의 경로를 선택하고 편집 버튼을 눌러 MeCab 및 CaboCha 경로를 추가합니다.


이런 느낌으로 패스가 추가되었습니다.


MATLAB에서 전화 해보기



먼저 말씀드리면 MATLAB에서 시스템 명령을 두드리기만 하면 되므로 어려운 일은 하지 않습니다.
"나는 큰 유리로 차가운 커피를 마신다"라는 문장을 받아 분석 해 봅시다.
[~,cmdout] = system('echo 私は大きなグラスで冷たいコーヒーを飲みます | cabocha','-echo');
      私は---------D 
      大きな-D     | 
      グラスで-----D 
          冷たい-D | 
        コーヒーを-D 
            飲みます 
EOS 

위에서 가져온 cmdout 안에는 관련해 해석의 결과가 들어가 있으므로 결과의 보존도 할 수 있을 것 같습니다.
>> cmdout
cmdout =
    '      私は---------D
           大きな-D     |
           グラスで-----D
               冷たい-D |
             コーヒーを-D
                 飲みます
     EOS
     '

라는 것으로 아래의 str에 해석하고 싶은 문자열을 넣어 가면 OK. 엑셀 파일에서 읽거나 웹에서 가져온 것들을 넣어도 좋다고 생각합니다.

str = '私は今からここに書かれている文書を解析したいです。';
cmdin = ['echo ' str ' | cabocha'];
[~,cmdout] = system(cmdin,'-echo');
save('Result','cmdout'); % Result.matという名前で出力結果を保存

Live Script에서 실행하면 이런 식으로 결과가 반환되었습니다.



일단 오늘은 여기까지.



설치 도중에 이런 오류가 발생했습니다.
morph.cpp(187) [charset() == decode_charset(dinfo->charset)] Incompatible charset: MeCab charset is SHIFT-JIS, Your charset is UTF8

Windows의 시작 버튼에서 SHIFT-JIS 모델로 재컴파일하거나,


[CaboCha를 설치한 디렉터리]\CaboCha\model
에 있는 charset-file을 UTF-8에서 SHIFT-JIS로 다시 쓰는 것으로, 대처할 수 있었습니다.

좋은 웹페이지 즐겨찾기