« MeCaB » : différence entre les versions
De GBLL, TAL, ALAO, etc.
Ligne 3 : | Ligne 3 : | ||
* pour Windows : [https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7WElGUGt6ejlpVXc mecab-0.996.exe] | * pour Windows : [https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7WElGUGt6ejlpVXc mecab-0.996.exe] | ||
* pour Linux : | * pour Mac et Linux : | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> |
Version du 22 novembre 2020 à 22:55
Installation
- pour Windows : mecab-0.996.exe
- pour Mac et 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,活用型,活用形,原形,読み,発音
表層形\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 |
Pour plus de renseignements sur cest différents éléments, voir la page IPADIC.
$ mecab
太郎は海外に住み始めました
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ
始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS
- Format lecture seulement : -Oyomi
$ mecab -Oyomi
太郎は海外に住み始めました
タロウハカイガイニスミハジメマシタ
- Format tokénisation : -Owakati
$ mecab -Owakati
太郎は海外に住み始めました
太郎 は 海外 に 住み 始め まし た
- Format Chasen : -Ochasen
$ mecab -Ochasen
太郎は海外に住み始めました
太郎 タロウ 太郎 名詞-固有名詞-人名-名
は ハ は 助詞-係助詞
海外 カイガイ 海外 名詞-一般
に ニ に 助詞-格助詞-一般
住み スミ 住む 動詞-自立 五段・マ行 連用形
始め ハジメ 始める 動詞-非自立 一段 連用形
まし マシ ます 助動詞 特殊・マス 連用形
た タ た 助動詞 特殊・タ 基本形
EOS
- Format complet : -Odump (champs à préciser)
$ mecab -Odump
太郎は海外に住み始めました
0 BOS BOS/EOS,*,*,*,*,*,*,*,* 0 0 0 0 0 0 2 1 0.000000 0.000000 0.000000 0
5 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 0 6 1291 1291 44 2 0 1 0.000000 0.000000 0.000000 8614
8 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 6 9 261 261 16 6 0 1 0.000000 0.000000 0.000000 9699
15 海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ 9 15 1285 1285 38 2 0 1 0.000000 0.000000 0.000000 13564
23 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 15 18 151 151 13 6 0 1 0.000000 0.000000 0.000000 13411
29 住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ 18 24 767 767 31 2 0 1 0.000000 0.000000 0.000000 17450
39 始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ 24 30 930 930 33 2 0 1 0.000000 0.000000 0.000000 19359
46 まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ 30 36 501 501 25 6 0 1 0.000000 0.000000 0.000000 19244
59 た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 36 39 435 435 25 6 0 1 0.000000 0.000000 0.000000 18647
62 EOS BOS/EOS,*,*,*,*,*,*,*,* 39 39 0 0 0 0 3 1 0.000000 0.000000 0.000000 17537
- Format personnalisé : il suffit de lister les éléments souhaités avec l'argument -F. Par exemple
mecab -F '%m\t%f[0]\n'
pour afficher la forme fléchie suivie de sa catégorie grammaticale.
$ mecab -F '%m\t%f[0]\n'
太郎は海外に住み始めました
太郎 名詞
は 助詞
海外 名詞
に 助詞
住み 動詞
始め 動詞
まし 助動詞
た 助動詞
EOS
Autre exemple : mecab -F '%m\t%H\t%pw,%pC,%pc\n' -E 'EOS\t%pw,%pC,%pc\n'
pour afficher la forme fléchie (%m), les informations morphosyntaxiques (%H), l'indice de fréquence du mot seul (単語生起コスト %pw), la vraisemblance de cooccurrence de ce mot à la suite du précédent (連接コスト %pC), la vraisemblance de cooccurrence de ce mot depuis le début de la chaîne (累積コスト %pc)
$ mecab -F '%m\t%H\t%pw,%pC,%pc\n' -E 'EOS\t%pw,%pC,%pc\n'
太郎は海外に住み始めました
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 8810,-196,8614
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 3865,-2780,9699
海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ 3828,37,13564
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 4304,-4457,13411
住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ 7093,-3054,17450
始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ 9347,-7438,19359
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ 6320,-6435,19244
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 5500,-6097,18647
EOS 0,-1110,17537
Liste des informations accessibles pour chaque token
https://taku910.github.io/mecab/format.html
%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 | ' ' (半角スペース) 設定ファイルに記述するときに使用 |
MeCaB pour Python
pip install mecab-python3
import MeCab
wakati = MeCab.Tagger("-Owakati")
print(wakati.parse("太郎は海外に住み始めました").split())
Résultat :
['太郎', 'は', '海外', 'に', '住み', '始め', 'まし', 'た']
import MeCab
chasen = MeCab.Tagger("-Ochasen")
print(chasen.parse("太郎は海外に住み始めました"))
Résultat :
太郎 タロウ 太郎 名詞-固有名詞-人名-名
は ハ は 助詞-係助詞
海外 カイガイ 海外 名詞-一般
に ニ に 助詞-格助詞-一般
住み スミ 住む 動詞-自立 五段・マ行 連用形
始め ハジメ 始める 動詞-非自立 一段 連用形
まし マシ ます 助動詞 特殊・マス 連用形
た タ た 助動詞 特殊・タ 基本形
EOS
import MeCab
dump = MeCab.Tagger("-Odump")
print(dump.parse("太郎は海外に住み始めました"))
Résultat :
0 BOS BOS/EOS,*,*,*,*,*,*,*,* 0 0 0 0 0 0 2 1 0.000000 0.000000 0.000000 0
5 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 0 6 1291 1291 44 2 0 1 0.000000 0.000000 0.000000 8614
8 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 6 9 261 261 16 6 0 1 0.000000 0.000000 0.000000 9699
15 海外 名詞,一般,*,*,*,*,海外,カイガイ,カイガイ 9 15 1285 1285 38 2 0 1 0.000000 0.000000 0.000000 13564
23 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 15 18 151 151 13 6 0 1 0.000000 0.000000 0.000000 13411
29 住み 動詞,自立,*,*,五段・マ行,連用形,住む,スミ,スミ 18 24 767 767 31 2 0 1 0.000000 0.000000 0.000000 17450
39 始め 動詞,非自立,*,*,一段,連用形,始める,ハジメ,ハジメ 24 30 930 930 33 2 0 1 0.000000 0.000000 0.000000 19359
46 まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ 30 36 501 501 25 6 0 1 0.000000 0.000000 0.000000 19244
59 た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 36 39 435 435 25 6 0 1 0.000000 0.000000 0.000000 18647
62 EOS BOS/EOS,*,*,*,*,*,*,*,* 39 39 0 0 0 0 3 1 0.000000 0.000000 0.000000 17537
- Voir la doc de MeCab-python3
- Tutoriel Youtube premiers pas : 【Pythonテキストマイニング#4】形態素解析で文章を単語に分割してみよう
- Doc : PythonによるMeCabの使い方まとめ
- 【Python】形態素解析器のMeCabを使って自然言語処理の実装 (doc la plus complète jusque là)
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 だけ「かつお」の生起コストを下げれば良いことになります。