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


#1.NMeCab ver0.10.2について
この記事は、以下に示した記事の続きです。

https://qiita.com/kenichiro_ayaki/items/6372aab15fee5a8d84bd

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

https://ccd.ninjal.ac.jp/unidic/about_unidic

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

#3.MeCabUniDic21Taggerの 基礎的な使い方

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


```c#:
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をダウンロードして解凍してください。

https://ccd.ninjal.ac.jp/unidic/back_number#unidic_cwj

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

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

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

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

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

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

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

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


```