« MeCaB » : différence entre les versions
De GBLL, TAL, ALAO, etc.
Aucun résumé des modifications |
|||
Ligne 17 : | Ligne 17 : | ||
sudo make install | sudo make install | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[https://www.youtube.com/watch?v=nfE_D5Ne1b0 Long tuto avec entre autre l'installation de Mecab et son utilisation sur Python.] | |||
== Concernant la tokénisation et le calcul des fréquences == | == Concernant la tokénisation et le calcul des fréquences == |
Version du 22 novembre 2020 à 00:25
Installation
- pour Windows : mecab-0.996.exe
- 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.
Concernant la tokénisation et le calcul des fréquences

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 | ' ' (半角スペース) 設定ファイルに記述するときに使用 |
コストの確認方法
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 だけ「かつお」の生起コストを下げれば良いことになります。
MeCaB pour Python
- Voir la doc de MeCab-python3
- Tutoriel Youtube premiers pas : 【Pythonテキストマイニング#4】形態素解析で文章を単語に分割してみよう
- Doc : PythonによるMeCabの使い方まとめ