Actions

MeCaB

De GBLL, TAL, ALAO, etc.

Installation

  • pour Linux :
git clone https://github.com/taku910/mecab.git 
cd mecab/mecab/
./configure –with-charset=utf-8 –enable-utf8-only
make
sudo make install
sudo ldconfig
cd ../mecab-ipadic/
./configure –with-charset=utf-8 –enable-utf8-only
make
sudo make install

Long tuto avec entre autre l'installation de Mecab et son utilisation sur Python.

Utilisation basique en ligne de commande

  • Sortie par défaut :
表層形\t 品詞 品詞細分類1 品詞細分類2 品詞細分類3 活用型 活用形 原形 読み 発音
Forme fléchie Catégorie grammaticale Sous-catégorie grammaticale1 Sous-catégorie grammaticale2 Sous-catégorie grammaticale3 Groupe de conjugaison Forme de conjugaiso Infinitif Lecture Prononciation
$ mecab
太郎は海外に住み始めました
太郎	名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
海外	名詞,一般,*,*,*,*,海外,カイガイ,カイガイ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
住み	動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ
始め	動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ
まし	助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS

MeCaB pour Python

Formatage de la sortie

https://taku910.github.io/mecab/format.html

On peut spécifier le formatage de la sortie avec -F.

Exemple de commande spécifiant un formatage : $ echo 位を継承|mecab -F"%m,%phl,%phr,%pb,%pw,%pc,%pn\n"

%s 形態素種類 (0: 通常, 1: 未知語, 2:文頭, 3:文末)
%S 入力文
%L 入力文の長さ
%m 形態素の表層文字列
%M 形態素の表層文字列, ただし空白文字も含めて出力 (%pS を参照のこと)
%h 素性の内部 ID
%% % そのもの
%c 単語生起コスト
%H 素性 (品詞, 活用, 読み) 等を CSV で表現したもの
%t 文字種 id
%P 周辺確率 (-l2 オプションを指定したときのみ有効)
%pi 形態素に付与されるユニークなID
%pS もし形態素が空白文字列で始まる場合は, その空白文字列を表示 %pS%m と %M は同一
%ps 開始位置
%pe 終了位置
%pC 1つ前の形態素との連接コスト
%pw %c と同じ
%pc 連接コスト + 単語生起コスト (文頭から累積)
%pn 連接コスト + 単語生起コスト (その形態素単独, %pw + %pC)
%pb 最適パスの場合 *, それ以外は ' '
%pP 周辺確率 (-l2 オプションを指定したときのみ有効)
%pA blpha, forward log 確率 (-l2 オプションを指定したときのみ有効)
%pB beta, backward log 確率 (-l2 オプションを指定したときのみ有効)
%pl 形態素の表層文字列としての長さ, strlen (%m) と同一
%pL 形態素の表層文字列としての長さ, ただし空白文字列も含む, strlen(%M) と同一
%phl 左文脈 id
%phr 右文脈 id
%f[N] csv で表記された素性の N番目の要素
%f[N1,N2,N3...] N1,N2,N3番目の素性を, "," を デリミタとして表示
%FC[N1,N2,N3...] N1,N2,N3番目の素性を, C を デリミタとして表示.
ただし, 要素が 空の場合は以降表示が省略される. (例)F-[0,1,2]
\0 \a \b \t \n \v \f \r \\ 通常の エスケープ文字列
\s ' ' (半角スペース)
設定ファイルに記述するときに使用

Documentation

Concernant la tokénisation et le calcul des fréquences

Tokénisation et étiquetage par calcul de l'indice de fréquence de cooccurrence (連接コスト)

コストの確認方法

https://abicky.net/2016/11/28/204542/

mecab コマンドでは -F オプションを指定することで出力フォーマットを変更することができます。

次の例では標準のフォーマットの末尾に単語生起コスト (%pw)、連接コスト (%pC)、文頭からの累積コスト (%pc) を追加しています。

% mecab -F '%m\t%H\t%pw,%pC,%pc\n' -E 'EOS\t%pw,%pC,%pc\n'
かつおたたき
かつ    接続詞,*,*,*,*,*,かつ,カツ,カツ 4281,-2789,1492
お      接頭詞,名詞接続,*,*,*,*,お,オ,オ        6374,-484,7382
たたき  名詞,一般,*,*,*,*,たたき,タタキ,タタキ  8441,-3097,12726
EOS     0,-573,12153
りんごジュース
りん    副詞,助詞類接続,*,*,*,*,りん,リン,リン  4705,-1137,3568
ご      接頭詞,名詞接続,*,*,*,*,ご,ゴ,ゴ        6655,-451,9772
ジュース        名詞,一般,*,*,*,*,ジュース,ジュース,ジュース    3637,-3097,10312
EOS     0,-573,9739
ロース肉薄切り
ロース  名詞,一般,*,*,*,*,ロース,ロース,ロース  3692,-283,3409
肉薄    名詞,サ変接続,*,*,*,*,肉薄,ニクハク,ニクハク    4456,-557,7308
切り    名詞,接尾,一般,*,*,*,切り,ギリ,ギリ     8907,-5447,10768
EOS     0,-156,10612

N-Best 解の累積コストはバグっているので、所望の解析結果のコストは制約付き解析によって求める必要があります。

「かつおたたき」の場合は次のように求めます。

% mecab -p -F '%m\t%H\t%pw,%pC,%pc\n' -E 'EOS\t%pw,%pC,%pc\n'
かつお  *
たたき  *
EOS
かつお  名詞,一般,*,*,*,*,かつお,カツオ,カツオ  7269,-283,6986
たたき  名詞,接尾,一般,*,*,*,たたき,タタキ,タタキ       11246,-5090,13142
EOS     0,-156,12986

「たたき」は名詞一般な気がしますが、ひとまず分割単位が正しくなれば良しとしましょう。

最適解の累積コストは 12153、所望の解析結果の累積コストは 12986 なので、12986 - 12153 + 1 = 834 だけ「かつお」の生起コストを下げれば良いことになります。