Actions

MeCaB

De GBLL, TAL, ALAO, etc.

Installation

  • 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

  • Vous pouvez soit utiliser l'invite de commande Mecab (en cliquant sur Mecab.lnk ou Mecab.exe), soit directement dans votre terminal (mecab). Il suffit ensuite de taper du texte et taper entrer pour que Mecab l'analyse.
  • Sortie par défaut : 表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音
表層形\t 品詞 品詞細分類1 品詞細分類2 品詞細分類3 活用型 活用形 原形 読み 発音
Token Catégorie grammaticale Sous-catégorie grammaticale1 Sous-catégorie grammaticale2 Sous-catégorie grammaticale3 Groupe de conjugaison Forme de conjugaison Lemme 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
  • Calculer la vraisemblance de l'énoncé entier :
    • Afficher sur une ligne le détail des 累積コスト (%pc) pour chaque token :
$ echo 太郎でござる | mecab -B"%S:\t" -F"%m %pc\t" -E"\n"
太郎でござる:	太郎 8614	で 12125	ござる 13625
    • Ou afficher seulement le %pc final (vraisemblance de l'énoncé entier):
$ echo 太郎でござる | mecab -B"%S:\t" -F"%m %pc\t" -E"\n" | awk '{print $1 $NF}'
太郎でござる:13625
  • -B pour afficher quelque chose au début, -E pour afficher quelque chose à la fin. (Comme BEGIN et END de awk)

Exemple :

$ echo 太郎でござる| mecab -B"Texte précédant l'analyse\n" -F"%m\n" -E"Terminé\n"
Texte précédant l'analyse
太郎
で
ござる
Terminé

Liste des informations accessibles pour chaque token

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

%s 形態素種類 (0: 通常, 1: 未知語, 2:文頭, 3:文末) [Classe du mot (0:normal, 1:mot inconnu, 2:début de phrase, 3:fin de phrase)]
%S 入力文 [énoncé complet]
%L 入力文の長さ [longueur de l'énoncé]
%m 形態素の表層文字列 [token]
%M 形態素の表層文字列, ただし空白文字も含めて出力 (%pS を参照のこと) [token, conserve les espaces]
%h 素性の内部 ID [Identifiant du part of speech (listés ici pos-id.def et là mecab/posid.html)]
%% % そのもの [échappement du caractère %]
%c 単語生起コスト [indice de vraisemblance du token (plus il est élevé moins le token au probable)]
%H 素性 (品詞, 活用, 読み) 等を CSV で表現したもの [liste des traits morphosyntaxiques du token (sortie par défaut de Mecab, cf tableau ci-dessus)]
%t 文字種 id [identifiant de caractère (défini dans char.def)]
%P 周辺確率 (-l2 オプションを指定したときのみ有効) [marginal probability (effectif seulement avec l'option -l2)]
%pi 形態素に付与されるユニークなID [identifiant unique du token]
%pS もし形態素が空白文字列で始まる場合は, その空白文字列を表示 %pS%m と %M は同一 [affiche les espaces présents dans l'énoncé (%pS%m = %M)]
%ps 開始位置 [position du début token (en octet)]
%pe 終了位置 [position du fin token (en octet)]
%pC 1つ前の形態素との連接コスト [coût de vraisemblance du token à la suite du précédent (à ajouter à son indice de vraisemblance pour connaître la vraisemblance de la collocation →%pc)]
%pw %c と同じ [indice de vraisemblance du token (plus il est élevé moins le token au probable) (=%c)]
%pc 連接コスト + 単語生起コスト (文頭から累積) [indice de vraisemblance du token à la suite du précédent (plus la valeur est élevée moins la collocation est vraisemblable)]
%pn 連接コスト + 単語生起コスト (その形態素単独, %pw + %pC) [indice de vraisemblance du token à la suite de tous les autres depuis le début de la phrase (plus la valeur est élevée moins l'enchaînement est vraisemblable)]
%pb 最適パスの場合 *, それ以外は ' ' [ * s'il s'agit du chemin le plus court, sinon ' ']
%pP 周辺確率 (-l2 オプションを指定したときのみ有効) [marginal probability (effectif seulement avec l'option -l2)]
%pA blpha, forward log 確率 (-l2 オプションを指定したときのみ有効)
%pB beta, backward log 確率 (-l2 オプションを指定したときのみ有効)
%pl 形態素の表層文字列としての長さ, strlen (%m) と同一 [longueur du token (=strlen(%m))]
%pL 形態素の表層文字列としての長さ, ただし空白文字列も含む, strlen(%M) と同一 [longueur du token espaces incluses]
%phl 左文脈 id [identifiant du contexte gauche]
%phr 右文脈 id [identifiant du contexte droit]
%f[N] csv で表記された素性の N番目の要素 [permet de pointer un trait morphosyntaxique spécifique, par ex. %f[0] pour la catégorie]
%f[N1,N2,N3...] N1,N2,N3番目の素性を, "," を デリミタとして表示 [permet de pointer plusieurs traits morphosyntaxiques séparés par ","]
%FC[N1,N2,N3...] N1,N2,N3番目の素性を, C を デリミタとして表示.
ただし, 要素が 空の場合は以降表示が省略される. (例)F-[0,1,2]
[permet de pointer plusieurs traits morphosyntaxiques séparés par un séparateur (ex. %F-[0,1])]
\0 \a \b \t \n \v \f \r \\ 通常の エスケープ文字列 [échappements de base]
\s ' ' (半角スペース)
設定ファイルに記述するときに使用 [espace demi-chasse]

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


Documentation

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

Tokénisation et étiquetage par calcul de l'indice de vraisemblance 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 だけ「かつお」の生起コストを下げれば良いことになります。

Autres doc à creuser