品詞IDの定義

概要

出力される素性(品詞)に任意の数値ID を付与することができます. 通常, 素性は文字列として表現されますが, 機械処理には向いていません. 数値ID に変換することで, 機械処理が容易になります.

素性にどの ID を割りあてるかは, ユーザが自由に定義することができます.

設定ファイル

配布辞書のディレクトリにある pos-id.def を変更します.

1行が1つのマッピングルールに対応します. 各パターンは以下のフォーマットで 記述します.

マッチパターン  ID

という形式で記述します. マッピングルールは先頭から順に走査されて 最初にマッチしたものが使われます.

マッチパターンでは簡単な正規表現がを使うことができます.

pos-id を変更したら, 辞書をリコンパイルする必要があります.

/usr/local/libexec/mecab/mecab-dict-index

品詞 ID の参照

出力フォーマットのマクロ %h を使うことで 品詞 ID を参照することができます.

% mecab -F"%m\t%h\n" -E"EOS\n" 
今日もしないとね。
今日    67
も      16
し      31
ない    25
と      18
ね      17
。
EOS

また, ライブラリからは mecab_node_t::posid で参照できます.

mecab_t *mecab;
mecab_node_t *node;

mecab = mecab_new2("");
node = mecab_sparse_tonode(mecab, "今日もしないとね");
for (; node; node = node->next) {
  fwrite (node->surface, sizeof(char), node->length, stdout);
  printf("%d\n", node->posid)
}

pos-id.def の例

単純な例

名詞 1
動詞 2
形容詞 3
副詞 4
助詞 5
接続詞 6
助動詞 7
連体詞 8
感動詞 9
* 10

ちょっと複雑な例

名詞 1
(助詞|助動詞) 2
(副詞|形容詞|連体詞) 3
* 4

もっと複雑な例

その他,間投,*,* 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