以下、読み付与装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、キーワードの入力に対して、読み辞書を検索し、読み候補の情報(読み情報という)を取得し、キーワードと読み情報をキーとして文書群(例えば、Web上のホームページの集合)を検索し、キーワードと読み候補の共起数を取得し、その共起数を用いて、出力する読み情報を決定し、当該読み情報を出力する読み付与装置1について説明する。
また、本実施の形態の読み付与装置1において、通常、キーワードを分割し、分割文字列を取得し、当該分割文字列を用いて読み辞書を検索し、読み候補の情報(読み情報という)を取得する。そして、当該分割文字列と読み候補の共起数を取得し、その共起数を用いて、出力する読み情報を決定し、当該読み情報を出力する。なお、キーワードが所定の長さ以上の場合は、分割は行わない処理についても説明する。また、本実施の形態の読み付与装置1において、通常、キーワードの切断数の少ないものから順に処理を行い、読めた切断数で処理を停止するものについて説明する。
また、本実施の形態の読み付与装置1において、読み情報は、主として、ひらがなを用いる。また、本実施の形態の読み付与装置1において、あらかじめ決められた文字(例えば、「ヴ」)を含む場合は、読み情報はカタカナとする。
また、本実施の形態の読み付与装置1において、アラビア数字の場合、桁付き数字の読みを生成し、候補に追加する処理について説明する。また、アルファベットの場合、ローマ字読みを追加する処理について説明もする。
さらに、共起数を用いて、分割キーワードごとに順位付けし、当該順位を用いて、予め決められた個数の読み候補を得るについて説明する。
図1は、本実施の形態における読み付与装置1を含むシステムの概念図である。本システムは、読み辞書装置2、サーバ装置3を含む。読み辞書装置2は、用語を受け付け、当該用語に対応する読み情報を出力する。出力される読み情報は、2以上でも良い。また、出力される読み情報が存在しない場合もあり得る。読み辞書装置2は、読み辞書を格納している。読み辞書は、用語と、当該用語の読みを示す読み情報を有する用語読み情報を2以上格納している辞書である。サーバ装置3は、1以上の文書の集合である文書群を格納している。文書群は、例えば、Web上のホームページや、新聞記事の集合などである。また、文書群を構成する文書は、HTMLやXMLやSGMLなどの記述言語で記載されていても良いし、テキストデータでも良いし、データベースを構成するテーブルやレコードなどでも良い。つまり、文書群を構成する文書のデータ構造やフォーマット等は問わない。また、読み付与装置1、読み辞書装置2、およびサーバ装置3は、インターネット等のネットワーク4により接続されている。
また、図1において、読み付与装置1は、読み辞書装置2やサーバ装置3を含んでいないが、含んでいても良い。
図2は、本実施の形態における読み付与装置1のブロック図である。読み付与装置1は、受付部11、読み辞書検索部12、共起頻度取得部13、出力部14を具備する。
読み辞書検索部12は、キーワード分割手段121、読み情報取得手段122、変換手段123、アラビア数字処理手段124、アルファベット処理手段125を具備する。
共起頻度取得部13は、共起頻度取得手段131、スコア算出手段132を具備する。
受付部11は、キーワードを受け付ける。キーワードとは、文字列、という程度の意味である。キーワードは、単語、複数の単語からなる複合語、単語や複合語を含む文章でも良い。なお、受付部11が文章を受け付けた場合、単語(複合語を含む)に区切って、後述する読み情報を取得する処理を行うことは好適である。また、キーワードは、通常、名詞であるが、動詞や形容詞などの他の品詞の文字列でも良い。ここで、受け付けとは、ユーザからの入力受付、他の処理部(モジュール)からの受付、他の装置からの受信、記憶媒体(ハードディスク、DVD、FDなど問わない)からの読み込みなどである。キーワードの入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部11は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
読み辞書検索部12は、読み辞書に対して、対象文字列を用いて検索し、2以上の読み情報を取得する。読み辞書は、2以上の用語読み情報を格納している。用語読み情報は、用語と、読み情報を有する。読み情報とは、対応する用語の読みを示す情報である。用語読み情報は、例えば、用語「成田」と読み情報「なりた」を有する。読み辞書は、読み付与装置1が保持していても良いし、外部の装置(読み辞書装置2)が保持していても良い。また、読み辞書は、1種類でも良いし、2種類以上でも良い。読み辞書は、例えば、一般辞書、連濁辞書、人名辞書のうちの1以上の辞書である。一般辞書は、例えば、地名辞書、国語辞書、漢和辞書、カタカナ英単語辞書などから構成されている。対象文字列とは、受付部11が受け付けたキーワードまたは2以上の各分割文字列である。分割文字列は、受付部11が受け付けたキーワードを分割した文字列である。分割文字列の取得(分割)は、後述するキーワード分割手段121が行う。また、読み辞書検索部12が行う検索は、例えば、読み辞書装置2が保持している検索エンジンに対して、対象文字列を渡し、読み辞書装置2から読み情報を得る処理である。検索エンジンは、読み辞書検索部12が有しても良いし、他の装置が有しても良いし、図示しない他の処理部であっても良い。
読み辞書検索部12は、通常、MPUやメモリ等から実現され得る。読み辞書検索部12の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
キーワード分割手段121は、受付部11が受け付けたキーワードを1文字以上の単位で分割し、分割した文字列である2以上の分割文字列を取得する。キーワード分割手段121は、受付部11が受け付けたキーワードの文字列長を取得し、当該文字列長が予め決められた文字列長より大きい、または予め決められた文字列長以上の場合には、キーワードの分割を行わないことは好適である。
また、キーワード分割手段121は、切断数N(Nは0以上)の少ない場合から(つまり、「0」「1」「2」と順に)、受付部11が受け付けたキーワードを1文字以上の単位で分割し、分割した文字列である1以上の分割文字列を取得し、読み情報取得手段122からの終了指示があるまで、キーワードの分割を繰り返すことは好適である。そして、キーワードを分割して得た分割文字列を読み情報取得手段122に渡す。なお、切断数N=0の場合は、キーワード分割手段121は、キーワードの分割を行わないことを示す。
キーワード分割手段121は、通常、MPUやメモリ等から実現され得る。キーワード分割手段121の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
読み情報取得手段122は、読み辞書に対して、対象文字列を用いて検索し、2以上の読み情報を取得する。なお、読み辞書は、用語と、当該用語の読みを示す読み情報を有する用語読み情報を2以上格納している。また、読み情報取得手段122は、2以上の各分割文字列に一致する用語と対になる1以上の読み情報を、読み辞書から、分割文字列ごとに検索し、分割文字列と読み情報を有する取得対象文字列読み情報を、2以上取得する。また、読み情報取得手段122は、キーワードの分割を行わない場合、受付部11が受け付けたキーワードと一致する用語と対になる1以上の読み情報を、読み辞書から取得する。
読み情報取得手段122は、キーワード分割手段121が取得した1以上の各分割文字列に一致する用語と対になる1以上の読み情報を、読み辞書から、分割文字列ごとに取得しようとする。そして、読み情報取得手段122は、1以上の分割文字列のすべてに対応する読み情報が取得できなかった場合には、キーワード分割手段121に対して、次に分割のパターンである2以上の分割文字列を取得するように指示する。そして、読み情報取得手段122は、1以上の分割文字列のすべてに対応する読み情報が取得できた場合には、当該1以上の分割文字列のすべてに対応する読み情報を記憶媒体に少なくとも一時格納する読み情報の取得処理を行う。そして、読み情報取得手段122は、取得処理を行った場合に、ただちに、キーワード分割手段121に終了指示を渡しても良いし、1以上の分割文字列のすべてに対応する読み情報が取得できた場合と同じ切断数の他の分割のパターンである2以上の分割文字列を、キーワード分割手段121に対して、取得するように指示し、同じ切断数の他の分割のパターンに対する読み情報の取得処理が完了した後、キーワード分割手段121に終了指示を渡す。つまり、上記処理の終了情報は、少なくとも2以上あり得る。また、考えられる数だけの分割パターンを構成し、読み情報の取得処理を行っても良い。
読み情報取得手段122は、通常、MPUやメモリ等から実現され得る。読み情報取得手段122の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変換手段123は、対象文字列がカタカナの文字列を含む場合、当該カタカナの文字列をひらがなに変換する。また、変換手段123は、カタカナの文字列が、あらかじめ決められたカタカナ(例えば、「ヴ」)を含むか否かを判断し、当該カタカナを含む場合には、カタカナをひらがなに変換しないことは好適である。
変換手段123は、通常、MPUやメモリ等から実現され得る。変換手段123の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
アラビア数字処理手段124は、対象文字列がアラビア数字を含むか否かを判断し、アラビア数字(例えば、「123」)を含む場合は、当該アラビア数字を桁付き数字とする読みを示す桁付き数字読み情報(例えば、「ひゃくにじゅうさん」)を生成し、当該桁付き数字読み情報を読み情報として加える。なお、対象文字列がアラビア数字を含むか否かの判断は、「0」から「9」までの文字を有するか否かにより可能である。また、アラビア数字から、桁付き数字読み情報を生成する処理は、公知技術である。つまり、桁数に対応する読みのルール(例えば、3桁目は「ひゃく」、2桁目は「じゅう」など)と、数値の読み方の情報(「1」は「いち」、「2」は「に」など)と、特定ルール(例えば、2桁目以降の「1」は読み方に加えない、など)を用いて、アラビア数字から、桁付き数字読み情報を生成する。アラビア数字処理手段124は、通常、MPUやメモリ等から実現され得る。アラビア数字処理手段124の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
アルファベット処理手段125は、対象文字列がアルファベットを含むか否かを判断し、アルファベットを含む場合は、当該アルファベットに対応するローマ字読みを示すローマ字読み情報を生成し、当該ローマ字読み情報を読み情報として加える。対象文字列がアルファベットを含むか否かの判断処理、アルファベットからローマ字読みの情報を生成する処理も公知技術である。また、アルファベット処理手段125は、対象文字列がアルファベットを含むか否かを判断し、アルファベットを含む場合は、当該アルファベットを1文字ずつの読み上げた場合の文字単位読み情報を生成し、当該文字単位読み情報を読み情報として加えることは好適である。つまり、アルファベット処理手段125は、対象文字列が「ABC」である場合、文字単位読み情報「えーびーしー」を生成し、読み情報として加えることは好適である。アルファベット処理手段125は、通常、MPUやメモリ等から実現され得る。アルファベット処理手段125の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
共起頻度取得部13は、対象文字列と、読み辞書検索部12が取得した読み情報を用いて、文書群を検索し、対象文字列と読み情報が共起する文書の数である共起頻度を、読み情報ごとに取得する。対象文字列と読み情報の組の情報を取得対象文字列読み情報とも言うこととする。また、言い換えれば、共起頻度取得部13は、対象文字列と、読み辞書検索部12が取得した2以上の読み情報のうちの各読み情報の組である各取得対象文字列読み情報を用いて、文書群を検索し、各取得対象文字列読み情報が有する対象文字列と読み情報が共起する文書の数である共起頻度を、読み情報ごとに取得する。ここで、文書群は、ローカルに存在してもWebなどのネットワーク上(外部)に存在しても良い。文書群は、文書の集合である。文書は、例えば、ウェブ上のホームページ、データベース内のレコード、電子メール文書など、何でも良い。共起するか否かの判断の対象となる文書は、通常、Web上の1ホームページ(1ファイル)であるが、一サイトなどの複数のファイルでも良い。取得対象文字列読み情報は、キーワードとその読み情報、または分割文字列とその読み情報である。
共起頻度取得部13は、通常、MPUやメモリ等から実現され得る。共起頻度取得部13の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
共起頻度取得手段131は、読み辞書検索部12が取得した2以上の各取得対象文字列読み情報を用いて、文書群を検索し、各取得対象文字列読み情報が有するキーワードまたは分割文字列と、読み情報が共起する文書の数である共起頻度を、取得対象文字列読み情報ごと(読み情報ごと)に取得する。
共起頻度取得手段131は、通常、MPUやメモリ等から実現され得る。共起頻度取得手段131の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スコア算出手段132は、受付部11が受け付けたキーワードまたは2以上の分割文字列を有する取得対象文字列読み情報に対応する共起頻度をパラメータして、取得対象文字列読み情報または取得対象文字列読み情報の組み合わせごとに、スコアを算出する。
スコアを算出とは、通常、共起頻度をパラメータとする増加関数による算出である。例えば、スコアの算出式は、2以上の分割文字列の各分割文字列に対応する共起頻度の総和を算出する式、各分割文字列に対応する共起頻度の平均を算出する式、各分割文字列に対応する共起頻度の中央値を取得する式などである。スコアは、そのように読むであろう確からしさ、尤度に対応した数値である、とも言える。
スコア算出手段132は、通常、MPUやメモリ等から実現され得る。スコア算出手段132の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部14は、共起頻度取得部13が取得した読み情報ごとの共起頻度を用いて、少なくとも最も共起頻度の多い読み情報、または最も共起頻度の多い読み情報の組み合わせを出力する。出力部14は、共起頻度取得部13が取得したスコアを用いて、少なくとも最も共起頻度の多い読み情報、または最も共起頻度の多い読み情報の組み合わせを出力する。出力部14は、例えば、共起頻度の多い方から、予め決められた個数(例えば、「3」)の読み情報を出力することは好適である。なお、かかる場合でも、出力部14は、3位と同スコアの4位以下の読み情報を出力することはさらに好適である。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。出力部14は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部14は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、読み付与装置の動作について図3のフローチャートを用いて説明する。
(ステップS301)受付部11は、キーワードを受け付けたか否かを判断する。キーワードを受け付ければステップS302に行き、キーワードを受け付けなければステップS301に戻る。
(ステップS302)読み辞書検索部12は、ステップS301で受け付けたキーワードを用いて、読み候補生成処理を行う。読み候補生成処理について、図4のフローチャートを用いて説明する。
(ステップS303)共起頻度取得部13の共起頻度取得手段131は、ステップS302で生成された読み情報(読み方の候補の情報)が空であるか否かを判断する。空であればステップS301に行き、空でなければステップS304に行く。なお、ステップS301に行く場合に、読み情報が出力できない旨を示すエラーメッセージを出力することは好適である。
(ステップS304)共起頻度取得手段131は、ステップS301で受け付けたキーワードと、ステップS302で取得した読み情報を用いて、文書群を検索し、キーワードと読み情報の共起頻度を取得する。なお、ステップS302で2以上の読み情報を取得した場合、共起頻度取得手段131は、各読み情報に対応して、キーワードと読み情報の共起頻度を取得する。また、ステップS302で、キーワードの読み情報(切断数0の場合の読み情報)を取得できなかった場合に、本ステップとステップS305を飛ばし、ステップS306に行っても良い。
(ステップS305)共起頻度取得部13は、ステップS304で取得された1以上の共起頻度のうち、すべての共起頻度が「0」であるか否かを判断する。すべての共起頻度が「0」であればステップS306に行き、いずれかの共起頻度が「0」でなければステップS307に行く。
(ステップS306)共起頻度取得部13は、ステップS302で取得した分割文字列に対する読み情報を用いて文書群を検索し、分割文字列に対応する共起頻度を取得する。かかる処理を分割文字列検索処理という。分割文字列検索処理について、図5のフローチャートを用いて説明する。
(ステップS307)スコア算出手段132は、ステップS306で取得した共起頻度を用いて、分割文字列の読み情報ごとにスコアを算出する。かかる処理をスコア算出処理という。スコア算出処理について、図6のフローチャートを用いて説明する。
(ステップS308)出力部14は、出力する情報を構成する。出力する情報は、最も共起頻度の多い読み情報または読み情報の組み合わせを有する。また、出力する情報は、例えば、スコア上位N個(Nは予め決められている)の読み情報または、スコア上位N個の読み情報の組み合わせからなる読み情報である。
(ステップS309)出力部14は、ステップS308で構成した情報を出力する。ステップS301に戻る。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS302の読み候補生成処理について図4のフローチャートを用いて説明する。
(ステップS401)キーワード分割手段121は、キーワードの文字数を取得する。
(ステップS402)キーワード分割手段121は、予め決められた閾値(例えば、「15」)と比較して、ステップS401で取得された文字数が所定の関係を満たすか否かを判断する。所定の関係を満たせばステップS403に行き、所定の関係を満たさなければステップS404に行く。所定の関係を満たす場合は、例えば、閾値より文字数が多い、または、文字数が閾値以上である場合である。
(ステップS403)読み情報取得手段122は、キーワードを用いて読み辞書を検索する。つまり、読み情報取得手段122は、例えば、図示しない検索処理部(検索エンジン)にキーワードを渡し、キーワードに一致する用語に対応する読み情報を得る。得られる読み情報の数は、0以上の整数である。そして、読み情報取得手段122は、得た読み情報を記憶媒体に、少なくとも一時格納する。上位処理にリターンする。
(ステップS404)キーワード分割手段121は、初期化処理を行う。初期化処理とは、カウンタiに0、カウンタjに1を代入し、終了フラグにOFF(例えば、「0」)を代入する処理である。
(ステップS405)キーワード分割手段121は、切断数iのキーワードの分割パターンが存在するか否かを判断する。この判断は、例えば、「キーワードの文字数<=i」であるか否かの判断である。切断数iの分割パターンが存在すればステップS406に行き、切断数iの分割パターンが存在しなければステップS417に行く。
(ステップS406)キーワード分割手段121は、切断数iのj番目のキーワードの分割パターンが存在するか否かを判断する。例えば、文字数5のキーワード、切断数1の場合、分割パターンは、4通りである。また、例えば、文字数5のキーワード、切断数2の場合、分割パターンは、6通りである。
(ステップS407)キーワード分割手段121は、切断数iのj番目の分割パターンにおける、すべての分割文字列を取得し、メモリ上に配置する。
(ステップS408)キーワード分割手段121は、カウンタkに1を代入する。
(ステップS409)キーワード分割手段121は、ステップS407で取得した2以上の分割文字列のうち、k番目の分割文字列が存在するか否かを判断する。k番目の分割文字列が存在すればステップS410に行き、k番目の分割文字列が存在しなければステップS415に行く。
(ステップS410)読み情報取得手段122は、k番目の分割文字列を用いて、読み辞書を検索し、0以上の読み情報を得る。ここで、例えば、読み辞書を構成する辞書が一つの場合は、キーワード分割手段121は、単純に、分割文字列をキーとして、当該分割文字列に一致する用語と対になる0以上の読み情報を得る。また、例えば、読み辞書を構成する辞書が、「一般辞書」「連濁辞書」「人名辞書」から構成される場合は、読み情報取得手段122は、例えば、「一般辞書」を検索し、読み情報が得られなかった場合は、「連濁辞書」を検索し、さらに読み情報が得られなかった場合は、「人名辞書」を検索する、という処理を行っても良い。また、例えば、読み辞書を構成する辞書が、「一般辞書」「連濁辞書」「人名辞書」から構成される場合は、読み情報取得手段122は、例えば、3つの辞書をすべて検索し、すべての対応する読み情報を取得し、メモリ上に配置しても良い。なお、「連濁辞書」を用いるのは、先頭の分割文字列でない場合である。
(ステップS411)読み情報取得手段122は、ステップS410で取得した読み情報が空(「0」)であったか否かを判断する。空であればステップS412に行き、空でなければステップS413に行く。
(ステップS412)キーワード分割手段121は、カウンタjを1、インクリメントし、ステップS406に戻る。
(ステップS413)読み辞書検索部12は、例外処理を行う。例外処理について、図7のフローチャートを用いて説明する。
(ステップS414)読み情報取得手段122は、カウンタkを1、インクリメントし、ステップS409に戻る。
(ステップS415)キーワード分割手段121は、切断数iのj番目の分割パターンと、各分割文字列における1以上の読み情報を、少なくとも一時格納する。
(ステップS416)キーワード分割手段121は、終了フラグをON(例えば、「1」)にする。ステップS412に行く。
(ステップS417)キーワード分割手段121は、終了フラグがONであるか否かを判断する。終了フラグがONであれば上位処理にリターンし、終了フラグがONでなければステップS418に行く。
(ステップS418)キーワード分割手段121は、カウンタiを1、インクリメントし、ステップS405に戻る。
なお、図4のフローチャートにおいて、ステップS401や、ステップS413等の処理は、必須ではない。
次に、ステップS306の分割文字列検索処理について図5のフローチャートを用いて説明する。
(ステップS501)共起頻度取得手段131は、カウンタiに1を代入する。
(ステップS502)共起頻度取得手段131は、i番目の分割パターンが存在するか否かを判断する。i番目の分割パターンが存在すればステップS503に行き、i番目の分割パターンが存在しなければ上位処理にリターンする。なお、分割パターンとは、図4のフローチャートのステップS415で、各分割文字列の読み情報が一時格納された2以上の分割文字列に対応する分割パターンである。分割パターンは、例えば、2以上の分割文字列を有する。
(ステップS503)共起頻度取得手段131は、カウンタjに1を代入する。
(ステップS504)共起頻度取得手段131は、i番目の分割パターンの中に、j番目の取得対象文字列読み情報が存在するか否かを判断する。取得対象文字列読み情報は、ここでは、対象文字列と読み情報を有する。j番目の取得対象文字列読み情報が存在すればステップS505に行き、j番目の取得対象文字列読み情報が存在しなければステップS509に行く。
(ステップS505)共起頻度取得手段131は、j番目の取得対象文字列読み情報が有する対象文字列と読み情報をキーとして、文書群を検索する。なお、文書群の検索とは、対象文字列と読み情報を、いわゆるWebの検索エンジンに与えて、当該検索エンジンを起動する(または、起動指示をする)ことである。
(ステップS506)共起頻度取得手段131は、ステップS505における検索の結果、j番目の取得対象文字列読み情報に対応する共起頻度を取得する。
(ステップS507)共起頻度取得手段131は、ステップS506で取得した共起頻度を、j番目の取得対象文字列読み情報に対応付けて、メモリ等に、少なくとも一時格納する。
(ステップS508)共起頻度取得手段131は、カウンタjを1、インクリメントし、ステップS504に戻る。
(ステップS509)共起頻度取得手段131は、カウンタiを1、インクリメントし、ステップS502に戻る。
次に、ステップS307のスコア算出処理について図6のフローチャートを用いて説明する。
(ステップS601)スコア算出手段132は、カウンタiに1を代入する。
(ステップS602)スコア算出手段132は、i番目の分割パターンが存在するか否かを判断する。i番目の分割パターンが存在すればステップS603に行き、i番目の分割パターンが存在しなければ上位処理にリターンする。
(ステップS603)スコア算出手段132は、カウンタjに1を代入する。
(ステップS604)スコア算出手段132は、i番目の分割パターンのうち、j番目の読み情報の組み合わせが存在するか否かを判断する。j番目の読み情報の組み合わせが存在すればステップS605に行き、存在しなければステップS609に行く。
(ステップS605)スコア算出手段132は、j番目の読み情報の組み合わせが有する各読み情報に対応するすべての共起頻度を取得する。
(ステップS606)スコア算出手段132は、ステップS605で取得した2以上の共起頻度を用いて、スコアを算出する。スコアの算出方法は、例えば、同じ分割文字列の中の共起頻度の多さの順位(数値)の和である。この場合、スコアが小さい方を優先する。
(ステップS607)スコア算出手段132は、i番目の分割パターンのj番目の読み情報の組み合わせに対応付けて、ステップS606で算出したスコアを、少なくとも一時格納する。
(ステップS608)スコア算出手段132は、カウンタjを1、インクリメントし、ステップS604に戻る。
(ステップS609)スコア算出手段132は、カウンタiを1、インクリメントし、ステップS602に戻る。
次に、ステップS413(図4)の例外処理について図7のフローチャートを用いて説明する。
(ステップS701)変換手段123は、分割文字列にカタカナを含むか否かを判断する。カタカナを含めばステップS702に行き、カタカナを含まなければステップS704に行く。
(ステップS702)変換手段123は、分割文字列に予め決められたカタカナ文字を含むか否かを判断する。予め決められたカタカナ文字を含めば上位処理にリターンし、予め決められたカタカナ文字を含まなければステップS703に行く。
(ステップS703)変換手段123は、分割文字列をひらがなに変換し、変換したひらがなの文字列を分割文字列の読み情報とする。上位処理にリターンする。
(ステップS704)アルファベット処理手段125は、分割文字列にアルファベットを含むか否かを判断する。アルファベットを含めばステップS705に行き、アルファベットを含まなければステップS707に行く。
(ステップS705)アルファベット処理手段125は、分割文字列のアルファベットの文字列を取り出し、当該文字列からローマ字読みを示すローマ字読み情報を生成し、当該ローマ字読み情報を読み情報として加える。
(ステップS706)アルファベットを含む場合は、当該アルファベットを1文字ずつの読み上げた場合の文字単位読み情報を生成し、当該文字単位読み情報を読み情報として加える。上位処理にリターンする。
(ステップS707)アラビア数字処理手段124は、分割文字列がアラビア数字を含むか否かを判断。アラビア数字を含めばステップS708に行き、アラビア数字を含まなければ上位処理にリターンする。
(ステップS708)アラビア数字処理手段124は、アラビア数字を桁付き数字とする読みを示す桁付き数字読み情報を生成し、当該桁付き数字読み情報を読み情報として加える。上位処理にリターンする。
以下、本実施の形態における読み付与装置の具体的な動作について説明する。読み付与装置1を含むシステムの概念図は図1である。
今、読み辞書として、図8から図10の辞書が与えられている、とする。図8の辞書は、一般辞書であり、例えば、地名辞書、国語辞書、漢和辞書、カタカナ英単語辞書などから作成された辞書である。また、図9の辞書は、連濁辞書であり、図8の一般辞書の語彙の中で連濁化可能な語について作成されたものである。さらに、図10は、人名辞書である。ここで、読み辞書検索部12は、まず、与えられた文字列に対して、まず、「一般辞書」を調べて、文字列と一致する用語と対になる読み情報を取得する。そして、次に、文字列がキーワードの語頭以外であれば、「連濁辞書」を調べて、文字列と一致する用語と対になる読み情報を取得し、当該取得した読み情報を追加する。そして、いずれにも無ければ、「人名辞書」を調べて、文字列と一致する用語と対になる読み情報を取得する。以上のようなアルゴリズムで、文字列に対応する読み情報を得るものとする。以下、2つの具体例を用いて、読み付与装置1の動作について説明する。
(具体例1)
まず、読み付与装置1に、キーワード「成田」が与えられた、とする。そして、受付部11は、キーワード「成田」を受け付ける。
次に、読み辞書検索部12は、以下のように読み候補生成処理を行う。つまり、まず、キーワード分割手段121は、キーワード「成田」の文字数「2」を取得する。次に、キーワード分割手段121は、予め決められた閾値(15)と比較して、取得された文字数「2」が、所定の関係(例えば、「閾値<文字数」)を満たさない、と判断する。
次に、キーワード分割手段121は、切断数0のキーワードの分割パターン「成田」を取得する。そして、読み情報取得手段122は、対象文字列「成田」をキーとして、図8から図10の読み辞書を検索する。ここでは、読み情報取得手段122は、対象文字列「成田」をキーとして、図8の読み辞書を検索する。そして、読み情報取得手段122は、「なりた」「なるだ」「なるた」を得る。
次に、例外処理(図7で説明)を行おうとするが、例外処理の対象ではない、と判断される。
そして、読み情報取得手段122は、図11に示す読み候補管理表を得る。読み候補管理表は、「分割パターン」「分割文字列」「読み情報」を有する。「分割パターン」は、分割パターンを示す情報であり、ここでは、「成田」(分割なし)や、「成田|リムジンバス|乗り場」などの切断箇所(分割箇所)に「|」が入ったキーワードの情報である。また、「分割文字列」は、ここでは、対象文字列と同意義である。さらに、「読み情報」は、対応する分割文字列の読みを示す情報である。
次に、共起頻度取得部13の共起頻度取得手段131は、生成された読み情報(読み方の候補の情報)が空でないと判断する(図11参照)。
そして、共起頻度取得手段131は、受け付けたキーワード「成田」と、取得した第一の読み情報「なりた」を用いて、文書群を検索し、キーワードと読み情報の共起頻度を取得する。つまり、ここでは、共起頻度取得手段131は、いわゆるWebの検索エンジンに「成田,なりた」を渡し、検索を実行させる。そして、共起頻度取得手段131は、検索エンジンから、文字列「成田」と文字列「なりた」の共起頻度(ここでは「116000」)を取得した、とする。そして、共起頻度取得手段131は、文字列「成田」と文字列「なりた」と、共起頻度「116000」を対にして、メモリ上に一時格納する。
次に、共起頻度取得手段131は、受け付けたキーワード「成田」と、取得した第二の読み情報「なるだ」を用いて、文書群を検索し、キーワードと読み情報の共起頻度を取得する。そして、共起頻度取得手段131は、検索エンジンから、文字列「成田」と文字列「なるだ」の共起頻度(ここでは「38400」)を取得した、とする。そして、共起頻度取得手段131は、文字列「成田」と文字列「なるだ」と、共起頻度「38400」を対にして、メモリ上に一時格納する。
さらに、共起頻度取得手段131は、受け付けたキーワード「成田」と、取得した第二の読み情報「なるた」を用いて、文書群を検索し、キーワードと読み情報の共起頻度を取得する。そして、共起頻度取得手段131は、検索エンジンから、文字列「成田」と文字列「なるた」の共起頻度(ここでは「1010」)を取得した、とする。そして、共起頻度取得手段131は、文字列「成田」と文字列「なるた」と、共起頻度「1010」を対にして、メモリ上に一時格納する。
次に、スコア算出手段132は、取得した共起頻度を用いて、分割文字列の読み情報ごとにスコアを算出する。ここでは、スコアは、順位である、とする。つまり、スコア算出手段132は、文字列「成田」と文字列「なりた」に対してスコア「1」、文字列「成田」と文字列「なるだ」に対してスコア「2」、文字列「成田」と文字列「なるた」に対してスコア「3」を得る。なお、ここでは、スコアが低いほど、読み候補として優先される。
次に、出力部14は、出力する情報を、「1.なりた,2.なるだ,3.なるた」を構成する。そして、出力部14は、「成田」に対する読み候補を優先度の高いものから2つ出力する。つまり、出力部14は、「1.なりた,2.なるだ」を出力する。なお、ここでは、出力部14は、例えば、出力する読み情報の数「2」を格納している、とする。
(具体例2)
次に、読み付与装置1に、キーワード「成田リムジンバス乗り場」が与えられた、とする。そして、受付部11は、キーワード「成田リムジンバス乗り場」を受け付ける。
次に、読み辞書検索部12は、以下のように読み候補生成処理を行う。つまり、まず、キーワード分割手段121は、キーワード「成田リムジンバス乗り場」の文字数「13」を取得する。次に、キーワード分割手段121は、予め決められた閾値(15)と比較して、取得された文字数「13」が、所定の関係(例えば、「閾値<文字数」)を満たさない、と判断する。
次に、キーワード分割手段121は、切断数0のキーワードの分割パターン「成田リムジンバス乗り場」を取得する(図12の分割パターンID=1を参照)。そして、読み情報取得手段122は、対象文字列「成田リムジンバス乗り場」をキーとして、図8から図10の読み辞書を検索する。ここでは、読み情報取得手段122は、対象文字列「成田リムジンバス乗り場」をキーとして、図8の読み辞書を検索する。そして、読み情報取得手段122は、対象文字列「成田リムジンバス乗り場」に対応する読み情報を取得できない。
次に、キーワード分割手段121は、切断数1のキーワードの分割パターンを取得する。つまり、まず、キーワード分割手段121は、切断数1の第一の分割パターン「成|田リムジンバス乗り場」を取得する(図12の分割パターンID=2を参照)。「成|田リムジンバス乗り場」とは、分割文字列「成」と分割文字列「田リムジンバス乗り場」を意味する。
そして、読み情報取得手段122は、分割文字列「成」を用いて、図8から図10の読み辞書を検索するが、読み情報を得られない。
次に、キーワード分割手段121は、分割文字列「成」では読み情報を得られないとの情報を読み情報取得手段122の処理結果から得て、分割文字列「成田」と分割文字列「リムジンバス乗り場」を取得する(図12の分割パターンID=3を参照)。
そして、読み情報取得手段122は、分割文字列「成田」を用いて、図8から図10の読み辞書を検索し、図8の読み辞書から、読み情報「なりた」「なるだ」「なるた」を得る。
次に、読み情報取得手段122は、分割文字列「リムジンバス乗り場」を用いて、図8から図10の読み辞書を検索するが、読み情報を得られない。
そして、同様に、キーワード分割手段121は、図12の分割パターンID「4」から「11」までの分割文字列を順に取得する。そして、順に、キーワード分割手段121が取得した分割文字列を用いて、読み情報取得手段122は、読み辞書を検索するが、読み情報を得られない。
次に、キーワード分割手段121は、切断数2のキーワードの分割パターンを取得する。つまり、まず、キーワード分割手段121は、切断数1の第一の分割パターン「成田|リ|ムジンバス乗り場」を取得する(図12の分割パターンID=12を参照)。
次に、読み情報取得手段122は、分割文字列「成田」については、読み情報「なりた」「なるだ」「なるた」を得る。しかし、読み情報取得手段122は、分割文字列「リ」について、図8から図10の読み辞書を検索するが、読み情報を得られない。
以上の処理を、図12の分割パターンID「13」から「16」まで繰り返すが、各分割パターンについて、すべての分割文字列の読み情報を得るには至らない。
そして、キーワード分割手段121は、分割パターン「成田|リムジンバス|乗り場」を取得する(図12の分割パターンID=17を参照)。
次に、読み情報取得手段122は、分割文字列「成田」については、読み情報「なりた」「なるだ」「なるた」を得る。そして、読み情報取得手段122は、分割文字列「リムジンバス」については、読み情報「りむじんばす」を得る。さらに、分割文字列「乗り場」については、「のりば」「のりじょう」を得る。つまり、読み情報取得手段122は、図13に示す読み情報管理表を取得し、メモリ上に配置する。読み情報管理表は、読み候補を管理している表であり、「分割文字列」と「読み情報」を有する。なお、分割文字列「成田」、「乗り場」について、例外処理の対象とはならない。また、変換手段123は、分割文字列「リムジンバス」について、予め決められた文字列「ヴ」を含まないと判断し、「リムジンバス」をひらがな「りむじんばす」に変換する。なお、この変換処理は、行わなくても良い。読み情報「りむじんばす」が既に取得されているからである。また、図8の読み辞書に「リムジンバス,りむじんばす」が存在しない場合、カタカナをひらがなに変換する例外処理が機能する。
次に、キーワード分割手段121は、切断数2の他の分割パターンを順に取得する。キーワード分割手段121は、例えば、「成田|リムジンバス乗|り場」、「成田|リムジンバス乗り|場」、「成田リ|ム|ジンバス乗り場」、「成田リム|ジ|ンバス乗り場」、「成田リムジ|ン|バス乗り場」、「成田リムジン|バ|ス乗り場」などを順に取得する。そして、読み情報取得手段122は、各分割パターンが有するすべての分割文字列の読み情報が取得できるか判断し、すべての分割文字列の読み情報が取得できる分割パターンが、「成田|リムジンバス|乗り場」以外に存在しない、と判断する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の1番目の対象文字列「成田」の読み情報「なりた」を取得する。
次に、共起頻度取得手段131は、1番目の取得対象文字列読み情報が有する対象文字列「成田」と読み情報「なりた」を、検索エンジン(検索エンジンは問わない。)に渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。なお、共起頻度取得手段131は、検索エンジンのAPI(例えば、search())に対して、「成田」「なりた」を引数として与え、実行する(例えば、search(成田,なりた)を実行する)。そして、共起頻度取得手段131は、「成田」「なりた」の、Web上の文書群における共起頻度「116000」を取得する。そして、共起頻度取得手段131は、「成田,なりた,116000」をメモリ上に配置する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の1番目の対象文字列「成田」の2番目の読み情報「なるだ」を取得する。そして、共起頻度取得手段131は、用語「成田」「なるだ」を検索エンジンに渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。そして、共起頻度取得手段131は、「成田」「なるだ」の、Web上の文書群における共起頻度「38400」を取得する。そして、共起頻度取得手段131は、「成田,なるだ,38400」をメモリ上に配置する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の1番目の対象文字列「成田」の3番目の読み情報「なるた」を取得する。そして、共起頻度取得手段131は、用語「成田」「なるた」を検索エンジンに渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。そして、共起頻度取得手段131は、「成田」「(検索エンジンは問わない。)」の、Web上の文書群における共起頻度「1010」を取得する。そして、共起頻度取得手段131は、「成田,なるた,1010」をメモリ上に配置する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の2番目の対象文字列「リムジンバス」の読み情報「りむじんばす」を取得する。そして、共起頻度取得手段131は、用語「リムジンバス」「りむじんばす」を検索エンジンに渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。そして、共起頻度取得手段131は、「リムジンバス」「りむじんばす」の、Web上の文書群における共起頻度「61900」を取得する。そして、共起頻度取得手段131は、「リムジンバス,りむじんばすだ,61900」をメモリ上に配置する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の3番目の対象文字列「乗り場」の1番目の読み情報「のりば」を取得する。そして、共起頻度取得手段131は、用語「乗り場」「のりば」を検索エンジンに渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。そして、共起頻度取得手段131は、「乗り場」「のりば」の、Web上の文書群における共起頻度「62500」を取得する。そして、共起頻度取得手段131は、「乗り場,のりば,62500」をメモリ上に配置する。
次に、共起頻度取得手段131は、1番目の分割パターン「成田|リムジンバス|乗り場」の中の3番目の対象文字列「乗り場」の2番目の読み情報「のりじょう」を取得する。そして、共起頻度取得手段131は、用語「乗り場」「のりじょう」を検索エンジンに渡し、検索エンジンを動作させることにより、Web上の文書群(ここでは、ホームページ)を検索する。そして、共起頻度取得手段131は、「乗り場」「のりじょう」の、Web上の文書群における共起頻度「1」を取得する。そして、共起頻度取得手段131は、「乗り場,のりじょう,1」をメモリ上に配置する。
次に、スコア算出手段132は、例えば、以下のようにスコアを算出する。つまり、スコア算出手段132は、用語「成田」に対する読み情報の順位を、各読み情報の共起頻度「116000,38400,1010」から得る。つまり、スコア算出手段132は、「1:なりた」「2:なるだ」「3:なるた」を得る。
次に、同様に、スコア算出手段132は、用語「りむじんばす」に対する読み情報の順位の情報「1:りむじんばす」を得る。
さらに、スコア算出手段132は、用語「乗り場」に対する読み情報の順位の情報「1:のりば」「2:のりじょう」を得る。
次に、スコア算出手段132は、すべての読み情報の組み合わせに対するスコアを算出する。ここでは、スコアは各読み情報の順位の合計である、とする。つまり、スコア算出手段132は、すべての読み情報の組み合わせに対するスコアを算出し、図14に示すスコア管理表を得る。スコア管理表のスコアは、「成田リムジンバス乗り場」の読み情報を構成する3つの読み情報のスコアを加算したものである。なお、図14において、スコアが小さいほど、読み候補として優先度が高いことを示す。
次に、出力部14は、出力する情報を構成する。ここでは、出力部14は、最も優先度が高い1つの読み情報「なりたりむじんばすのりば」を取得し、出力するデータ構造に構成する。次に、出力部14は、構成した情報「なりたりむじんばすのりば」を出力する。
(実験結果)
以下、読み付与装置1の実験結果について説明する。本実験において、ガイドブックに掲載されている多数のランドマークをキーワードとして選択した。そして、読み付与装置1の手法を用いた実験結果を図15に示す。図15において、楕円で囲まれた箇所の「比率」の合計である「98.53%」が正解率である。つまり、読み付与装置1は、極めて高い正解率で、読み情報を取得できる。なお、図15において、楕円で囲まれた第一の値「23.98%」は、上記の分割処理による効果であると推定される。また、楕円で囲まれた第二の値「69.17%」は、2以上の読み情報の候補が存在する場合に、正解の読み情報が取得できたものであると推定される。さらに、楕円で囲まれた第三の値「5.38%」は、大語彙辞書の効果により正解の読み情報が取得できたものであると推定される。
以上、本実施の形態によれば、非常に精度高く、キーワードの読み情報を取得できる。
なお、本実施の形態によれば、キーワードを分割し、2以上の分割文字列を得るアルゴリズムは、上記したアルゴリズムとは限らない。とのような手順で分割文字列を得ても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、キーワードを受け付ける受付部と、用語と、当該用語の読みを示す読み情報を有する用語読み情報を2以上格納している読み辞書に対して、前記受付部が受け付けたキーワードまたは当該キーワードを分割した文字列である2以上の各分割文字列である対象文字列を用いて検索し、2以上の読み情報を取得する読み辞書検索部と、前記対象文字列と、前記読み辞書検索部が取得した2以上の読み情報のうちの各読み情報の組である各取得対象文字列読み情報を用いて、文書群を検索し、前記各取得対象文字列読み情報が有する対象文字列と読み情報が共起する文書の数である共起頻度を、読み情報ごとに取得する共起頻度取得部と、前記共起頻度取得部が取得した読み情報ごとの共起頻度を用いて、少なくとも最も共起頻度の多い読み情報または読み情報の組み合わせを出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記読み辞書検索部は、用語と、当該用語の読みを示す読み情報を有する用語読み情報を2以上格納している読み辞書に対して、前記対象文字列を用いて検索し、2以上の読み情報を取得する読み情報取得手段と、前記対象文字列がカタカナの文字列を含む場合、当該カタカナの文字列をひらがなに変換する変換手段を具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記変換手段は、前記対象文字列が、あらかじめ決められたカタカナを含むか否かを判断し、当該カタカナを含む場合には、前記カタカナの文字列をひらがなに変換しないものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記読み辞書検索部は、前記受付部が受け付けたキーワードを1文字以上の単位で分割し、分割した文字列である2以上の分割文字列を取得するキーワード分割手段と、前記2以上の各分割文字列に一致する用語と対になる1以上の読み情報を、前記読み辞書から、分割文字列ごとに検索し、分割文字列と読み情報を有する取得対象文字列読み情報を、2以上取得する読み情報取得手段を具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記キーワード分割手段は、前記受付部が受け付けたキーワードの文字列長を取得し、当該文字列長が予め決められた文字列長より大きい、または予め決められた文字列長以上の場合には、前記キーワードの分割を行わず、前記読み情報取得手段は、前記キーワードの分割を行わない場合、前記受付部が受け付けたキーワードと一致する用語と対になる1以上の読み情報を、前記読み辞書から取得するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記キーワード分割手段は、切断数N(Nは0以上)の少ない場合から、順に、前記受付部が受け付けたキーワードを1文字以上の単位で分割し、分割した文字列である1以上の分割文字列を取得し、前記読み情報取得手段からの終了指示があるまで、前記キーワードの分割を繰り返し、前記読み情報取得手段は、前記キーワード分割手段が取得した1以上の各分割文字列に一致する用語と対になる1以上の読み情報を、前記読み辞書から、分割文字列ごとに取得し、1以上の分割文字列のすべてに対応する読み情報が取得できなかった場合には、前記キーワード分割手段に対して、次に分割のパターンである2以上の分割文字列を取得するように指示し、前記1以上の分割文字列のすべてに対応する読み情報が取得できた場合には、当該1以上の分割文字列のすべてに対応する読み情報を記憶媒体に少なくとも一時格納する読み情報の取得処理を行い、かつ、前記キーワード分割手段に終了指示を渡し、または、前記1以上の分割文字列のすべてに対応する読み情報が取得できた場合と同じ切断数の他の分割のパターンである2以上の分割文字列を、前記キーワード分割手段に対して、取得するように指示し、前記同じ切断数の他の分割のパターンに対する読み情報の取得処理が完了した後、前記キーワード分割手段に終了指示を渡すものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記読み辞書検索部は、前記対象文字列がアラビア数字を含むか否かを判断し、アラビア数字を含む場合は、当該アラビア数字を桁付き数字とする読みを示す桁付き数字読み情報を生成し、当該桁付き数字読み情報を読み情報として加えるアラビア数字処理手段をさらに具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記読み辞書検索部は、前記対象文字列がアルファベットを含むか否かを判断し、アルファベットを含む場合は、当該アルファベットに対応するローマ字読みを示すローマ字読み情報を生成し、当該ローマ字読み情報を読み情報として加えるアルファベット処理手段をさらに具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記共起頻度取得部は、前記読み辞書検索部が取得した2以上の各取得対象文字列読み情報を用いて、文書群を検索し、前記各取得対象文字列読み情報が有するキーワードまたは分割文字列と、読み情報が共起する文書の数である共起頻度を、取得対象文字列読み情報ごとに取得する共起頻度取得手段と、前記受付部が受け付けたキーワードまたは2以上の分割文字列を有する取得対象文字列読み情報に対応する共起頻度をパラメータして、取得対象文字列読み情報または取得対象文字列読み情報の組み合わせごとに、スコアを算出するスコア算出手段を具備し、前記出力部は、前記共起頻度取得部が取得したスコアを用いて、少なくとも最も共起頻度の多い読み情報または読み情報の組み合わせを出力するものとして、コンピュータを機能させるためのプログラムであることは好適である。
(実施の形態2)
本実施の形態において、実施の形態1で説明した読み付与装置1の応用例について説明する。
まず、読み付与装置1は、音声合成装置や音声認識装置や機械翻訳装置の辞書の構築のために利用できる。つまり、音声合成装置に必要な「読み情報」と「音声」を対に有する読み音声情報を複数有する音声合成辞書の作成の際に、読み付与装置1は機能する。また、音声認識装置に必要な「読み情報」と「用語」と「音声」を対に有する音声認識情報を複数有する音声認識辞書の作成の際に、読み付与装置1は機能する。さらに、機械翻訳装置に必要な、例えば、「人名」や「地名」などの固有名詞とローマ字からなる「英単語」の対の単語情報を構成する場合に、読み付与装置1は機能する。つまり、読み情報が対訳情報となり、読み付与装置1は、翻訳辞書の構築のために利用できる。例えば、読み付与装置1は、「浅草寺」から「せんそうじ」を取得し、図示しない公知の手段により、ひらがな「せんそうじ」からローマ字「Sensoji」を得て、「(日本語)浅草寺,(英語)Sensoji」の対訳情報を構成する。
また、音声合成装置は、以下のように読み付与装置1を用いることができる。つまり、音声合成装置は、音声データベースを保持している。この音声データベースは、ひらがな表記に対応する音声を、ひらがな表記ごとに格納している。また、好ましくは、音声データベースは、カタカナ表記に対応する音声を、カタカナ表記ごとに格納している。そして、音声合成装置の音声合成部は、読み付与装置1が出力した読み情報(仮名表記)に対応する音声を音声データベースから読み出し、音声を合成し、アナログ音声信号を取得する。そして、音声合成装置の音声出力部は、音声合成部が音声合成し、取得したアナログ音声信号を出力する。
また、音声翻訳装置の場合、以下のように読み付与装置1を用いることができる。音声翻訳装置は、通常、音声認識部と翻訳部を具備する。そして、音声翻訳装置が有する音声認識部から読み情報を得る。次に、翻訳部は、当該読み情報を用いて、単語の語義を確定する。例えば、「工夫(こうふ)」は「worker」と翻訳され、「工夫(くふう)」は「device」と翻訳される。また、「佐原(さわら)」は「sawara」と翻訳され、「佐原(さはら)」は「sahara」と翻訳される。さらに、「方(かた)」は「person」と翻訳され、「方(ほう)」は「direction」と翻訳される。
さらに、機械翻訳装置は、以下のように読み付与装置1を用いることができる。つまり、機械翻訳装置は、翻訳辞書を保持している。翻訳辞書は、日本語の単語の読み情報と目的言語(例えば、英語や中国語など)の単語の対を有する。また、翻訳辞書は、日本語の単語とその読み情報と目的言語の単語の対を有することは好適である。そして、入力受付部が翻訳対象の日本語の文を受け付ける。次に、機械翻訳装置の形態素解析部は、機械翻訳装置の入力受付部が受け付けた文を形態素解析し、形態素に分解する。そして、読み付与装置1は、形態素解析部の出力のうちの単語を入力のキーワードとして、当該キーワードの読み情報を取得する。次に、機械翻訳装置の単語検索部は、読み付与装置1が取得したキーワードの読み情報を用いて、翻訳辞書から、当該読み情報と対になる目的言語の単語を取得する。そして、機械翻訳装置の翻訳文構成部は、形態素解析部の結果、および単語検索部が取得した目的言語の単語を用いて、入力受付部が受け付けた文の翻訳文を得る。そして、機械翻訳装置の翻訳文出力部は、翻訳文構成部が取得した翻訳文を出力する。
以上、読み付与装置1は、種々の装置で利用可能である。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、図16は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の読み付与装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図16は、このコンピュータシステム340の概観図であり、図17は、コンピュータシステム340のブロック図である。
図16において、コンピュータシステム340は、FD(Flexible Disk)ドライブ、CD−ROM(Compact Disk Read Only Memory)ドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344と、マイク345とを含む。
図17において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、CPU(Central Processing Unit)3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM(Read−Only Memory)3415と、CPU3413に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM(Random Access Memory)3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の読み付与装置の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の読み付与装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。