Windows Vistaで漢字から読み仮名を取得するプログラムを作ろうとしています。


入力 漢字が入っている文字列型
出力 漢字の読み仮名が入っている文字列型の配列

変換され終わってる文字列が対象です。
(テキストファイルから読み込んだ漢字でも使えるということです)

WindowsXPではImmGetConversionListを使うことで達成できていましたが、
VistaではImmGetConversionListは利用不可能になり、
TSFを使うことになるという記述は見かけるのですが実装までたどり着けません。

C#,C,C++,VB.NETのいずれがの言語を手段として目的が達成できる実装を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/06/13 20:25:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント60pt

ご質問とは違ったアプローチですが、形態素解析エンジンをご利用になってみてはいかがでしょうか。

OSやIMEのバージョンに依存することなく「読み」を取得することができます。


形態素解析エンジンは、入力した自然文を単語に分解することを目的としていますが、分解された単語の読み仮名を出力することができます。

たとえば、「MeCab」はオープンソースの形態素解析エンジンで、C/C++ ライブラリが付属しています。


もちろん、完全な形態素解析はできませんから、読みが間違っている場合もあります。その場合は、重み付けを変更したり、ユーザー辞書を追加することで、より精度を高めることができます。

id:sarusaruru

ありがとうございます。

形態素解析は使ったことがありますが、今回の目的には速度面とバイナリ配布の制約(ライセンスや容量)の点で使えません。

形態素解析で読みは出てましたね・・・思いつきませんでした。

2008/06/07 15:33:14
  • id:taknt
    ExcelのVBAを 使うと フリガナは取得しやすいが、当然、そのフリガナがあってるのかどうかは知らない。
  • id:sarusaruru
    ExcelVBAのGetPhonetic関数ですね。
    知りませんでした。
    今回の目的には使えませんが、知識として参考になりました。
    ありがとうございます。


    フリガナは100%の確実性を求めるわけではなく
    ImmGetConversionListのときと同等でかまいません。
  • id:pahoo
    Yahoo!JAPANが形態素解析のWebAPIを公開しているので、それを使うPHPスクリプトを作ってみました。下記サイトをご覧ください。ご参考まで。
    http://www.pahoo.org/e-soul/webtech/php06/php06-12-01.shtm

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません