質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

14378閲覧

python ローマ字をひらがなに変換 pykakashi

goki_gottan

総合スコア168

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2019/07/01 13:04

ローマ字表記をひらがな、または漢字へ変換したいです。
変換したい文字がローマ字表記ならば、ローマ字をひらがなへ変換というコードを書きました。

from pykakasi import kakasi kakasi = kakasi() kakasi.setMode('a', 'H') # a(ローマ字) to H(Hiragana) conv = kakasi.getConverter() d_1="syokuji" if d_1.isalpha()==True:   d_1=conv.do(d_1) print(d_1)

ですが、ローマ字のままです。
ご教示いただけないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Pykakasiってto convert Kana-Kanji Japanese clauses into Roman-Kanaなので逆はできないかと。
ローマ字→かなは、ローマ字をかなに変換したい(願望)(Python)Pythonでひらがな/カタカナとローマ字を相互に変換するあたりが参考になりそうです。
かな→漢字は、mecab-skkservを使い自力でサーバを立てるかGoogle CGI API for Japanese Inputを利用するとできるかと思います。
ちなみにローマ字⇔ひらがな⇔漢字かな交じり文 変換はおそらく上記の技術を組み合わせて作っているようです。

raccyさんの回答を参考に簡単に組んでみました。かな→漢字は複数の候補が返ります。

Python

1import romkan 2import requests 3import urllib.parse 4 5def toKanji(s): 6 s = romkan.to_hiragana(s) 7 s = urllib.parse.quote(s.encode('utf-8')) 8 url = 'http://www.google.com/transliterate?langpair=ja-Hira|ja&text={}'.format(s) 9 res = requests.get(url) 10 return res.text 11 12print(toKanji('syokuji')) # [["しょくじ",["食事","食餌","しょくじ","植字","食時"]]] 13print(toKanji('momomosumomomomomonouchi')) # [["ももも",["ももも","桃も","モモも","腿も","モモモ"]],["すももも",["すももも","スモモも","李も","酢桃も","寿桃も"]],[" ももの",["ももの","桃の","モモの","腿の","股の"]],["うち",["うち","家","内","ウチ","打ち"]]]

投稿2019/07/01 13:28

編集2019/07/14 02:32
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki_gottan

2019/07/01 21:21

拝見させていただきましたが、ライブラリーがないという事なんですかね? 手打ちでここまで書かないといけないのでしょうか?
can110

2019/07/14 00:25

ライブラリという形ではないようですね。 手打ちしなくてもコードをコピペして自身でモジュール化なりすればよいかと思います。
goki_gottan

2019/07/14 07:27

すみません。こちらベスト回答ですね。あれからご回答いただけていなかったので、たいへん失礼いたします。
guest

0

ベストアンサー

できそうなのを見つけました。

さらに漢字にするにはIMEと同じことをする必要があります。普段使っているIMEの推測が正確ではないことからもわかるように、**正確な漢字を割り当てるのははほぼ無理です。**前後の文脈がわかるような長文を大量に機械学習させたAIに噛ませればより正確にできるかも知れませんが、すでにそれを実施しているSiri、Alexa、Cortana、Google Assistant等の音声応答システムでも度々間違えてしまいます。逆に言えば、そのレベルで十分であれば、Siri、Alexa、Cortana、Google Assistant等と同じことをすれば良いとなります。同じものを用意するには大企業並の資金が必要ですが、音声読み上げしてGoogleのCloud Speech-to-Textに投げると言ったものであれば、それほどお金はかからないと思います。ただ、ローマ字には音声と違ってイントネーションなどがないため、情報量不足でより不正確になると思います。

なお、PalZaxsonさんは検索するとライブラリがいくつでもみつかると言っていますが、キーワードが悪かったのか、Google検索では全く見つけられませんでした。仕方がないのでPyPIで"romaji"や"kana"のキーワードで探しましたが、関係無いライブラリもひっかかり、どれが使えるかがすぐにわかりませんでした。PalZaxsonさんはノーヒントで簡単にみつかるようなことを言っていましたが、私にはとても難しかったです。すごい技術のある人はなんでも簡単にできて凄いなーと思いました。


ついでに、どうやってそこまで辿り着いたかを書いておきます。

  1. 「ローマ字 かな 変換 Python」と言ったキーワードでGoogle検索しても、カナ->ローマ字変換の話か、自分でリスト作ってライブラリにする話しか引っかからず、該当するようなライブラリが見つけられない。
  2. PyPIであるならPyPIで検索できるはずと思いつく。英語じゃなきゃ行けないかなと思って"roma"で検索すると、全く関係無いライブラリばかりが引っかかる。
  3. そういや、Rubyにもそんなライブラリがあったなーと思って、「ローマ字 かな 変換 Ruby」でググった結果、romajiを見つける。
  4. RubyGemsでromajiを検索するにはどうすべきを確認していると"roma"では同じく駄目で、"romaji"や"kana"だとうまく引っかかることがわかる。
  5. PyPIに戻って"romaji"や"kana"で検索して、引っかかったものの説明を一通り確認していく。全く関係無いものは概要でわかるけど、カナ->ローマ字しかできないものもあって、区別するには詳しい説明文を読まないといけない。他にもPython3に対応しているかの記述の確認もあって、ちょっと苦労する。
  6. 説明文からできそうな物をピックアップ。

私のような凡人レベルでは、これぐらい苦労してしまいました。こんなこともせずに一発で簡単に検索できる人はやはりかなり凄いレベルの人なんでしょうね。

投稿2019/07/14 01:50

編集2019/07/14 07:21
raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/07/14 06:52

pyokakaですが、ライブラリとしても使えます。 というのもpyokakaは私がこの質問へのエア回答として作ったものだからです。
raccy

2019/07/14 07:20

さらっと見たとき、ライブラリとして使う例文がなかったので…って、今見たら見逃していたっぽいです。
goki_gottan

2019/07/14 07:23

ありがとうございます。色々と試してみます。
guest

0

せめて検索するぐらいはしてください
ライブラリなどいくらでもあります

投稿2019/07/03 14:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki_gottan

2019/07/03 22:03

調べましたが分かりません。
退会済みユーザー

退会済みユーザー

2019/07/04 08:34 編集

「なに」が「どう」わからないのですか? ライブラリが検索しても出てこないということならば それは検索方法がおかしいだけなので私は何も回答できません
goki_gottan

2019/07/13 09:54

すみません。そもそもの回答になっておりません。 要するに、ないという事ですね?
退会済みユーザー

退会済みユーザー

2019/07/13 12:23

ありますが?
goki_gottan

2019/07/13 16:38

あるとおっしゃっておりますので、そのライブラリーが何というかご存知という事ですか? それでしたらご教示ください。そもそもこのやりとりは、そのライブラリー名をご教示いただければ終わる話です。
goki_gottan

2019/07/13 16:40

逆にご教示いただけない程、難しいものなのでしょうか?私にはわかりません。 違う方法を見つけました解決しましたので、知らないのならご回答いただけなくて結構です。
退会済みユーザー

退会済みユーザー

2019/07/13 19:35 編集

検索できないほど難しいことなのでしょうかねぇ 見つけたのならば利用規約に従って 解決した方法を書いて自分をベストアンサーにしましょうね
Zuishin

2019/07/14 03:08

「ひらがなまたは漢字に変換」の意味が違うのではないですか? 私は質問を読んでこの部分に違和感を持ち、「ひらがなに直したい(漢字でも可)」ととりましたが、それだと「漢字に直したい」とは、難易度が大きく変わってきます。 両者ともに自分が思う仕様を正確に書いてみては?
goki_gottan

2019/07/14 07:13

Zuishinさん、ありがとうございます。 双方とも思考ベクトルが異なった論議ならば、そもそもの根底からおかしくなりますね? 私が求めているもは、Zuishinさんがおっしゃっているように、ローマ字⇒ひらがな(かな、漢字可)です。 しかし、もっと求めているものはそれができるかどうかで、仮に漢字ができなかった場合でも、まずは「かな」に変換し、次に「かな」⇒「漢字」に変換するという2段階のプロセスをご教示いただければよかった訳です。 つまり、回答として、「かな」ならできるけど、その場合はこのライブラリーを使って・・・そして「漢字」にするならばこのライブラリーを使ってという、回答をいただければ済む話かと思っておりました。
goki_gottan

2019/07/14 07:16

PalZaxsonさん、親切でない方にわざわざこちらから教えることはありますでしょうか。 知らず、逆に知りたいのでしたら、何も書かないで欲しかったです。 私の場合は、ライブラリー検索することができず、Googleを使用しました。Googleが予測してくれました。
Zuishin

2019/07/14 07:58

親切であろうがなかろうが、解決した時にはその方法を共有するのがここのルールです。今回はベストアンサーがあるのでこの限りではありませんが、自己解決の場合は必ず解決法を書いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問