--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NMeCab.Extension
+{
+ public static class FeatureExtension
+ {
+ /// <summary>
+ /// 素性情報の指定番目の値を取得する
+ /// </summary>
+ public static string GetFeatureItem(this MeCabNode node, int index)
+ {
+ return node.Feature.GetCsvItem(index);
+ }
+
+ /// <summary>
+ /// CSV文字列の指定番目の値を取得する
+ /// </summary>
+ private static string GetCsvItem(this string csvRow, int index)
+ {
+ if (string.IsNullOrEmpty(csvRow)) return null;
+
+ string[] items = csvRow.Split(',');
+ if (items.Length <= index) return null;
+
+ return items[index];
+ }
+ }
+}
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NMeCab.Extension.IpaDic
+{
+ public static class IpaDicFeatureExtension
+ {
+ /// <summary>
+ /// 品詞を取得
+ /// </summary>
+ public static string GetPartsOfSpeech(this MeCabNode node)
+ {
+ return node.GetFeatureItem(0);
+ }
+
+ /// <summary>
+ /// 品詞細分類1を取得
+ /// </summary>
+ public static string GetPartsOfSpeechSection1(this MeCabNode node)
+ {
+ return node.GetFeatureItem(1);
+ }
+
+ /// <summary>
+ /// 品詞細分類2を取得
+ /// </summary>
+ public static string GetPartsOfSpeechSection2(this MeCabNode node)
+ {
+ return node.GetFeatureItem(2);
+ }
+
+ /// <summary>
+ /// 品詞細分類3を取得
+ /// </summary>
+ public static string GetPartsOfSpeechSection3(this MeCabNode node)
+ {
+ return node.GetFeatureItem(3);
+ }
+
+ /// <summary>
+ /// 活用形を取得
+ /// </summary>
+ public static string GetConjugatedForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(4);
+ }
+
+ /// <summary>
+ /// 活用型を取得
+ /// </summary>
+ public static string GetInflection(this MeCabNode node)
+ {
+ return node.GetFeatureItem(5);
+ }
+
+ /// <summary>
+ /// 活用型を取得
+ /// </summary>
+ public static string GetOriginalForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(6);
+ }
+
+ /// <summary>
+ /// 読みを取得
+ /// </summary>
+ public static string GetReading(this MeCabNode node)
+ {
+ return node.GetFeatureItem(7);
+ }
+
+ /// <summary>
+ /// 発音を取得
+ /// </summary>
+ public static string GetPronounciation(this MeCabNode node)
+ {
+ return node.GetFeatureItem(8);
+ }
+ }
+}
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NMeCab.Extension.UniDic
+{
+ public static class UniDicFeatureExtension
+ {
+ /// <summary>
+ /// 品詞大分類を取得
+ /// </summary>
+ public static string GetPos1(this MeCabNode node)
+ {
+ return node.GetFeatureItem(0);
+ }
+
+ /// <summary>
+ /// 品詞中分類を取得
+ /// </summary>
+ public static string GetPos2(this MeCabNode node)
+ {
+ return node.GetFeatureItem(1);
+ }
+
+ /// <summary>
+ /// 品詞小分類を取得
+ /// </summary>
+ public static string GetPos3(this MeCabNode node)
+ {
+ return node.GetFeatureItem(2);
+ }
+
+ /// <summary>
+ /// 品詞細分類を取得
+ /// </summary>
+ public static string GetPos4(this MeCabNode node)
+ {
+ return node.GetFeatureItem(3);
+ }
+
+ /// <summary>
+ /// 活用型を取得
+ /// </summary>
+ public static string GetCType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(4);
+ }
+
+ /// <summary>
+ /// 活用形を取得
+ /// </summary>
+ public static string GetCForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(5);
+ }
+
+ /// <summary>
+ /// 語彙素読みを取得
+ /// </summary>
+ public static string GetLForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(6);
+ }
+
+ /// <summary>
+ /// 語彙素(語彙素表記+ 語彙素細分類)を取得
+ /// </summary>
+ public static string GetLemma(this MeCabNode node)
+ {
+ return node.GetFeatureItem(7);
+ }
+
+ /// <summary>
+ /// 書字形出現形を取得
+ /// </summary>
+ public static string GetOrth(this MeCabNode node)
+ {
+ return node.GetFeatureItem(8);
+ }
+
+ /// <summary>
+ /// 発音形出現形を取得
+ /// </summary>
+ public static string GetPron(this MeCabNode node)
+ {
+ return node.GetFeatureItem(9);
+ }
+
+ /// <summary>
+ /// 書字形基本形を取得
+ /// </summary>
+ public static string GetOrthBase(this MeCabNode node)
+ {
+ return node.GetFeatureItem(10);
+ }
+
+ /// <summary>
+ /// 発音形基本形を取得
+ /// </summary>
+ public static string GetPronBase(this MeCabNode node)
+ {
+ return node.GetFeatureItem(11);
+ }
+
+ /// <summary>
+ /// 語種を取得
+ /// </summary>
+ public static string GetGoshu(this MeCabNode node)
+ {
+ return node.GetFeatureItem(12);
+ }
+
+ /// <summary>
+ /// 語頭変化型を取得
+ /// </summary>
+ public static string GetIType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(13);
+ }
+
+ /// <summary>
+ /// 語頭変化形を取得
+ /// </summary>
+ public static string GetIForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(14);
+ }
+
+ /// <summary>
+ /// 語末変化型を取得
+ /// </summary>
+ public static string GetFType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(15);
+ }
+
+ /// <summary>
+ /// 語末変化形を取得
+ /// </summary>
+ public static string GetFForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(16);
+ }
+
+ public static string GetKana(this MeCabNode node)
+ {
+ return node.GetFeatureItem(17);
+ }
+
+ public static string GetKanaBase(this MeCabNode node)
+ {
+ return node.GetFeatureItem(18);
+ }
+
+ public static string GetForm(this MeCabNode node)
+ {
+ return node.GetFeatureItem(19);
+ }
+
+ public static string GetFormBase(this MeCabNode node)
+ {
+ return node.GetFeatureItem(20);
+ }
+
+ public static string GetIConType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(21);
+ }
+
+ public static string GetFConType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(22);
+ }
+
+ public static string GetAType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(23);
+ }
+
+ public static string GetAConType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(24);
+ }
+
+ public static string GetAModType(this MeCabNode node)
+ {
+ return node.GetFeatureItem(25);
+ }
+ }
+}