LoginSignup
9
8

More than 5 years have passed since last update.

PHP: mecabの関数と意味のメモ

Posted at

mecabのインスタンスを生成

$meCab = new MeCab_Tagger($options);

文字列をパースして先頭ノードを取得

$node = $meCab->parseToNode($string);

ノードの終わりまでループ

while($node = $node->getNext())
{
    //ここに処理
}

ノードのIDを取得

 ノードIDとは文脈IDのことらしい。とりえずこの分解で割当てられたIDと思っておけば良さそう。
 詳しいことは形態素解析を学ばないと理解できないので、こちらのページを参照のこと。
 http://www.mwsoft.jp/programming/munou/mecab_nitteretou.html

$node->getId();

文字列の取得

分解された文字列を取得。

$node->getSurface();

品詞IDの取得

品詞IDを取得。

$node->getPosId();

品詞IDの一覧はこちら。ユーザーにより書き換え可能。

その他,間投,*,* 0
フィラー,*,*,* 1
感動詞,*,*,* 2
記号,アルファベット,*,* 3
記号,一般,*,* 4
記号,括弧開,*,* 5
記号,括弧閉,*,* 6
記号,句点,*,* 7
記号,空白,*,* 8
記号,読点,*,* 9
形容詞,自立,*,* 10
形容詞,接尾,*,* 11
形容詞,非自立,*,* 12
助詞,格助詞,一般,* 13
助詞,格助詞,引用,* 14
助詞,格助詞,連語,* 15
助詞,係助詞,*,* 16
助詞,終助詞,*,* 17
助詞,接続助詞,*,* 18
助詞,特殊,*,* 19
助詞,副詞化,*,* 20
助詞,副助詞,*,* 21
助詞,副助詞/並立助詞/終助詞,*,* 22
助詞,並立助詞,*,* 23
助詞,連体化,*,* 24
助動詞,*,*,* 25
接続詞,*,*,* 26
接頭詞,形容詞接続,*,* 27
接頭詞,数接続,*,* 28
接頭詞,動詞接続,*,* 29
接頭詞,名詞接続,*,* 30
動詞,自立,*,* 31
動詞,接尾,*,* 32
動詞,非自立,*,* 33
副詞,一般,*,* 34
副詞,助詞類接続,*,* 35
名詞,サ変接続,*,* 36
名詞,ナイ形容詞語幹,*,* 37
名詞,一般,*,* 38
名詞,引用文字列,*,* 39
名詞,形容動詞語幹,*,* 40
名詞,固有名詞,一般,* 41
名詞,固有名詞,人名,一般 42
名詞,固有名詞,人名,姓 43
名詞,固有名詞,人名,名 44
名詞,固有名詞,組織,* 45
名詞,固有名詞,地域,一般 46
名詞,固有名詞,地域,国 47
名詞,数,*,* 48
名詞,接続詞的,*,* 49
名詞,接尾,サ変接続,* 50
名詞,接尾,一般,* 51
名詞,接尾,形容動詞語幹,* 52
名詞,接尾,助数詞,* 53
名詞,接尾,助動詞語幹,* 54
名詞,接尾,人名,* 55
名詞,接尾,地域,* 56
名詞,接尾,特殊,* 57
名詞,接尾,副詞可能,* 58
名詞,代名詞,一般,* 59
名詞,代名詞,縮約,* 60
名詞,動詞非自立的,*,* 61
名詞,特殊,助動詞語幹,* 62
名詞,非自立,一般,* 63
名詞,非自立,形容動詞語幹,* 64
名詞,非自立,助動詞語幹,* 65
名詞,非自立,副詞可能,* 66
名詞,副詞可能,*,* 67
連体詞,*,*,* 68

未知の言葉かどうかを取得

数字は未知に分類されるもよう。

$node->getStat();

普通:0
未知語:1
BOS:2(形態素解析のヘッダー的なもの)
EOS:3(形態素解析のフッター的なもの)

文字列の長さ(バイト数)を取得

$node->getLength();

文字種情報の取得

未知語として扱われた場合、どのような処理がされたのか、という結果(?)。ちょっと謎。

$node->getCharType();

文字列の情報をたくさん表示

$node->getFeature();
9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8