Python fugashiとUniDicによる形態素解析入門

Pythonで形態素解析を行うには、いくつかの方法があります。ここでは形態素解析器MeCabのCythonラッパーであるfugashiと形態素解析器MeCab用の解析用辞書であるUniDicを用いて形態素解析を行う方法を簡単に説明します。
pipでインストールできるUniDicには2025年7月現在、次のような2つの辞書があります。

  • unidic-lite: UniDic 2.1.2(2013年版)
  • unidic: UniDic 3.1.0(2021年版)

動作確認だけであれば unidic-liteから始めることができますが、より本格的な処理にはunidicが推奨されます。

インストール

fugashiとunidic-liteのインストール

次のコマンドによりインストールします。このコマンドにより辞書unidic-liteも同時にインストールされます。


pip install 'fugashi[unidic-lite]'

fugashiとunidicのインストール

次のコマンドによりインストールします。


pip install 'fugashi[unidic]'
python -m unidic download

以下、辞書unidicがインストールしたものとします。

UniDic 3.1.0に含まれるフィールド

UniDic 3.1.0に含まれるフィールドのリストは次になります。

番号 属性ラベル 階層 属性の名称 説明
0 pos1 語形 品詞大分類 品詞大分類の名称
1 pos2 語形 品詞中分類 品詞中分類の名称
2 pos3 語形 品詞小分類 品詞小分類の名称
3 pos4 語形 品詞細分類 品詞細分類の名称
4 cType 語形 活用型 活用の種類(型)
5 cForm 語形 活用形 活用の形
6 lForm 語彙素 語彙素読み 語彙素見出し(カタカナ表記)
7 lemma 語彙素 語彙素表記 語彙素見出し(漢字仮名混じり表記)
8 orth 書字形 書字形出現形 書字形基本形が活用変化を受けたもの
9 pron 発音形 発音形出現形 発音形基本形が活用変化を受けたもの
10 orthBase 書字形 書字形基本形 書字形見出し
11 pronBase 発音形 発音形基本形 発音形見出し
12 goshu 語彙素 語種 語種の名称
13 iType 語形 語頭変化型 語頭音変化の種類(型)
14 iForm 語形 語頭変化形 語頭音変化の形
15 fType 語形 語末変化型 語末音変化の種類(型)
16 fForm 語形 語末変化形 語末音変化の形
17 iConType 語形 語頭変化結合型 後続要素の語頭変化形への制約の種類(型)
18 fConType 語形 語末変化結合型 前接要素の語末変化形への制約の種類(型)
19 type 語彙素 語彙素類
20 kana 書字形 仮名形出現形 書字形出現形をカタカナ表記にしたもの
21 kanaBase 書字形 仮名形基本形 書字形基本形をカタカナ表記にしたもの
22 form 語形 語形基本形 語形見出し
23 formBase 語形 語形基本形 語形見出し(カタカナ表記)
24 aType 発音形 アクセント型 アクセント核の位置
25 aConType 発音形 アクセント結合型 前接(後続)要素との結合時のアクセント変化の種類(型)
26 aModType 発音形 アクセント修飾型 活用によるアクセント変化の種類(型)
27 lid 語彙表 語彙表ID UniDic DB中の各エントリ(短単位)を一意識別するためのID(主キー)
28 lemma_id 語彙素 語彙素ID UniDic DB中の各語彙素(語彙素-語彙素細分類、語彙素読み、語彙素類)を一意識別するためのID

分かち書き

英語の文章のように、単語間を「 (スペース)」で分かち書きをするには次のようにします。


from fugashi import Tagger

tagger = Tagger('-Owakati')
text = '麩菓子は、麩を主原料とした日本の伝統的な駄菓子です。'
print(tagger.parse(text))

麩 菓子 は 、 麩 を 主 原料 と し た 日本 の 伝統 的 な 駄 菓子 です 。

形態素解析

形態素解析の結果を表示するには次のようにします。


from fugashi import Tagger

tagger = Tagger()
text = '麩菓子は、麩を主原料とした日本の伝統的な駄菓子です。'
print(tagger.parse(text))

麩      名詞,普通名詞,一般,,,,フ,麩,麩,フ,麩,フ,漢,"フ濁","基本形","","","","",体,フ,フ,フ,フ,"0","C3","",17839859662201344,64901
菓子    名詞,普通名詞,一般,,,,カシ,菓子,菓子,カシ,菓子,カシ,漢,"カ濁","基本形","","","","",体,カシ,カシ,カシ,カシ,"1","C1","",1758677472256512,6398
は      助詞,係助詞,,,,,ハ,は,は,ワ,は,ワ,和,"","","","","","",係助,ハ,ハ,ハ,ハ,"","動詞%F2@0,名詞%F1,形容詞%F2@-1","",8059703733133824,29321
、      補助記号,読点,,,,,,、,、,,、,,記号,"","","","","","",補助,,,,,"","","",6605693395456,24
麩      名詞,普通名詞,一般,,,,フスマ,麩,麩,フスマ,麩,フスマ,和,"","","","","","",体,フスマ,フスマ,フスマ,フスマ,"0,3","C2","",18052890040082944,65676
を      助詞,格助詞,,,,,ヲ,を,を,オ,を,オ,和,"","","","","","",格助,ヲ,ヲ,ヲ,ヲ,"","動詞%F2@0,名詞%F1,形容詞%F2@-1","",11381878116459008,41407
主      名詞,普通名詞,一般,,,,シュ,主,主,シュ,主,シュ,漢,"","","","","","",体,シュ,シュ,シュ,シュ,"1","C3","",4403827570778624,16021
原料    名詞,普通名詞,一般,,,,ゲンリョウ,原料,原料,ゲンリョー,原料,ゲンリョー,漢,"","","","","","",体,ゲンリョウ,ゲンリョウ,ゲンリョウ,ゲンリョウ,"3","C2","",3235046710452736,11769
と      助詞,格助詞,,,,,ト,と,と,ト,と,ト,和,"","","","","","",格助,ト,ト,ト,ト,"","名詞%F1,動詞%F1,形容詞%F2@-1","",7099014038299136,25826
し      動詞,非自立可能,,,サ行変格,連用形-一般,スル,為る,し,シ,する,スル,和,"","","","","","",用,シ,スル,シ,スル,"0","C5","",5370298291593857,19537
た      助動詞,,,,助動詞-タ,連体形-一般,タ,た,た,タ,た,タ,和,"","","","","","",助動,タ,タ,タ,タ,"","動詞%F2@1,形容詞%F4@-2","",5948916285711041,21642
日本    名詞,固有名詞,地名,国,,,ニッポン,日本,日本,ニッポン,日本,ニッポン,固,"","","","","","",国,ニッポン,ニッポン,ニッポン,ニッポン,"3","","",7821659499274752,28455
の      助詞,格助詞,,,,,ノ,の,の,ノ,の,ノ,和,"","","","","","",格助,ノ,ノ,ノ,ノ,"","名詞%F1","",7968444268028416,28989
伝統    名詞,普通名詞,一般,,,,デントウ,伝統,伝統,デントー,伝統,デントー,漢,"","","","","","",体,デントウ,デントウ,デントウ,デントウ,"0","C2","",7089659599528448,25792
的      接尾辞,形状詞的,,,,,テキ,的,的,テキ,的,テキ,漢,"","","","","","",接尾相,テキ,テキ,テキ,テキ,"","C4","",6892847018156544,25076
な      助動詞,,,,助動詞-ダ,連体形-一般,ダ,だ,な,ナ,だ,ダ,和,"","","","","","",助動,ナ,ダ,ナ,ダ,"","名詞%F1","",6299110739157697,22916
駄      接頭辞,,,,,,ダ,駄,駄,ダ,駄,ダ,漢,"","","","","","",接頭,ダ,ダ,ダ,ダ,"","P2","",6301034884506112,22923
菓子    名詞,普通名詞,一般,,,,カシ,菓子,菓子,カシ,菓子,カシ,漢,"カ濁","基本形","","","","",体,カシ,カシ,カシ,カシ,"1","C1","",1758677472256512,6398
です    助動詞,,,,助動詞-デス,終止形-一般,デス,です,です,デス,です,デス,和,"","","","","","",助動,デス,デス,デス,デス,"","形容詞%F2@-1,動詞%F2@0,名詞%F2@1","",7051468750332587,25653
。      補助記号,句点,,,,,,。,。,,。,,記号,"","","","","","",補助,,,,,"","","",6880571302400,25
EOS

実際に形態素解析を行うときには、いくつかのフィールドを取り出して使うことが多いと思います。例えば、surfaceとpos1、lemmaを取り出すには次のようにします。


from fugashi import Tagger

tagger = Tagger()
text = '麩菓子は、麩を主原料とした日本の伝統的な駄菓子です。'
for word in tagger(text):
    print(f'{word.surface} {word.feature.pos1}, {word.feature.lemma}')

麩 名詞, 麩
菓子 名詞, 菓子
は 助詞, は
、 補助記号, 、
麩 名詞, 麩
を 助詞, を
主 名詞, 主
原料 名詞, 原料
と 助詞, と
し 動詞, 為る
た 助動詞, た
日本 名詞, 日本
の 助詞, の
伝統 名詞, 伝統
的 接尾辞, 的
な 助動詞, だ
駄 接頭辞, 駄
菓子 名詞, 菓子
です 助動詞, です
。 補助記号, 。

また、形態素解析の結果をpandas.DataFramneにするには次のようにすると簡単に行えます。


import pandas as pd
from fugashi import Tagger

tagger = Tagger()
text = '麩菓子は、麩を主原料とした日本の伝統的な駄菓子です。'
df = pd.DataFrame([word.feature._asdict() for word in tagger(text)])
print(df)

    pos1   pos2 pos3 pos4   cType   cForm  lForm lemma orth   pron orthBase pronBase goshu iType iForm fType fForm iConType fConType type   kana kanaBase   form formBase aType                   aConType aModType                lid lemma_id
0     名詞   普通名詞   一般    *       *       *      フ     麩    麩      フ        麩        フ     漢    フ濁   基本形     *     *        *        *    体      フ        フ      フ        フ     0                         C3        *  17839859662201344    64901
1     名詞   普通名詞   一般    *       *       *     カシ    菓子   菓子     カシ       菓子       カシ     漢    カ濁   基本形     *     *        *        *    体     カシ       カシ     カシ       カシ     1                         C1        *   1758677472256512     6398
2     助詞    係助詞    *    *       *       *      ハ     は    は      ワ        は        ワ     和     *     *     *     *        *        *   係助      ハ        ハ      ハ        ハ     *    動詞%F2@0,名詞%F1,形容詞%F2@-1        *   8059703733133824    29321
3   補助記号     読点    *    *       *       *      *     、    、      *        、        *    記号     *     *     *     *        *        *   補助      *        *      *        *     *                          *        *      6605693395456       24
4     名詞   普通名詞   一般    *       *       *    フスマ     麩    麩    フスマ        麩      フスマ     和     *     *     *     *        *        *    体    フスマ      フスマ    フスマ      フスマ   0,3                         C2        *  18052890040082944    65676
5     助詞    格助詞    *    *       *       *      ヲ     を    を      オ        を        オ     和     *     *     *     *        *        *   格助      ヲ        ヲ      ヲ        ヲ     *    動詞%F2@0,名詞%F1,形容詞%F2@-1        *  11381878116459008    41407
6     名詞   普通名詞   一般    *       *       *     シュ     主    主     シュ        主       シュ     漢     *     *     *     *        *        *    体     シュ       シュ     シュ       シュ     1                         C3        *   4403827570778624    16021
7     名詞   普通名詞   一般    *       *       *  ゲンリョウ    原料   原料  ゲンリョー       原料    ゲンリョー     漢     *     *     *     *        *        *    体  ゲンリョウ    ゲンリョウ  ゲンリョウ    ゲンリョウ     3                         C2        *   3235046710452736    11769
8     助詞    格助詞    *    *       *       *      ト     と    と      ト        と        ト     和     *     *     *     *        *        *   格助      ト        ト      ト        ト     *      名詞%F1,動詞%F1,形容詞%F2@-1        *   7099014038299136    25826
9     動詞  非自立可能    *    *    サ行変格  連用形-一般     スル    為る    し      シ       する       スル     和     *     *     *     *        *        *    用      シ       スル      シ       スル     0                         C5        *   5370298291593857    19537
10   助動詞      *    *    *   助動詞-タ  連体形-一般      タ     た    た      タ        た        タ     和     *     *     *     *        *        *   助動      タ        タ      タ        タ     *          動詞%F2@1,形容詞%F4@-2        *   5948916285711041    21642
11    名詞   固有名詞   地名    国       *       *   ニッポン    日本   日本   ニッポン       日本     ニッポン     固     *     *     *     *        *        *    国   ニッポン     ニッポン   ニッポン     ニッポン     3                          *        *   7821659499274752    28455
12    助詞    格助詞    *    *       *       *      ノ     の    の      ノ        の        ノ     和     *     *     *     *        *        *   格助      ノ        ノ      ノ        ノ     *                      名詞%F1        *   7968444268028416    28989
13    名詞   普通名詞   一般    *       *       *   デントウ    伝統   伝統   デントー       伝統     デントー     漢     *     *     *     *        *        *    体   デントウ     デントウ   デントウ     デントウ     0                         C2        *   7089659599528448    25792
14   接尾辞   形状詞的    *    *       *       *     テキ     的    的     テキ        的       テキ     漢     *     *     *     *        *        *  接尾相     テキ       テキ     テキ       テキ     *                         C4        *   6892847018156544    25076
15   助動詞      *    *    *   助動詞-ダ  連体形-一般      ダ     だ    な      ナ        だ        ダ     和     *     *     *     *        *        *   助動      ナ        ダ      ナ        ダ     *                      名詞%F1        *   6299110739157697    22916
16   接頭辞      *    *    *       *       *      ダ     駄    駄      ダ        駄        ダ     漢     *     *     *     *        *        *   接頭      ダ        ダ      ダ        ダ     *                         P2        *   6301034884506112    22923
17    名詞   普通名詞   一般    *       *       *     カシ    菓子   菓子     カシ       菓子       カシ     漢    カ濁   基本形     *     *        *        *    体     カシ       カシ     カシ       カシ     1                         C1        *   1758677472256512     6398
18   助動詞      *    *    *  助動詞-デス  終止形-一般     デス    です   です     デス       です       デス     和     *     *     *     *        *        *   助動     デス       デス     デス       デス     *  形容詞%F2@-1,動詞%F2@0,名詞%F2@1        *   7051468750332587    25653
19  補助記号     句点    *    *       *       *      *     。    。      *        。        *    記号     *     *     *     *        *        *   補助      *        *      *        *     *                          *        *      6880571302400       25

surfaceも追加する必要がある場合は、次のようにします。


import pandas as pd
from fugashi import Tagger

tagger = Tagger()
text = '麩菓子は、麩を主原料とした日本の伝統的な駄菓子です。'
df = pd.DataFrame([{'surface': word.surface} | word.feature._asdict() for word in tagger(text)])
print(df)

   surface  pos1   pos2 pos3 pos4   cType   cForm  lForm lemma orth   pron orthBase pronBase goshu iType iForm fType fForm iConType fConType type   kana kanaBase   form formBase aType                   aConType aModType                lid lemma_id
0        麩    名詞   普通名詞   一般    *       *       *      フ     麩    麩      フ        麩        フ     漢    フ濁   基本形     *     *        *        *    体      フ        フ      フ        フ     0                         C3        *  17839859662201344    64901
1       菓子    名詞   普通名詞   一般    *       *       *     カシ    菓子   菓子     カシ       菓子       カシ     漢    カ濁   基本形     *     *        *        *    体     カシ       カシ     カシ       カシ     1                         C1        *   1758677472256512     6398
2        は    助詞    係助詞    *    *       *       *      ハ     は    は      ワ        は        ワ     和     *     *     *     *        *        *   係助      ハ        ハ      ハ        ハ     *    動詞%F2@0,名詞%F1,形容詞%F2@-1        *   8059703733133824    29321
3        、  補助記号     読点    *    *       *       *      *     、    、      *        、        *    記号     *     *     *     *        *        *   補助      *        *      *        *     *                          *        *      6605693395456       24
4        麩    名詞   普通名詞   一般    *       *       *    フスマ     麩    麩    フスマ        麩      フスマ     和     *     *     *     *        *        *    体    フスマ      フスマ    フスマ      フスマ   0,3                         C2        *  18052890040082944    65676
5        を    助詞    格助詞    *    *       *       *      ヲ     を    を      オ        を        オ     和     *     *     *     *        *        *   格助      ヲ        ヲ      ヲ        ヲ     *    動詞%F2@0,名詞%F1,形容詞%F2@-1        *  11381878116459008    41407
6        主    名詞   普通名詞   一般    *       *       *     シュ     主    主     シュ        主       シュ     漢     *     *     *     *        *        *    体     シュ       シュ     シュ       シュ     1                         C3        *   4403827570778624    16021
7       原料    名詞   普通名詞   一般    *       *       *  ゲンリョウ    原料   原料  ゲンリョー       原料    ゲンリョー     漢     *     *     *     *        *        *    体  ゲンリョウ    ゲンリョウ  ゲンリョウ    ゲンリョウ     3                         C2        *   3235046710452736    11769
8        と    助詞    格助詞    *    *       *       *      ト     と    と      ト        と        ト     和     *     *     *     *        *        *   格助      ト        ト      ト        ト     *      名詞%F1,動詞%F1,形容詞%F2@-1        *   7099014038299136    25826
9        し    動詞  非自立可能    *    *    サ行変格  連用形-一般     スル    為る    し      シ       する       スル     和     *     *     *     *        *        *    用      シ       スル      シ       スル     0                         C5        *   5370298291593857    19537
10       た   助動詞      *    *    *   助動詞-タ  連体形-一般      タ     た    た      タ        た        タ     和     *     *     *     *        *        *   助動      タ        タ      タ        タ     *          動詞%F2@1,形容詞%F4@-2        *   5948916285711041    21642
11      日本    名詞   固有名詞   地名    国       *       *   ニッポン    日本   日本   ニッポン       日本     ニッポン     固     *     *     *     *        *        *    国   ニッポン     ニッポン   ニッポン     ニッポン     3                          *        *   7821659499274752    28455
12       の    助詞    格助詞    *    *       *       *      ノ     の    の      ノ        の        ノ     和     *     *     *     *        *        *   格助      ノ        ノ      ノ        ノ     *                      名詞%F1        *   7968444268028416    28989
13      伝統    名詞   普通名詞   一般    *       *       *   デントウ    伝統   伝統   デントー       伝統     デントー     漢     *     *     *     *        *        *    体   デントウ     デントウ   デントウ     デントウ     0                         C2        *   7089659599528448    25792
14       的   接尾辞   形状詞的    *    *       *       *     テキ     的    的     テキ        的       テキ     漢     *     *     *     *        *        *  接尾相     テキ       テキ     テキ       テキ     *                         C4        *   6892847018156544    25076
15       な   助動詞      *    *    *   助動詞-ダ  連体形-一般      ダ     だ    な      ナ        だ        ダ     和     *     *     *     *        *        *   助動      ナ        ダ      ナ        ダ     *                      名詞%F1        *   6299110739157697    22916
16       駄   接頭辞      *    *    *       *       *      ダ     駄    駄      ダ        駄        ダ     漢     *     *     *     *        *        *   接頭      ダ        ダ      ダ        ダ     *                         P2        *   6301034884506112    22923
17      菓子    名詞   普通名詞   一般    *       *       *     カシ    菓子   菓子     カシ       菓子       カシ     漢    カ濁   基本形     *     *        *        *    体     カシ       カシ     カシ       カシ     1                         C1        *   1758677472256512     6398
18      です   助動詞      *    *    *  助動詞-デス  終止形-一般     デス    です   です     デス       です       デス     和     *     *     *     *        *        *   助動     デス       デス     デス       デス     *  形容詞%F2@-1,動詞%F2@0,名詞%F2@1        *   7051468750332587    25653
19       。  補助記号     句点    *    *       *       *      *     。    。      *        。        *    記号     *     *     *     *        *        *   補助      *        *      *        *     *                          *        *      6880571302400       25