Last active
August 29, 2015 14:05
-
-
Save masayuki5160/4ef3606257af9a1df1d4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @var object php_mecab の Mecab_Tagger オブジェクト | |
*/ | |
$mecab = new MeCab_Tagger(); | |
if( is_object( $mecab ) ){ | |
while( true ) | |
{ | |
printf( '形態素解析する文章を入力して下さい:' ); | |
/** | |
* @var string 形態素解析にかける文 | |
*/ | |
$textInput = null; | |
/* 標準入力を利用し、キーボードからの入力を受け付ける */ | |
$stdin = fopen( 'php://stdin' , 'r' ); | |
$textInput = fgets( $stdin ); | |
fclose( $stdin ); | |
$textInput = rtrim( $textInput ); | |
var_dump($mecab->parse($textInput)); | |
$resultSet = explode( "\n" , $mecab->parse( $textInput ) ); | |
printf( "\n\n" ); | |
printf( "[形態素に分解した結果]\n" ); | |
foreach( $resultSet as $eachResult ) | |
{ | |
if( substr( $eachResult , 0 , 3 ) !== 'EOS' ){ | |
list( $eachMorpheme , $eachInfo ) = explode( "\t" , $eachResult ); | |
printf( "%s\n" , $eachMorpheme ); | |
}else{ | |
break; | |
} | |
} | |
printf( "\n\n" ); | |
} | |
}else{ | |
printf( "Mecab_Tagger オブジェクトを作成できません。処理を中断します。\n" ); | |
exit(); | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
とりあえずupdate | |
# sudo yum update -y | |
必要なもんを用意 | |
# wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz | |
# wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz | |
解凍 | |
# tar xvfz mecab-0.996.tar.gz | |
# tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz | |
必要なもの用意 | |
# sudo yum install -y gcc-c++ gcc-objc++ gcc41-c++ make | |
順番にセットアップ | |
# cd mecab-0.996 | |
# sudo ./configure --enable-utf8-only --with-charset=utf8 | |
# sudo make | |
# sudo make install | |
mecabインストールチェック | |
# which mecab | |
辞書のセットアップ | |
# cd mecab-ipadic-2.7.0-20070801 | |
# PATH=$PATH:/usr/local/bin;export PATH | |
# sudo ./configure --with-mecab-config=/usr/local/bin/mecab-config --with-charset=utf8 | |
# sudo make | |
# sudo make install | |
動作チェック | |
# mecab | |
php_mecabをセットアップ | |
#sudo yum install php-pear php-devel | |
#pear channel-discover pecl.opendogs.org | |
#sudo pear install opendogs/mecab-beta | |
#sudo vi /etc/php.d/mecab.ini | |
extension=mecab.so | |
※エラーになった場合などはmecab.configのPATH指定をするex./home/ec2-user/mecab-0.996/mecab-configとか | |
【参考】 | |
1. PHPによる機械学習入門 | |
2. http://d.hatena.ne.jp/hase1031/20111005/1317808636 |
var_dumpでだしている結果のとおり、parse()した結果は"形態素¥t品詞情報"となっている。
なので下記のようにlist()を用いて$eachResultを¥tで分割してできた配列を$eachMorpheme(形態素), $eachInfo(品詞情報)として変数を宣言している.
list( $eachMorpheme , $eachInfo ) = explode( "\t" , $eachResult );
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
実行結果はこれ
$ php mecab_001.php
形態素解析する文章を入力して下さい:Mecabのテストです
string(224) "Mecab 名詞,固有名詞,組織,,,,
の 助詞,連体化,,,,,の,ノ,ノ
テスト 名詞,サ変接続,,,,,テスト,テスト,テスト
です 助動詞,,,*,特殊・デス,基本形,です,デス,デス
EOS
"
[形態素に分解した結果]
Mecab
の
テスト
です