2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

お疲れ様です。たなしょです。
今回は形態素解析使用してもう少しカノジョとの会話のバリエーションを増やしたいと思います。
今回はその導入です。

MeCab

MeCabという形態素解析を行ってくれるツールを導入します。
MeCabの説明はこちらになります。
形態素解析の説明はこちらになります。

英語の場合は品詞でスペースが空きますが、日本語は品詞がつながっているのでMeCabで品詞ごとに取り出して判別させるためにMeCabを使います。

形態素解析するクラスをつくる

形態素解析するクラスを作成します。

1.形態素と品詞情報を分割してを格納しています。
tagger.ParseToNodes(input)は形態素解析を実行して、形態素オブジェクトを取り出しています。
形態素解析では割と公式みたいな感じで出てきます。

public static List<string[]> Analyze(string input)
{
     var tagger = MeCabTagger.Create();
     List<string[]> result = new();

     foreach (var node in tagger.ParseToNodes(input))
     {
         if (node.CharType > 0)
         {
             string[] surface_feature = new string[] {
                 node.Surface,
                 node.Feature
             };
             result.Add(surface_feature);
         }
     }
     return result;
}

2.名詞でかつ[一般、固有名詞、サ変接続、形容動詞語幹]の品詞が出現したらパターンマッチしたとします。

public static Match KeyWordCHeck(string part)
{
    Regex rgx = new("名詞,(一般|固有名詞|サ変接続|形容動詞語幹)");
    Match m = rgx.Match(part);
    return m;
}

最後に

今日は短いですがここで終わりしたいと思います。
明日は本日作ったAnalyzerクラスを使ってパターン辞書に登録していく処理を作っていきます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?