備忘録

備忘録

漢字をひらがな、漢字をカタカナに変換する方法

Ⅰ. はじめに

タイトルの通り「漢字をひらがな、漢字をカタカナに変換する方法」です。

Ⅱ. やり方

1. 必要なパッケージをインストールする

MeCab

dotnet add package MeCab.DotNet --version 0.0.40

Kanaxs.cs
https://archive.md/YyDNR

2. サンプルプログラムを書く
using MeCab;

namespace Test
{
  class Program
  {
    /// <summary>
    /// 漢字→カタカナ
    /// </summary>
    static string KanjiToKatakana(string str)
    {
      var sb = new StringBuilder();
      using var tagger = MeCabTagger.Create();

      foreach (var node in tagger.ParseToNodes(str))
      {
        if (node.CharType > 0)
        {
          var features = node.Feature.Split(',');
          if (features.Length > 8)
          {
            var yomiKatakana = features[8];
            sb.Append(yomiKatakana);
          }
        }
      }

      return sb.ToString();
    }

    /// <summary>
    /// 漢字→ひらがな
    /// </summary>
    static string KanjiToHiragana(string str)
    {
      var sb = new StringBuilder();
      using var tagger = MeCabTagger.Create();

      foreach (var node in tagger.ParseToNodes(str))
      {
        if (node.CharType > 0)
        {
          var features = node.Feature.Split(',');
          if (features.Length > 8)
          {
            var yomiKatakana = features[8];
            var yomiHiragana = CSharp.Japanese.Kanaxs.Kana.ToHiragana(yomiKatakana);
            sb.Append(yomiHiragana);
          }
        }
      }

      return sb.ToString();
    }

    static void Main(string[] args)
    {
      Console.WriteLine(KanjiToKatakana("私の名前は田中太郎です。宜しくお願いします。"));
      Console.WriteLine(KanjiToHiragana("私の名前は田中太郎です。宜しくお願いします。"));
    }
  }
}

実行結果

ワタシノナマエワタナカタローデス。ヨロシクオネガイシマス。
わたしのなまえわたなかたろーです。よろしくおねがいします。