검색결과 리스트
mecab에 해당되는 글 2건
- 2013.03.11 php-mecab 바인딩 사용하기
- 2013.03.09 형태소 분석기 mecab와 은전한닢 프로젝트
mecab 프로젝트에 대해 조금 더 살펴보니 2006년에 만들어진 꽤 오래된 프로젝트였습니다. http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html
mecab 패키지에는 이미 java/perl/python 등등의 바인딩을 지원하지만 php 바인딩만 자체 지원하지 않습니다. 그래서 php 바인딩은 없나 하고 살펴보니 2008년도부터 php바인딩을 지원하는 프로젝트가 있었더군요. https://github.com/rsky/php-mecab by rsky
rpm 패키지는 없나 해서 살펴보니 금방 찾을 수 없어서, 그냥 빌드해봤습니다. (참고로 본인은 Fedora 15 사용중)
$ git clone https://github.com/rsky/php-mecab Cloning into php-mecab... remote: Counting objects: 616, done. remote: Compressing objects: 100% (249/249), done. remote: Total 616 (delta 427), reused 548 (delta 359) Receiving objects: 100% (616/616), 120.44 KiB | 110 KiB/s, done. Resolving deltas: 100% (427/427), done. $ cd php-mecab/ $ ls mecab packages README.md $ cd mecab $ phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626
그런다음 빌드
$ ./configure checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for a sed that does not truncate output... /bin/sed checking for cc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking how to run the C preprocessor... cc -E (중략) checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating ./config.status config.status: creating config.h config.status: executing libtool commands $ make ... (생략)
php 바인딩 소스 본체가 mecab.c라는 소스가 전부라서 눈깜짝할 사이에 빌드가 됩니다.
빌드된 mecab.so 파일을 다음과 같은 식으로 설치해줍니다.
$ sudo cp modules/mecab.so /usr/lib/php/modules/
다음과 같은 내용을 /etc/php.ini에 넣거나, /etc/php.d/mecab.ini라는 파일을 만들어 추가해줍니다.
extension=mecab.so
다음과 같은 간단한 예제를 examples/* 디렉토리 아래에 있는 다양한 예제를 참고해서 만들어봤습니다.
$dic = './mecab-ko-dic-1.1.3-20130226'; ini_set('mecab.default_dicdir', $dic); $arg = array(); $mecab = mecab_new($arg); $str = "PHP-mecab 한글테스트중입니다. 무궁화꽃이 피었습니다"; echo mecab_sparse_tostr($mecab, $str); mecab_destroy($mecab);
이 파일은 test.php라고 이름붙여 저장하고, mecab용 한글 사전 디렉토리는 현재 디렉토리 아래에 있는 은전한닢 프로젝트의 사전으로 지정하였으며 (./mecab-ko-dic-1.1.3-20130226), 다음과 같이 실행해 보니 아무런 문제없이 잘 실행됨을 볼 수 있었습니다.
$ php test.php PHP SL,*,*,*,*,*,* - SY,*,*,*,*,*,* mecab SL,*,*,*,*,*,* 한글 NN,T,한글,*,*,*,* 테스트 NN,F,테스트,*,*,*,* 중 NNB,T,중,*,*,*,* 입니다 VCP+EF,F,입니다,Inflect,VCP,EF,이/VCP+ㅂ니다/EF . SF,*,*,*,*,*,* 무궁화 NN,F,무궁화,Compound,*,*,무궁+화 꽃 NN,T,꽃,*,*,*,* 이 JKC,F,이,*,*,*,* 피 VV,F,피,*,*,*,* 었 EP,T,었,*,*,*,* 습니다 EC,F,습니다,*,*,*,* EOS
끝
eAccelerator win32 버그 및 빌드 (0) | 2013.08.28 |
---|---|
모니위키 속도 300RPS 벽을 깨다. (0) | 2013.05.21 |
모니위키 1.2.0 릴리스 준비 진행상황 (0) | 2013.05.18 |
리눅스에서 svox-pico 사용하기 (0) | 2013.03.14 |
형태소 분석기 mecab와 은전한닢 프로젝트 (0) | 2013.03.09 |
KLDP에 은전한닢 프로젝트에 대한 소개가 있더군요.
http://kldp.org/node/75489#comment-593970 (by cleansugar 작성 일시: 수, 2013/03/06)
벼르고 있다가 한번 설치해봤습니다. 참고한 문서는 다음과 같습니다.
제가 페도라 15을 사용중인데, 페도라에서 설치하려고 보니 이미 mecab 패키지가 있더군요. 약간 낡은 버전이지만 설치했습니다. debian이나 우분투의 경우에도 이미 패키지가 있는 것 같습니다.
yum install mecab mecab-devel
그런 다음 mecab용 ko-dic을 받아서 make를 수행하였습니다.
$ rpm -q mecab mecab-0.98-1.fc15.i686 $ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for mecab-config... /usr/bin/mecab-config configure: creating ./config.status config.status: creating Makefile $ make ...(생략) /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for mecab-config... /usr/bin/mecab-config configure: creating ./config.status /bin/sh ./config.status config.status: creating Makefile /usr/libexec/mecab/mecab-dict-index -d . -o . -f UTF-8 -t UTF-8 reading ./unk.def ... 13 emitting double-array: 100% |###########################################| reading ./VCP.csv ... 9 reading ./SH-XPN.csv ... 94 reading ./SH-XR.csv ... 4350 reading ./Atomic.csv ... 1 reading ./MM.csv ... 454 reading ./NN-Person.csv ... 12269 reading ./NR.csv ... 483 reading ./XSA.csv ... 20 ... (중략)
사전 자체는 설치하지 않고 다음과 같이 테스트할 수 있었습니다.
(현재 디렉토리 아래에 mecab-ko-dic-1.1.3-xxxx 디렉토리가 있는 경우 다음과 같이 디렉토리 지정)
$ echo "이것이 바로 은전한닢을 사용하는 mecab입니다." | mecab -d mecab-ko-dic-1.1.3-20130226 이것 NP,T,이것,*,*,*,이거/NP 이 JKS,F,이,*,*,*,* 바로 MAG,F,바로,*,*,*,* 은전 NN,T,은전,*,*,*,* 한 XSV+ETM,T,한,Inflect,XSV,ETM,하/XSV+ㄴ/ETM 닢 NN,T,닢,*,*,*,* 을 JKO,T,을,*,*,*,* 사용 NN,T,사용,*,*,*,* 하 XSV,F,하,*,*,*,* 는 ETM,T,는,*,*,*,* mecab SL,*,*,*,*,*,* 입니다 VCP+EF,F,입니다,Inflect,VCP,EF,이/VCP+ㅂ니다/EF . SF,*,*,*,*,*,* EOS
설치 및 사용법도 간단하고, 속도도 느리지 않고, mecab가 원래 일본어 형태소였으니 띄어쓰기가 잘 되지 않은 경우에도 잘 처리할 수 있을 것으로 생각됩니다.
아무튼 매우 기대되는 프로젝트입니다.
mecab는 java/perl/python/ruby등등의 바인딩을 지원하니, 형태소 분석기에 관심있으신 분들은 한번 사용해보시기 바랍니다~
eAccelerator win32 버그 및 빌드 (0) | 2013.08.28 |
---|---|
모니위키 속도 300RPS 벽을 깨다. (0) | 2013.05.21 |
모니위키 1.2.0 릴리스 준비 진행상황 (0) | 2013.05.18 |
리눅스에서 svox-pico 사용하기 (0) | 2013.03.14 |
php-mecab 바인딩 사용하기 (0) | 2013.03.11 |
RECENT COMMENT