Morikatron Engineer Blog

モリカトロン開発者ブログ

漢字をひらがな・カタカナ・ローマ字に変換!mecab-unidic-NEologdを活用したPythonパッケージの紹介


こんにちは。モリカトロン AI エンジニアの山田です。

はじめに

今回は、自作のPythonパッケージ yakinori について紹介したいと思います。

このパッケージは、漢字の文字列をひらがな、カタカナ、またはローマ字に変換する機能を提供しています。

さらに、mecab-unidic-NEologdと組み合わせることで、より豊富な読みを取得することができます。

なお、このパッケージでは、標準の読みに加えて、発音も表示可能です。

※ライセンスはMITです。

(ちなみにパッケージ名のyakinori=焼き海苔は作者の好物なだけです。)

mecab-unidic-NEologdとは?

mecab-unidic-NEologdは、MeCab用の辞書データで、新語や固有名詞なども含まれています。

これを用いることで、通常の辞書では変換できないような単語も正確に変換することが可能になります。

Pythonパッケージの機能

  • 漢字をひらがなに変換

    • 入力された漢字文字列をひらがなに変換します。
    • 例: 幽☆遊☆白書は最高の漫画です => ゆうゆうはくしょはさいこうのまんがです
  • 漢字をカタカナに変換

    • 入力された漢字文字列をカタカナに変換します。
    • 例: 幽☆遊☆白書は最高の漫画です => ユウユウハクショハサイコウノマンガデス
  • 漢字をローマ字に変換

    • 入力された漢字文字列をローマ字に変換します。
    • 例: 幽☆遊☆白書は最高の漫画です => yuuyuuhakushohasaikounomangadesu
  • ひらがな、カタカナ、ローマ字の発音を表示

    • 漢字の発音も取得して表示します。例えば「〜は〇〇です」の「は」は「わ」に変換します。
    • 例: 幽☆遊☆白書は最高の漫画です => ゆーゆーはくしょわさいこーのまんがです

ちなみにMecabのデフォルト辞書の場合は「幽☆遊☆白書」が登録されていないので、「幽」は「かそけ」と読まれます。

コード

コード全文はこちらにありますので良ければご覧ください。
github.com

インストール

pipでインストールする場合

$ pip install yakinori 

Dockerを使う場合

$ docker pull yakinori
$ docker run -it --name yakinori yakinori /bin/bash

インスタンス作成

>>> from yakinori import Yakinori
>>> yakinori = Yakinori()
# example:
# >>> yakinori = Yakinori(dic_path="/usr/local/lib/mecab/dic/mecab-unidic-neologd")
>>> sentence = "幽☆遊☆白書は最高の漫画です"
>>> parsed_list = yakinori.get_parsed_list(sentence)

読みを取得する

# convert to hiragana(平仮名に変換)
>>> hiragana_sentence = yakinori.get_hiragana_sentence(parsed_list)
>>> print(hiragana_sentence)
ゆうゆうはくしょはさいこうのまんがです

# convert to katakana(カタカナに変換)
>>> katakana_sentence = yakinori.get_katakana_sentence(parsed_list)
>>> print(katakana_sentence)
ユウユウハクショハサイコウノマンガデス

# convert to Latin alphabet(ローマ字に変換)
>>> roma_sentence = yakinori.get_roma_sentence(parsed_list)
>>> print(roma_sentence)
yuuyuuhakushohasaikounomangadesu

発音を取得する

# convert to hiragana(平仮名に変換)
>>> hiragana_sentence = yakinori.get_hiragana_sentence(parsed_list, is_hatsuon=True)
>>> print(hiragana_sentence)
ゆーゆーはくしょわさいこーのまんがです

# convert to katakana(カタカナに変換)
>>> katakana_sentence = yakinori.get_katakana_sentence(parsed_list, is_hatsuon=True)
>>> print(katakana_sentence)
ユーユーハクショワサイコーノマンガデス

# convert to Latin alphabet(ローマ字に変換)
>>> roma_sentence = yakinori.get_roma_sentence(parsed_list, is_hatsuon=True)
>>> print(roma_sentence)
yuーyuーhakushowasaikoーnomangadesu

まとめ

今回は、漢字をひらがな、カタカナ、ローマ字に変換するPythonパッケージを紹介しました。
mecab-unidic-NEologdを活用することで、より豊富な読みを取得することができるため、日本語処理において便利です。ぜひ一度お試しください。

また「こうした方が便利」などのフィードバックを頂ければ嬉しいです。