形態素解析エンジンNMeCab ver.0.10.2によるUniDic2.1の利用


1.NMeCab ver0.10.2について

この記事は、以下に示した記事の続きです。

2.UniDicについて

UniDicとは、国立国語研究所の規定した斉一(せいいつ)な言語単位(短単位)と、 階層的見出し構造に基づく電子化辞書および、その実装としてのリレーショナルデータベースと、そのデータベースからエクスポートされた短単位をエントリ(見出し語)とする、形態素解析器MeCab用の解析用辞書の総称です。

 NMeCab ver0.10.2は、UniDic ver.2.1 及び ver.2.2 に対応したクラスを有しておりますので、以下にそれを紹介いたします。

3.MeCabUniDic21Taggerの 基礎的な使い方

MeCabUniDic21Taggerクラスを生成したのち、文字列を Parse関数で解析すると、
MeCabIpaDicNodeの配列が返り値として戻されます。
これの表層形/読み/品詞/品詞細分類1-3/活用形/活用型/原形/読み/発音を取り出して処理します。

using System;
using NMeCab.Specialized;

class Program
{
    static void Main()
    {
        System.Reflection.Assembly executionAsm = System.Reflection.Assembly.GetExecutingAssembly();
        string executingPath = System.IO.Path.GetDirectoryName(new Uri(executionAsm.CodeBase).LocalPath);
        String dicDir = executingPath + @"\..\..\..\..\unidic-mecab-2.1.2_bin"; // 辞書のパス

        using (MeCabUniDic21Tagger tagger = MeCabUniDic21Tagger.Create(dicDir)) // IPAdic形式用のTaggerインスタンスを生成
        {
            MeCabUniDic21Node[] nodes = tagger.Parse("私の名前は中野です。"); // 形態素解析を実行
            foreach (MeCabUniDic21Node node in nodes) // 形態素ノード配列を順に処理
            {
                Console.WriteLine($"表層形:{node.Surface}");
                Console.WriteLine($"品詞大分類:{node.Pos1}"); // 個別の素性
                Console.WriteLine($"品詞中分類:{node.Pos2}"); // 〃
                Console.WriteLine($"品詞小分類:{node.Pos3}"); // 〃
                Console.WriteLine($"品詞細分類:{node.Pos4}"); // 〃
                Console.WriteLine($"活用型:{node.CType}"); // 〃
                Console.WriteLine($"活用形:{node.CForm}");    // 〃
                Console.WriteLine($"語彙素読み:{node.LForm}");        // 〃
                Console.WriteLine($"語彙素 :{node.Lemma}");      // 〃
                Console.WriteLine($"書字形出現形:{node.Orth}");    // 〃
                Console.WriteLine($"発音形出現形:{node.Pron}");    // 〃
                Console.WriteLine($"書字形基本形:{node.OrthBase}");    // 〃
                Console.WriteLine($"発音形基本形:{node.PronBase}");    // 〃
                Console.WriteLine($"語種 :{node.Goshu}");    // 〃
                Console.WriteLine($"語頭変化型:{node.IType}");    // 〃
                Console.WriteLine($"語頭変化形:{node.IForm}");    // 〃
                Console.WriteLine($"語末変化型:{node.FType}");    // 〃
                Console.WriteLine($"語末変化形:{node.FForm}");    // 〃
                Console.WriteLine($"仮名形出現形:{node.Kana}");    // 〃

                Console.WriteLine($"仮名形基本形:{node.KanaBase}");    // 〃
                Console.WriteLine($"語形出現形:{node.Form}");    // 〃
                Console.WriteLine($"語形基本形:{node.FormBase}");    // 〃
                Console.WriteLine($"語頭変化結合形:{node.IConType}");    // 〃
                Console.WriteLine($"語末変化結合形:{node.FConType}");    // 〃
                Console.WriteLine($"アクセント型 :{node.AType}");    // 〃
                Console.WriteLine($"アクセント結合型 :{node.AConType}");    // 〃
                Console.WriteLine($"アクセント修飾型 :{node.AModType}");    // 〃
                Console.WriteLine();
            }
        }
        Console.Read();
    }
}

なお、辞書としては、以下のページからunidic-mecab-2.1.2_bin.zipをダウンロードして解凍してください。

 上記プログラムの出力は以下です。ipadicに対して和語、漢語などの種別情報が追加されています。

表層形:私
品詞大分類:代名詞
品詞中分類:*
品詞小分類:*
品詞細分類:*
活用型:*
活用形:*
語彙素読み:ワタクシ
語彙素 :私-代名詞
書字形出現形:私
発音形出現形:ワタクシ
書字形基本形:私
発音形基本形:ワタクシ
語種 :和
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:ワタクシ
仮名形基本形:ワタクシ
語形出現形:ワタクシ
語形基本形:ワタクシ
語頭変化結合形:*
語末変化結合形:*
アクセント型 :0
アクセント結合型 :*
アクセント修飾型 :*

表層形:の
品詞大分類:助詞
品詞中分類:格助詞
品詞小分類:*
品詞細分類:*
活用型:*
活用形:*
語彙素読み:ノ
語彙素 :の
書字形出現形:の
発音形出現形:ノ
書字形基本形:の
発音形基本形:ノ
語種 :和
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:ノ
仮名形基本形:ノ
語形出現形:ノ
語形基本形:ノ
語頭変化結合形:*
語末変化結合形:*
アクセント型 :*
アクセント結合型 :名詞%F1
アクセント修飾型 :*

表層形:名前
品詞大分類:名詞
品詞中分類:普通名詞
品詞小分類:一般
品詞細分類:*
活用型:*
活用形:*
語彙素読み:ナマエ
語彙素 :名前
書字形出現形:名前
発音形出現形:ナマエ
書字形基本形:名前
発音形基本形:ナマエ
語種 :和
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:ナマエ
仮名形基本形:ナマエ
語形出現形:ナマエ
語形基本形:ナマエ
語頭変化結合形:*
語末変化結合形:*
アクセント型 :0
アクセント結合型 :C2
アクセント修飾型 :*

表層形:は
品詞大分類:助詞
品詞中分類:係助詞
品詞小分類:*
品詞細分類:*
活用型:*
活用形:*
語彙素読み:ハ
語彙素 :は
書字形出現形:は
発音形出現形:ワ
書字形基本形:は
発音形基本形:ワ
語種 :和
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:ハ
仮名形基本形:ハ
語形出現形:ハ
語形基本形:ハ
語頭変化結合形:*
語末変化結合形:*
アクセント型 :*
アクセント結合型 :動詞%F2@0,名詞%F1,形容詞%F2@-1
アクセント修飾型 :*

表層形:中野
品詞大分類:名詞
品詞中分類:固有名詞
品詞小分類:地名
品詞細分類:一般
活用型:*
活用形:*
語彙素読み:ナカノ
語彙素 :ナカノ
書字形出現形:中野
発音形出現形:ナカノ
書字形基本形:中野
発音形基本形:ナカノ
語種 :固
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:ナカノ
仮名形基本形:ナカノ
語形出現形:ナカノ
語形基本形:ナカノ
語頭変化結合形:*
語末変化結合形:*
アクセント型 :0
アクセント結合型 :*
アクセント修飾型 :*

表層形:です
品詞大分類:助動詞
品詞中分類:*
品詞小分類:*
品詞細分類:*
活用型:助動詞-デス
活用形:終止形-一般
語彙素読み:デス
語彙素 :です
書字形出現形:です
発音形出現形:デス
書字形基本形:です
発音形基本形:デス
語種 :和
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:デス
仮名形基本形:デス
語形出現形:デス
語形基本形:デス
語頭変化結合形:*
語末変化結合形:*
アクセント型 :*
アクセント結合型 :形容詞%F2@-1,動詞%F2@0,名詞%F2@1
アクセント修飾型 :*

表層形:。
品詞大分類:補助記号
品詞中分類:句点
品詞小分類:*
品詞細分類:*
活用型:*
活用形:*
語彙素読み:
語彙素 :。
書字形出現形:。
発音形出現形:
書字形基本形:。
発音形基本形:
語種 :記号
語頭変化型:*
語頭変化形:*
語末変化型:*
語末変化形:*
仮名形出現形:
仮名形基本形:
語形出現形:
語形基本形:
語頭変化結合形:*
語末変化結合形:*
アクセント型 :*
アクセント結合型 :*
アクセント修飾型 :*