« MeCaB » : différence entre les versions
De GBLL, TAL, ALAO, etc.
Aucun résumé des modifications |
|||
Ligne 20 : | Ligne 20 : | ||
[https://www.youtube.com/watch?v=nfE_D5Ne1b0 Long tuto avec entre autre l'installation de Mecab et son utilisation sur Python.] | [https://www.youtube.com/watch?v=nfE_D5Ne1b0 Long tuto avec entre autre l'installation de Mecab et son utilisation sur Python.] | ||
== | == Utilisation basique en ligne de commande == | ||
* Sortie par défaut | |||
<syntaxhighlight> | |||
$ mecab | |||
太郎は海外に住み始めました | |||
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー | |||
は 助詞,係助詞,*,*,*,*,は,ハ,ワ | |||
海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ | |||
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ | |||
住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ | |||
始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ | |||
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ | |||
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ | |||
EOS | |||
</syntaxhighlight> | |||
[[ | == MeCaB pour Python == | ||
* Voir la doc de [https://pypi.org/project/mecab-python3/ MeCab-python3] | |||
* Tutoriel Youtube premiers pas : [https://www.youtube.com/watch?v=jy7dds6WSu0 【Pythonテキストマイニング#4】形態素解析で文章を単語に分割してみよう] | |||
* Doc : [https://www.i-like-output.work/entry/20191012 PythonによるMeCabの使い方まとめ] | |||
* [https://zerofromlight.com/blogs/detail/55/ 【Python】形態素解析器のMeCabを使って自然言語処理の実装 (doc la plus complète jusque là)] | |||
== Formatage de la sortie == | == Formatage de la sortie == | ||
Ligne 136 : | Ligne 150 : | ||
|} | |} | ||
== コストの確認方法 == | == Documentation == | ||
=== Concernant la tokénisation et le calcul des fréquences === | |||
* [https://qiita.com/Taka_input/items/ae500a5c4440fa2e091e MeCabのコスト計算について] | |||
* [https://kento1109.hatenablog.com/entry/2018/01/24/102322 MeCabのコスト計算を理解する] | |||
* [http://www.mwsoft.jp/programming/munou/mecab_nitteretou.html 日本テレビ東京で学ぶMeCabのコスト計算] | |||
* [https://qiita.com/kodera123/items/a5921cbcd18b9a309787 自然言語処理入門 まとめ【Python + Janome + gensim】] | |||
[[Fichier:Mecab seikiKosuto.png|650px|vignette|centré|Tokénisation et étiquetage par calcul de l'indice de fréquence de cooccurrence (連接コスト)]] | |||
=== コストの確認方法 === | |||
https://abicky.net/2016/11/28/204542/ | https://abicky.net/2016/11/28/204542/ | ||
Ligne 175 : | Ligne 199 : | ||
最適解の累積コストは 12153、所望の解析結果の累積コストは 12986 なので、12986 - 12153 + 1 = 834 だけ「かつお」の生起コストを下げれば良いことになります。 | 最適解の累積コストは 12153、所望の解析結果の累積コストは 12986 なので、12986 - 12153 + 1 = 834 だけ「かつお」の生起コストを下げれば良いことになります。 | ||
Version du 22 novembre 2020 à 13:19
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.
Utilisation basique en ligne de commande
- Sortie par défaut
$ mecab
太郎は海外に住み始めました
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ
始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS
MeCaB pour Python
- Voir la doc de MeCab-python3
- Tutoriel Youtube premiers pas : 【Pythonテキストマイニング#4】形態素解析で文章を単語に分割してみよう
- Doc : PythonによるMeCabの使い方まとめ
- 【Python】形態素解析器のMeCabを使って自然言語処理の実装 (doc la plus complète jusque là)
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

コストの確認方法
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 だけ「かつお」の生起コストを下げれば良いことになります。