Edge, Chrome, Safari, Firefox推奨
UniDicのロゴ

Q 解析用UniDicを使ったMeCabの出力結果の見方がよくわかりません。
  どの列に何の情報が入っているのでしょうか?

現代書き言葉UniDicと現代話し言葉UniDicではVer.2.2.0以降、 MeCabの-Overboseオプションを使うことで、 出力結果のフィールド前部に列名を併記することができます。

ダウンロードした解析用UniDicのフォルダの中にある「dicrc」というファイルをメモ帳などのテキストエディタで開いてみてください。 そこに、「node-format」「unk-format」という行が(セミコロン「;」でコメントアウトされずに)記述してあれば、 そこがMeCabの出力列を設定している箇所です。

node-format = %m\t%f[9]\t%f[6]\t%f[7]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format = %m\t%m\t%m\t%m\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n

イコール(=)の右側が出力列のテンプレートで、f[]内の数字に対応する列名は下のように、dicrc上部に書かれています(書いてない場合もあります)。 なので、2つを照らし合わせることで、MeCab出力列の名前を知ることができます。 (-Okeyオプションを使っている場合は、適宜対応する「node-format-key」「unk-format-key」の行を見てください)

; List of features
; f[0]:  pos1
; f[1]:  pos2
; f[2]:  pos3
; f[3]:  pos4
; f[4]:  cType
; f[5]:  cForm
; f[6]:  lForm
; f[7]:  lemma
; f[8]:  orth
; f[9]:  pron
; f[10]: orthBase
; f[11]: pronBase
; f[12]: goshu
; f[13]: iType
; f[14]: iForm
; f[15]: fType
; f[16]: fForm

また、上記フォーマットの詳細はMeCabの公式ページを参照してください。

また、「node-format」「unk-format」の行がないか、コメントアウトされている場合、「rewrite.def」というファイルの上部に書かれている列名の順番で出力されています。

# node:
# $1: pos1
# $2: pos2
# $3: pos3
# $4: pos4
# $5: cType
# $6: cForm
# $7: lForm
# $8: lemma
# $9: orth
# $10: pron
# $11: orthBase
# $12: pronBase
# $13: goshu
# $14: iType
# $15: iForm
# $16: fType
# $17: fForm
# unk:
# $1: pos1
# $2: pos2
# $3: pos3
# $4: pos4
# $5: cType
# $6: cForm

もしそれでもわからない時は、「こおりつけ!」という文字列を解析してみてください。

こおりつけ!
こおりつけ    動詞,一般,*,*,五段-カ行,命令形,コオリツク,凍り付く,こおりつけ,コーリツケ,コオリツケ,和,こおりつく,コーリツク,コオリツク,コオリツク,*,*,*,*,*,*,4,C1,*
!    補助記号,句点,*,*,*,*,,!,!,,,記号,!,,,,*,*,*,*,*,*,*,*,*
EOS

「動詞」から始まる4列は品詞大分類~細分類です。 また、動詞は活用するので「五段-カ行」という活用型、「命令形」という活用形が続いていることがわかります。 次の「コオリツク,凍り付く」は「凍り付く」という表記から、「語彙素」だとわかり、 語彙素には必ず「語彙素読み」を隣接出力しているので、左隣の「コオリツク」が語彙素読みだとわかります。 「こおりつけ」,「コーリツケ」,「コオリツケ」はそれぞれ「書字形出現形」、「発音形出現形」、「仮名形出現形」です。 発音形と仮名形はいずれも片仮名表記されますが、「凍り」の仮名形は「コオリ」で、発音形だと「コーリ」と長音記号を使って表記されるので、容易に区別できます。 「和」は語種で、そのあとに書字形、発音形、仮名形の「基本形」が並んでいます。直後の「コオリツク」は「語形基本形」です。

Q 列名の英語と日本語の対応関係がわかりません。

次のようになります。

pos品詞
pos1品詞大分類
pos2品詞中分類
pos3品詞小分類
pos4品詞細分類
cType活用型
cForm活用形
lForm語彙素読み
lemma語彙素(+語彙素細分類)
orth, orthToken書字形出現形
orthBase書字形基本形
pron, pronToken発音形出現形
pronBase発音形基本形
kana, kanaToken仮名形出現形
kanaBase仮名形基本形
goshu, wType語種
lType語彙素類
form語形出現形
formBase語形基本形
iType語頭変化化型
iForm語頭変化形
iConType語頭変化結合型
fType語末変化化型
fForm語末変化形
fConType語末変化結合型
lid語彙表ID
lemma_id語彙素ID

Q 英語論文にUniDicのことを書きたいのですが、
UniDic用語の正式な英語訳を教えてください。

日本語英語備考
解析用UniDicthe analysis dictionary for the morphological analizer MeCab (UniDicMA)
言語単位lexical unit(s)Wikipedia
最小単位smallest lexical unit(s)
短単位Short Unit Word(s) (SUW)
長単位Long Unit Word(s) (LUW)
階層的な見出し構造hierarchical definition of word indexes
品詞part of speech
活用型conjugation type (cType)
活用形conjugation form (cForm)
サ変可能can take s-root irregular unlabel suffix
......

Q 語頭変化とか、語末変化とかってなんですか?

こちらをご参照ください。

Q アクセントの出力結果をどう読めばいいかわかりません。
あの記号の意味は何ですか?

こちらをご参照ください。

Q 解析用UniDicのライセンスについて教えてください

本サイトで公開している解析用UniDicのライセンスには、 クリエイティブ・コモンズ・ライセンス(CC BY-NC-SA)と フリーライセンス(GPL/LGPL/BSD Licenseのトリプルライセンス)の2種があります。

クリエイティブ・コモンズ・ライセンスには 「表示(BY)」「継承(SA)」「非営利(NC)」「改変禁止(ND)」の4つの利用規約があり、 著作者はその4つを任意に組み合わせて自身の著作物に付与することができます。
本サイトで使用している組み合わせは「表示-非営利-継承(CC BY-NC-SA)」で、

  • 表示(BY): 当該辞書を使った成果物にはクレジット (「著作者名」「データ元へのリンク or URL」「成果物が元の著作者に帰属するしていること」) を記述すること

  • 非営利(NC): 当該辞書を営利目的に使用することを禁止する (ただし、相談に応じて使用を許可する場合もあるため、 下記の宛先より商用利用に関するご質問も受け付けています)

  • 継承(SA): 当該辞書を使った成果物には当該辞書と同じライセンス (つまり、「CC BY-NC-SA」) を付与する必要がある (クレジットも継承する)

という意味を持っています。

ライセンスの継承は、ソフトウェア開発に使用し公開する場合、 解析用UniDicに同梱されているライセンスファイル群(AUTHORS, LICENSE)を パッケージングしてください。

それ以外、Webアプリケーションや印刷物の作成などに使用した場合は、 AUTHORSに記載された著作者と成果物のライセンスが「CC BY-NC-SA」であることを明示してください。

例えばUniDic-manyo_1603を利用した成果物の場合、以下のようなクレジットと、 成果物のライセンスが「CC BY-NC-SA」であることを明示します。

記載例:
本成果物は次の著作者によるソフトウェアを使用しています: The UniDic Consortium「UniDic-manyo_1603」 (https://clrd.ninjal.ac.jp/unidic/

フリーライセンスの解析用UniDicは、 GPL/LGPL/BSDのトリプルライセンスとなっており、 その中のいずれか1つ、もしくはいずれかの組み合わせを選択して適用すればよくなっています。
詳しくは各ライセンスの条項を参照してもらえばよいですが、一番緩いものはBSDライセンスで、

  • 著作権表示: ソフトウェア開発に使用し公開する場合、 解析用UniDic中のライセンスファイル群(BSD, AUTHORS)をパッケージングすること。 Webアプリケーションや印刷物の製作などに使用した場合は、 AUTHORSに記載された著作者と、使用した解析用UniDicのライセンスがBSDであることを明示すること

  • 無保証: 使用した解析用UniDicに関して、作成組織、作成者は、何ら責任を負わない。 また書面による許可なしに、成果物の"宣伝や販促"に、ライセンス記載の組織名などを使うことは禁止。

注意すべき点として、上記の解析用UniDicのライセンスはいずれも、 解析用UniDic自体に付随するものであり、 解析用UniDicを使った自動解析結果に関しては、 解析結果が直接的に成果物として公開される場合を除き、 解析用UniDicを使用した旨、使用した解析用UniDicの種類とそのバージョンを記述するだけで問題ありません。
これには論文やWeb上での記事執筆等での使用も含まれます。
ただし出版物のような商用目的での利用では、 成果物中で解析結果の占める割合や解析用UniDicの貢献度にもよるため、 判断のつかない場合は本ページ下部の宛先までご連絡ください。

Q 解析用UniDicの語彙のサイズはどのようにカウントしているのですか?

解析用UniDic 3.0 からは辞書の規模を明示するため、以下のような情報をREADME中に記載しています。

【1-1】 辞書のキー(lex.csvファイルの1列目:MeCab辞書のキー, 表層系(surface))を NFKC正規化(ver.2.3.0追加)したエントリ(lex.csv中の行)を "含む" 延べ短単位数

解析用UniDicの語彙ファイル:lex.csv の行数に一致するため、その値を出力している。

【1-2】 辞書のキーをNFKC正規化したエントリを "除いた" 延べ短単位数

NFKC正規化したキーのエントリ(lex.csvファイル中の行)は解析用UniDic作成時に "追加(置き換えではない)" しており、 UniDicDBには存在しない。
そのため、NFKC正規化前後のキーのエントリには 同一の語彙表ID(lid)が格納されている(lex.csvファイルの後ろから2列目)。
よって【1-2】はlidのlex.csvファイル中のlidのuniq数(異なり数)に等しい。

【1-3】 辞書のキーをNFKC正規化した表記を "含む"  階層的な見出し構造を考慮しない表層形の異なり数 (語彙素や語形は異なるが表層形が同一となるエントリをまとめて"1"と数えた時の表層形の数:MeCab辞書のキーの異なり数)

lex.csvファイルの1列目がMeCab辞書のキーとして扱われるため、 その"異なり数"を調べればよい。

【2-1】 (階層的な見出し構造を考慮した)書字形出現形数

階層的な見出し構造によると、 書字形出現形は語彙素(語彙素(lemma)+語彙素読み(lForm)+語彙素類(lType)) +語形基本形(formBase)の 下位要素であり、発音形は書字形と 同一階層に配置される
そのため【2-1】をカウントするためにはビット列表現したlid中の発音形SubID部分(8bit)を 0でマスク(「00000000」に置換)したうえで、そのuniq数を調べればよい。

【2-2】 (階層的な見出し構造を考慮した)発音形出現形数

【2-1】とは反対に、lid中の書字形SubID部分(8bit)を0でマスクしたうえで、 そのuniq数を調べればよい。

【2-3】 (階層的な見出し構造を考慮した)語形出現形数

lid中の書字形SubID部分と発音形SubID部分をいずれも0でマスクしたうえで、 そのuniq数を調べればよい。

【2-4】 (階層的な見出し構造を考慮した)書字形基本形数

ビット列表現したlidにおいて出現形は、 語頭変化形ID(4bit)、語末変化形ID(4bit)、活用形ID(9bit)の17ビットを用いた 基本形からの派生として表現されており、 同一基本形下の出現形同士はこの3種のIDで識別されている。
そのため【2-4】は、lid中の語頭変化形ID、語末変化形ID、活用形ID、 および発音形SubIdを0でマスクした上でそのuniq数を調べればよい。

【2-5】 (階層的な見出し構造を考慮した)発音形基本形数

【2-4】と同様に、lid中の語頭変化形ID、語末変化形ID、活用形ID、 および書字形SubIdを0でマスクした上でそのuniq数を調べればよい。

【2-6】 (階層的な見出し構造を考慮した)語形基本形数

lid中の語頭変化形ID、語末変化形ID、活用形ID、および書字形SubId、発音形SubIdを 0でマスクした上でそのuniq数を調べればよい。

【3-1】 語彙素数

lidと同じく、lex.csvファイルの後ろから1列目に格納されている 語彙素ID(lemma_id)も NFKC正規化の影響を受けない(正規化前後の2つのエントリで同一)。
そのため、lex.csvファイル中のlemma_idのuniq数を調べればよい。

以上を実装したスクリプトを公開しています。

https://github.com/teru-oka-1933/unidic_ma_factory

https://github.com/teru-oka-1933/unidic_ma_factory/blob/master/ph8_count_suw.py