[第1実施形態]
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下の説明では、開示の技術に係る読み生成装置の一例として汎用装置であるコンピュータを例に挙げて説明するが、開示の技術は、これに限定されるものではない。開示の技術は、例えば、読み生成のための専用装置、または読み生成のためのデバイスを装着した基板などに適用可能である。
一例として図1に示すコンピュータ10は、記憶部12、読み出し部14、及び読み生成部16を有している。記憶部12は、読み出し部14及び読み生成部16と相互に接続されている。また、読み出し部14及び読み生成部16は相互に接続されている。
記憶部12は、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、記憶部12に記憶されていない新住所の表記及び既知住所の表記の各々に含まれる区画の単位を表す特定語を削除し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
コンピュータ10は、一例として図2に示すように、CPU(Central Processing Unit)60、1次記憶部62、2次記憶部64、外部インターフェイス70、キーボード72、及びディスプレイ74を備えている。CPU60、1次記憶部62、2次記憶部64、外部インターフェイス70、キーボード72、及びディスプレイ74は、バス78を介して相互に接続されている。
キーボード72は、ユーザが入力した情報を検出する。ディスプレイ74は、ユーザに情報を表示する。外部インターフェイス70には、外部装置が接続され、外部装置とCPU60との間の各種情報の送受信を司る。
1次記憶部62は、例えば、RAM(Random Access Memory)などの揮発性のメモリである。2次記憶部64は、例えば、HDD(Hard Disk Drive)、またはSSD(Solid State Drive)などの不揮発性のメモリである。1次記憶部62及び2次記憶部64は、図1の記憶部12として機能する。
2次記憶部64は、一例として、読み出しサブプログラム66A、及び読み生成サブプログラム66Bを含む読み生成プログラム66、住所テーブル68A、パターンテーブル68B、並びに特定語テーブル68Cを生成するための情報を記憶している。
図3に住所テーブル68Aの概念図を示す。住所テーブル68Aは、住所の表記を含む表記フィールドと、当該表記に対応する読みを含む読みフィールドと、を有する。当該住所テーブル68Aに含まれている住所が既知住所に相当し、当該住所テーブル68Aに含まれていない住所が新住所に相当する。例えば、表記が「兵庫県明石市大久保町」である住所レコードでは、対応する読みは「ヒョーゴ&’ケン_アカシ%’シ_オークボ’チョー」である。「&」は鼻濁音、「’」はアクセント、「%」は無声化、「_」はアクセント句境界を示す。
図4にパターンテーブル68Bの概念図を示す。表記パターンまたは読みパターンは、住所の「表記」または「読み」とのマッチング(詳細は後述)により、項目「県」及び「市」などに対応する名称を抽出するために使用される。
パターンテーブル68Bは、表記パターンを含む表記パターンフィールドと、当該表記パターンに対応する読みパターンを含む読みパターンフィールドと、を有する。例えば、表記パターンが「*県*市*区*町*」であるパターンレコードでは、対応する読みパターンは「*ケン_*シ_*ク_*チョー_*」である。「*」は、1文字以上の任意の文字列を表す。
図5に特定語テーブル68Cの概念図を示す。特定語テーブル68Cは、住所に含まれる区画の単位である特定語「県」、「市」、「郡」、「区」、「町」及び「村」を含む特定語フィールドと、当該特定語に対応する読みを含む読みフィールドと、を有する。例えば、特定語が「県」である特定語レコードでは対応する読みは「ケン」である。特定語は、行政区画の大きさに応じて異なる語が付与されている。ここでは、「都」、「道」、「府」、及び「県」が最大の行政区画であり、その下に、例えば、「市」など、さらにその下に、例えば、「町」などがある。
また、図2において図示は省略するが、例えば、1次記憶部62には、表記スロット及び読みスロットが記憶される記憶領域が設けられる。
図6に、表記スロットの概念図の一例を示す。表記スロットは、項目「県」、「市」、「郡」、「区」、「町」、「村」、及び「(字)」の各々に対応する格納領域を有する。住所の「表記」と図4に示すパターンテーブル68Bの「表記パターン」とをマッチングし、項目「県」、「市」、「郡」、「区」、「町」、「村」、及び「(字)」の各々に対応する格納領域に、対応する各々の区画の名称の表記を格納するために使用される。
図7に、読みスロットの概念図の一例を示す。読みスロットは、項目「ケン」、「シ」、「グン」、「チョウ」、「ムラ」、及び「(アザ)」の各々に対応する格納領域を有する。住所の「読み」と図4に示すパターンテーブル68Bの「読みパターン」とをマッチングし、項目「ケン」、「シ」、「グン」、「ク」、「チョウ」、「ムラ」、及び「(アザ)」の各々に対応する格納領域に、対応する各々の区画の名称の読みを格納するために使用される。
CPU60は、2次記憶部64から読み出しサブプログラム66A及び読み生成サブプログラム66Bを読み出して1次記憶部62に展開する。CPU60は、読み出しサブプログラム66Aを実行することで、図1に示す読み出し部14として動作する。CPU60は、読み生成サブプログラム66Bを実行することで、図1に示す読み生成部16として動作する。
読み出し部14が、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する記憶部12に記憶されていない新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み出すために、新住所の表記及び既知住所の表記の各々に含まれる区画の単位を表す特定語を削除する。読み生成部16が、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
図8に例示する処理は、例えば、ユーザがキーボード72を使用して、読みを生成することを所望する住所を入力し、エンターキーを押下することにより、開始される。ステップ102で、ユーザにより入力された住所(以下、入力テキスト)とパターンテーブル68Bの表記パターンとのマッチングを行う。
図9に、ステップ102の入力テキストと表記パターンとのマッチングの詳細を例示する。ステップ162で、パターンテーブル68Bの最初のパターンレコードの表記パターンを読み出し、ステップ164で、読み出した表記パターンと入力テキストとのマッチングを行う。
入力テキストが「兵庫県朝来市生野町川尻」である場合、パターンテーブル68Bの最初のレコードの表記パターン「*県*市*区*町*」とはマッチしない。そのため、次のステップ166で、マッチしたか否かの判定が否定される。ステップ168では、パターンテーブル68Bの全てのレコードについてマッチングを行ったか否かを判定する。判定が否定されると、ステップ162に戻り、パターンテーブル68Bから次のパターンレコードの表記パターンを読み出し、ステップ162からステップ168の処理を繰り返す。
入力テキスト「兵庫県朝来市生野町川尻」は、パターンテーブル68Bの第3レコードの「*県*市*町*」とマッチする。したがって、ステップ162で、パターンテーブル68Bの第3レコードの表記パターンを読み出し、ステップ164で、当該表記パターンと入力テキストのマッチングを行った場合に、ステップ166の判定が肯定される。
ステップ166の判定が肯定されると、ステップ170で、図12に示すように、表記スロットの項目の各々に対応する区画の名称を格納し、図8のステップ104に進む。ここでは、項目「県」に対応する格納領域に「兵庫」、項目「市」に対応する格納領域に「朝来」、項目「町」に対応する格納領域に「生野」、項目「(字)」に対応する項目領域に「川尻」を格納する。
一方、ステップ166で、パターンテーブル68Cの表記パターンと入力テキストとがマッチすることなく、ステップ168で、パターンテーブル68Cの全てのレコードについてマッチングを行ったと判定された場合は、ステップ172で、エラー報知を行う。例えば、ディスプレイ74に、入力テキストと対応する表記パターンがパターンテーブル68Cに存在しなかったことを示すエラーを表示し、処理を終了する。
ステップ104で、入力テキストの特定語の全てを削除した特定語削除テキストを生成する。図12に示す表記スロットの空でない格納領域に含まれる区画の名称を組み合わせることにより、入力テキストの特定語を削除した特定語削除テキストを生成する。上記の例では、生成された特定語削除テキストは、「兵庫朝来生野川尻」となる。
ステップ106で、図3の住所テーブル68Aから住所レコードの表記を読み出す。ステップ108で、住所テーブル68Aの最初の住所レコードの表記について、住所レコードの表記とパターンテーブル68Bの表記パターンとのマッチングを行う。
図10で、ステップ108の住所テーブル68Aの最初の住所レコードの表記とパターンテーブル68Bの表記パターンとのマッチングの詳細を例示する。ステップ182で、パターンテーブル68Bの最初のパターンレコードの表記パターンを読み出し、ステップ184で、読み出した表記パターンと住所テーブル68Aの最初のレコードの表記とのマッチングを行う。
住所テーブル68Aの最初のレコードの表記が「兵庫県明石市大久保町」である場合、パターンテーブル68Bの最初のレコードの表記パターン「*県*市*区*町*」とはマッチしない。そのため、次のステップ186で、マッチしたか否かの判定が否定され、ステップ188に移行する。パターンテーブル68Bの全てのレコードについてマッチングを行ったか否かを判定する。判定が否定されると、ステップ182に戻り、パターンテーブル68Bから次のパターンレコードの表記パターンを読み出し、ステップ182からステップ188の処理を繰り返す。
住所テーブル68Aの最初のレコードの表記「兵庫県明石市大久保町」は、パターンテーブル68Bの第4レコードの「*県*市*町」とマッチする。したがって、ステップ182で、パターンテーブル68Bの第4レコードの表記パターンを読み出し、ステップ184で、当該表記パターンと住所テーブル68Aの最初のレコードの表記のマッチングを行った場合に、ステップ186で判定が肯定される。
ステップ186で、判定が肯定されると、ステップ190で、図13に示すように、表記スロットの項目の各々に対応する区画の名称を格納し、図8のステップ110に進む。ここでは、項目「県」に対応する格納領域に「兵庫」、項目「市」に対応する格納領域に「明石」、項目「町」に対応する格納領域に「大久保」を格納する。
一方、ステップ186で、パターンテーブル68Cの表記パターンと住所テーブルの最初のレコードの表記とがマッチすることなく、ステップ188で、パターンテーブル68Cの全てのレコードについてマッチングを行ったと判定される場合がある。この場合、ステップ192で、ディスプレイ74に、住所テーブル68Aの最初のレコードの表記と対応するパターンテーブル68Bの表記パターンが存在しなかったことを示すエラーを表示し、処理を終了する。
ステップ110で、住所テーブル68Aの最初の住所レコードの表記の特定語を削除した特定語削除エントリを生成する。図13に示す表記スロットの空でない格納領域に含まれる区画の名称を組み合わせることにより、住所レコードの表記の特定語を削除した特定語削除エントリを生成する。生成された特定語削除エントリは、「兵庫明石大久保」となる。
ステップ112で、ステップ104で生成した特定語削除テキストとステップ110で生成した特定語削除エントリとが一致するか否か判定する。特定語削除テキスト「兵庫朝来生野川尻」と特定語削除エントリ「兵庫明石大久保」とは一致しないので、判定は否定され、ステップ114に進む。ステップ114で、住所テーブル68Aの全ての住所レコードについて処理を行ったか否かを判定する。判定が否定されるとステップ106に戻り、住所テーブル68Aから次の住所レコードを読み出し、ステップ106〜ステップ114を繰り返す。
ステップ106で、図3の住所テーブル68Aから第2レコードの表記「兵庫県朝来郡生野町川尻」を読み出す。ステップ108で、住所テーブル68Aの第2レコードの表記とパターンテーブル68Bの表記パターンとのマッチングを行う。
住所テーブル68Aの第2レコードの表記は「兵庫県朝来市生野町川尻」である場合、パターンテーブル68Bの第3のパターンレコードの表記パターン「*県*市*町*」とマッチする。そのため、図14に示すように、表記スロットの項目の各々に対応する区画の名称を格納し、図8のステップ110に進む。項目「県」に対応する格納領域に「兵庫」、項目「市」に対応する格納領域に「朝来」、項目「町」に対応する格納領域に「生野」、項目「(字)」に対応する格納領域に「川尻」を格納する。
ステップ110で、住所テーブル68Aの第2レコードの表記の特定語を削除した特定語削除エントリを生成する。図14に示す表記スロットに含まれる情報を組み合わせることにより、特定語を削除した特定語削除エントリを生成する。生成された特定語削除エントリは、「兵庫朝来生野川尻」となる。
ステップ112で、ステップ104で生成した特定語削除テキストとステップ110で生成した特定語削除エントリとが一致するか否か判定する。特定語削除テキスト「兵庫朝来生野川尻」と特定語削除エントリ「兵庫朝来生野川尻」とは一致するので、判定は肯定され、ステップ116に進む。
ステップ116で、住所テーブル68Aの第2レコードから読みを読み出す。読みは、「ヒョーゴ&’ケン_アサゴ&’グ&ン_イクノチョー_カワ’シリ」である。ステップ118で、第2レコードの読みと図4のパターンテーブル68Bの読みパターンとのマッチングを行う。
図11にステップ118の処理の詳細を示す。ステップ202で、パターンテーブル68Bの最初のパターンレコードの読みパターンを読み出す。ステップ204で、住所テーブル68Aの第2住所レコードの読みとパターンテーブル68Bの最初のパターンレコードの読みとのマッチングを行う。
住所テーブル68Aの第2レコードの読みは「ヒョーゴ&’ケン_アサゴ&’グ&ン_イクノチョー_カワ’シリ」である場合、パターンテーブル68Bの最初のレコードの表記パターン「*ケン_*シ_*ク*チョー_*」とはマッチしない。そのため、次の図11のステップ206で、マッチしたか否かの判定が否定され、ステップ208へ移行する。ステップ208では、パターンテーブル68Bの全てのレコードについてマッチングを行ったか否かを判定する。判定が否定されると、ステップ202に戻り、パターンテーブル68Bから次のパターンレコードの読みパターンを読み出し、ステップ202からステップ208の処理を繰り返す。
住所テーブル68Aの第2レコードの読み「ヒョーゴ&’ケン_アサゴ&’グ&ン_イクノチョー_カワ’シリ」は、パターンテーブル68Bの第8レコードの読みパターン「*ケン_*グ&ン_*チョー_*」とマッチする。したがって、ステップ202で、パターンテーブル68Bの第8レコードの読みパターンを読み出し、ステップ204で、住所テーブル68Aの第2レコードの読みとのマッチングを行った場合に、ステップ206で判定が肯定される。判定が肯定されると、ステップ210で、図15に示すように、読みスロットの項目の各々に対応する区画の名称を格納し、図8のステップ120に進む。ここでは、項目「ケン」に対応する格納領域に「ヒョーゴ&’」、項目「グン」に対応する格納領域に「アサゴ&’」、項目「チョウ」に対応する格納領域に「イクノ」、項目「アザ」に対応する格納領域に「カワ’シリ」を格納する。
一方、ステップ206で、パターンテーブル68Bの読みパターンと住所テーブル68Aの第2レコードの読みとがマッチすることなく、ステップ208で、パターンテーブル68Bの全てのレコードについてマッチングを行ったと判定される場合がある。この場合、ステップ212で、ディスプレイ74に、住所テーブル68Aの第2レコードの読みと対応するパターンテーブル68Bの読みパターンが存在しなかったことを示すエラーを表示し、処理を終了する。
ステップ120で、入力テキストの読みを生成する。詳細には、読みスロットの格納領域の各々に格納された「ヒョーゴ&’」、「アサゴ&’」、及び「イクノ」の各々の後に、各々の項目に対応する特定語の読みを追加する。追加される特定語は「ケン」、「シ」、及び「チョウ」であり、これらの読みは、図5の特定語テーブル68Cから取得することができる。
したがって、「ヒョーゴ&’」、「アサゴ&’」、及び「イクノ」の各々の後に、読み「ケン」、「シ」、及び「チョー」が各々追加され、新住所である入力テキストの読みとして「ヒョーゴ&’ケン_アサゴ&’シ_イクノチョー_カワ’シリ」が生成される。
なお、生成された新住所の読みは、ディスプレイ74に表示されてもよいし、住所テーブル68Aに新しいレコードとして対応する表記と共に格納されてもよい。
なお、ユーザによって入力される入力テキストがコンピュータ10によって検出されるものとしたが、本開示はこれに限定されない。例えば、コンピュータ可読な形態に変換された複数の新住所の表示を含むリストがコンピュータ10に与えられてもよい。
記憶部12に、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、記憶部12に記憶されていない新住所の表記及び既知住所の表記に含まれる区画の単位を表す特定語を削除し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
上記によれば、市町村などの区画の合併または再編などによって変更される前の住所である既知住所の読みを利用して、人手を介さず、新住所に自動的に読みを付与することができる。
[第2実施形態]
第2実施形態の構成は、図16に示すように、2次記憶部64が変換テーブル68Dの情報を記憶している点で、第1実施形態と相違する。
図17に変換テーブル68Dの概念図を示す。変換テーブル68Dは、区画の合併または再編などの住所変更前の住所の表記を含む変更前フィールドと、住所変更後の住所の表記を含む変更後フィールドと、を含む。例えば、変更前住所が「A県B郡C町D」である変換レコードでは、対応する変更後住所は「A県B市C町D」である。
記憶部12に、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、既知住所の表記に含まれる特定語を所定の変換規則で他の特定語に変換し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
図18に例示する処理は、例えば、ユーザがキーボード72を使用して読みを付与したい住所を入力し、エンターキーを押下することにより、開始される。ステップ222で、ユーザにより入力された住所(以下、入力テキスト)とパターンテーブル68Bの表記パターンとのマッチングを行う。ステップ222の処理は、第1実施形態で説明した図9の処理と同様であるため、省略する。
入力テキストが「兵庫県朝来市生野町川尻」である場合、図20に示すように、表記スロットの項目「県」に対応する格納領域に「兵庫」、項目「市」に対応する格納領域に「朝来」、項目「町」に対応する格納領域に「生野」を格納する。また、項目「(字)」に対応する格納領域に「川尻」を格納する。
ステップ224で、住所テーブル68Aの最初の住所レコードの表記「兵庫県明石市大久保町」を読み出す。ステップ226で、入力テキストと住所テーブル68Aの最初の住所レコードの表記を変換した後の表記とのマッチングを行う。
ステップ226の詳細を図19に示す。図19のステップ252で、図17の変換テーブル68Dの最初の変換レコードの変更前「A県B郡C町D」を読み出す。住所テーブル68Aの最初の住所レコードの表記「兵庫県明石市大久保町」は「●県●市●町」というパターンを有するので、マッチせず、最初の変換レコードの変換規則による変換は不可能である。したがって、ステップ254の変換規則で変換可能か否かの判定は否定され、ステップ258に進む。なお、記号「●」は、本開示において、住所がどのようなパターンを有するかを説明するために使用している。記号「●」には、区画の名称が入る。
ステップ258では、変換テーブル68Dの全てのレコードについて処理したか否かが判定され、判定が否定された場合、ステップ252に戻り、次の変換レコードの変換規則を読み出して、ステップ252からステップ258の処理を繰り返す。
変換テーブル68Dには、「●県●市●町」にマッチする変換レコードの変更前フィールドは存在しない。したがって、変換テーブル68Dの全てのレコードについて処理した後、ステップ258の判定は肯定され、ステップ260で、フラグAに0が設定され、図18のステップ228に進む。
ステップ228でフラグAが1であるか否か判定され、判定が否定されるので、ステップ230で、住所テーブル68Aの全てのレコードを処理したか否かを判定する。ステップ230の判定が否定された場合、ステップ224に戻り、ステップ224〜230の処理が繰り返される。一方、ステップ230の判定が否定された場合、ステップ240で、例えば、ディスプレイ74に検索不可能であることを表示して処理を終了する。
ステップ224で、住所テーブル68Aの第2レコードの表記「兵庫県朝来郡生野町川尻」を読み出す。住所テーブル68Aの第2レコードの表記「兵庫県朝来郡生野町川尻」は「●県●郡●町●」というパターンを有するので、変換テーブル68Dの最初の変換レコード「A県B市C町D」とマッチする。
したがって、ステップ252で、変換テーブル68Dの最初の変換レコードを読み出し、ステップ254で、当該変換レコードの変換規則で変換可能か否かの判定が肯定され、ステップ256に移行する。ステップ256では、変換規則に従って、住所レコードの表記を変換することにより、変換後住所表記を生成し、入力テキストと変換後住所表記がマッチするか否かが判定される。入力テキスト「兵庫県朝来市生野町川尻」と住所テーブル68Aの第2レコードの表記の変換後住所表記「兵庫県朝来市生野町川尻」とはマッチするため、判定は肯定され、ステップ262でフラグAに1を設定し、図18のステップ228に進む。
ステップ228で判定が肯定されると、ステップ232に進む。ステップ232は、図8のステップ108と同様であり、ステップ234〜ステップ238は図8のステップ116〜ステップ120と同様であるため、説明は省略する。
ステップ238で、入力テキスト「兵庫県朝来市生野町川尻」に対応する読み「ヒョーゴ&’ケン_アサゴ&’シ_イクノチョー_カワ’シリ」が生成される。
記憶部12に、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、既知住所の表記に含まれる特定語を所定の変換規則で他の特定語に変換し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
上記によれば、市町村などの区画の合併または再編などによって変更される前の住所である既知住所の読みを利用して、人手を介さず、新住所に自動的に読みを付与することができる。
[第3実施形態]
第3実施形態の構成は、第2実施形態と同様であるので、説明を省略する。
記憶部12に、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、新住所の表記に含まれる特定語を所定の変換規則で他の特定語に変換し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
図21に、例示する処理は、例えば、ユーザがキーボード72を使用して読みを付与したい住所を入力し、エンターキーを押下することにより、開始される。ステップ272で、ユーザにより入力された住所(以下、入力テキスト)とパターンテーブル68Bの表記パターンとのマッチングを行う。ステップ272の処理は、第1実施形態の図8のステップ102と同様であるので、省略する。
入力テキストが「兵庫県朝来市生野町川尻」である場合、図23に示すように、表記スロットの項目「県」に対応する格納領域に「兵庫」、項目「市」に対応する格納領域に「朝来」、項目「町」に対応する格納領域に「生野」を格納する。また、項目「(字)」に対応する格納領域に「川尻」を格納する。
ステップ274で、図17の変換テーブル68Dの最初のレコードの変更後「A県B市C町D」を読み出す。入力テキスト「兵庫県朝来市生野町川尻」は「●県●市●町●」というパターンを有するので、「A県B市C町D」とマッチする。したがって、変換テーブル68Dの最初のレコードの変換前「A県B郡C町D」によって入力テキスト「兵庫県朝来市生野町川尻」を「兵庫県朝来郡生野町川尻」に変換することが可能である。ステップ276の変換レコードの変換規則で変換可能か否かの判定は肯定され、ステップ278に進む。
ステップ278の詳細を図22に示す。図22のステップ302で、住所テーブル68Aの最初のレコード「兵庫県明石市大久保町」を読み出す。ステップ304で、変換規則に従って、入力テキストを変換することにより、変換後入力テキストを生成し、変換後入力テキスト「兵庫県朝来郡生野町川尻」と住所テーブル68Aの最初のレコード「兵庫県明石市大久保町」とがマッチするか否かが判定される。
判定は否定され、ステップ308で、住所テーブル68Aの全てのレコードについて処理がされたか否かが判定される。判定が否定されると、ステップ302に戻り、ステップ302から308の処理を繰り返す。
ステップ302で、住所テーブル68Aの第2の住所レコードの表記「兵庫県朝来郡生野町川尻」を読み出す。ステップ304で、変換後入力テキスト「兵庫県朝来郡生野町川尻」と住所テーブル68Aの第2住所レコード「兵庫県朝来郡生野町川尻」とがマッチするか否かが判定される。ステップ304の判定が肯定されるので、ステップ306に進み、フラグBに1を設定し、図21のステップ280に進む。
一方、ステップ304で、変換後入力テキストが住所テーブル68Aの住所レコードの表記のいずれともマッチせず、ステップ308で、全ての住所レコードについて処理がされたと判定される場合がある。この場合、ステップ310でフラグBに0を設定し、図21のステップ280に進む。
ステップ280で、フラグBに1が設定されていることが判定されると、ステップ284に進む。ステップ284は、図8のステップ108と同様であり、ステップ286〜ステップ290は図8のステップ116〜ステップ120と同様であるため、説明は省略する。
ステップ290で、入力テキスト「兵庫県朝来市生野町川尻」に対応する読み「「ヒョーゴ&’ケン_アサゴ&’シ_イクノチョー_カワ’シリ」が生成される。
一方、ステップ280でフラグBに0が設定されていると判定した場合、ステップ282で、変換テーブル68Dの全てのレコードについて処理したか否かを判定する。判定が否定された場合、ステップ274に戻り、ステップ274からステップ282の処理を繰り返す。
ステップ282で判定が肯定された場合、ステップ292で、検索不可であることをディスプレイ74に表示して処理を終了する。
記憶部12に、表記及び表記に対応する読みが既知である複数の既知住所の各々を表記と読みとを対応させて記憶する。読み出し部14は、新住所の表記に含まれる特定語を所定の変換規則で他の特定語に変換し、新住所に含まれる特定語以外の表記の全てを含む既知住所の表記を読み出す。読み生成部16は、読み出された既知住所の特定語の読みの少なくとも1つを新住所の特定語の読みに置き換えることにより、既知住所の読みから新住所の読みを生成する。
上記によれば、市町村などの区画の合併または再編などによって変更される前の住所である既知住所の読み情報を利用して、人手を介さず、新住所に自動的に読みを付与することができる。
[第4実施形態]
第4実施形態の構成は、第2及び第3実施形態と同様であるので、説明を省略する。
第4実施形態では、変換テーブル68Dに格納されていない変換規則を、入力テキスト及び住所テーブル68Aに記憶されている住所レコードの表記を用いて抽出する。
図24のステップ322で、入力テキスト及び住所テーブル68Aの住所レコードの双方を変更することなく、入力テキストとマッチする住所テーブル68Aの表記を検索することが可能であるか否か判定する。可能であれば、検索された住所テーブル68Aの住所レコード表記に対応する読みを出力する。
ステップ322で、判定が否定された場合、ステップ324で住所テーブル68Aの住所レコードの表記に変換規則を適用することにより、入力テキストとマッチする住所テーブル68Aの住所レコードの表記を検索することが可能であるか否か判定する。可能であれば、入力テキストの読みを出力する。この場合の入力テキストの読みの生成については、第2実施形態で説明したため、詳細は省略する。
ステップ324で、判定が否定された場合、ステップ326で入力テキストに変換規則を適用することにより、変換した入力テキストとマッチする住所テーブル68Aの住所レコードの表記を検索することが可能であるか否か判定する。可能であれば、入力テキストの読みを出力する。この場合の入力テキストの読みの生成については、第3実施形態で説明したため、詳細は省略する。
ステップ326で、判定が否定された場合、ステップ328で入力テキスト及び住所テーブル68Aの住所レコードの表記から特定語を削除することにより、入力テキストに対応する住所レコードの表記を検索することが可能であるか否か判定する。可能でなければ、ステップ336で、検索不可であることをディスプレイ74に表示し、処理を終了する。
ステップ328の判定が肯定された場合、ステップ330で、入力テキスト及び住所テーブル68Aの住所レコードの表記から変換規則を生成する。
ステップ330の詳細を図25に例示する。ステップ342で、住所レコードの情報が格納された表記スロットの項目の各々の情報を読み出す。ここでは、省略するが、例えば、図8のステップ108に示すように、入力テキストの読みを生成する処理において、住所レコードに対応する表記スロットの項目に対応する格納領域の各々には、図26に例示するように、対応する情報が格納されている。
ステップ344で、読み出された最初の項目の格納領域が空であるか否か判定する。ステップ344で、読み出された最初の項目の格納領域が空でないと判定された場合、ステップ346で、アルファベット及び当該情報に対応する項目名すなわち特定語を組み合わせる。ここでは、最初の項目「県」に「兵庫」という情報が格納されているので、「A県」を生成する。
ステップ348で、全ての項目の処理が終了したか否かを判定する。全ての項目の処理が終了していない場合、ステップ342に戻り、次の項目を読み出し、ステップ342からステップ348の処理を繰り返す。なお、繰り返し処理のステップ346では、前に使用したアルファベットの次のアルファベットを使用する。
ステップ342で、項目「市」に対応する格納領域の情報を読み出した場合、ステップ344で、項目「市」に対応する格納領域が空であることを判定する。この場合、ステップ346の処理は行わず、ステップ348に進む。ステップ348で、全ての項目の処理が終了したことが判定された場合、ステップ350に進む。全ての項目の処理が終了した時点で、「A県B郡C町D」という変更前情報が生成されている。
ステップ350で、入力テキストの情報が格納された表記スロットの項目の各々の情報を読み出す。ここでは、省略するが、例えば、図8のステップ102に示すように、入力テキストの読みを生成する処理の経過において、入力テキストに対応する表記スロットの項目に対応する格納領域の各々には、図27に例示するように、対応する情報が格納されている。
ステップ352で、読み出された項目の格納領域が空であるか否か判定する。ステップ352で、読み出された最初の項目の格納領域が空でないと判定された場合、ステップ354で、アルファベット及び当該情報に対応する項目名すなわち特定語を組み合わせる。ここでは、最初の項目「県」の格納領域に「兵庫」という情報が格納されているので、「A県」を生成する。
ステップ356で、全ての項目の処理が終了したか否かを判定する。全ての項目の処理が終了していない場合、ステップ350に戻り、次の項目を読み出し、ステップ350からステップ356の処理を繰り返す。
ステップ350で、対応する格納領域が空である項目、例えば、項目「郡」に対応する格納領域の情報を読み出した場合、ステップ354の処理は行わず、ステップ356に進む。ステップ356で、全ての項目の処理が終了したことが判定された場合、図24のステップ332に進む。全ての項目の処理を終了した時点で、「A県B市C町川尻」という変更後情報が生成されている。
ステップ332で、変換テーブル68Dに新しい変換レコードを追加し、生成した変更前情報を当該新しいレコードの変更前フィールドに格納し、生成した変更後情報を当該新しいレコードの変更後フィールドに格納する。
第4実施形態によれば、変換テーブル68Dに格納されていない変換規則を、入力テキスト及び住所テーブル68Aに記憶されている住所レコードの表記を用いて抽出する。これにより、変換テーブル68Dに格納されていない変換規則を自動的に収集し、収集した変換規則を第2及び第3の実施形態に適用することができるようになる。
[第5実施形態]
第5実施形態の構成は、図28に示すように、音声変更部18及び音声合成部20をさらに有する点で、第1〜第3実施形態と相違する。音声変更部18は読み生成部16に接続され、音声合成部20は音声変更部18に接続されている。音声変更部18は合成音声のために読みを変更し、音声合成部20は合成音声を生成する。
図29に示すように、2次記憶部64に記憶された読み生成プログラム66が、音声変更サブプログラム66C、及び音声合成サブプログラム66Dを含む点で、第2及び第3実施形態と相違する。CPU60は、音声変更サブプログラム66Cを実行することで、図28に示す音声変更部18として動作する。CPU60は、音声合成サブプログラム66Dを実行することで、図28に示す音声合成部20として動作する。
第5実施形態では、読みの生成で置き換えた特定語に応じて、第1〜第3実施形態のいずれかによって生成された新住所の読みのアクセント位置の変更及び無声化の少なくとも一方を行い、読みに基づいて合成音声を生成する。
図30のステップ362で、第1実施形態〜第3実施形態の処理によって入力テキストの読みを生成することが可能であるか否かを判定する。ステップ362の判定が否定された場合、ステップ374へ移行し、読みの生成が不可能であることをディスプレイ74に表示して処理を終了する。
ステップ362の判定が肯定された場合、第1実施形態〜第3実施形態の処理によって、ステップ364で入力テキストの読みを生成する。生成された読みに基づいて、ステップ366でアクセントの付与、ステップ368で無声化を行い、ステップ370で韻律を生成し、ステップ372で、合成音声を生成し、処理を終了する。
なお、生成された合成音声は、2次記憶部64に保存されてもよいし、図示しないスピーカによって出力されてもよい。
「県」「市」「郡」といった特定語の直前にはアクセントが付く。例えば、「ヒョーゴ&’ケン」、「アサゴ&’シ」、または「ツナ’グ&ン」などである。しかし、特定語の直前が長音(「ー」)、または「ん」の場合などは、1つ前の位置にアクセントの位置がずれる。例えば、「トーキョ’−ト」、または「イトマ’ンシ」などである。
ステップ366では、上記規則に基づいてアクセントを付与する。本実施形態では、図3に示すように、住所テーブル68Aの住所レコードの読みに既にアクセントが付与されているため、ステップ364で生成した読みにアクセントを付与しなくてもよい場合も多い。
しかし、例えば、「兵庫県淡路市岩屋」の「淡路市」のように、読みのアクセント型が平板型である場合には、特定語「市」の直前にアクセント記号を付与する。
「アワジシ」 → 「アワジ’シ」
無声化とは、無声音に挟まれた母音「い」と母音「う」を無声音(ささやき声のような音)とすることである。例えば、「A K SH I SH I 」の1番目の「I」は両側が無声音「SH」に挟まれているため、無声化する。この場合、読みは、「アカシ%’シ」と記述される。
例えば、「明石郡」が「明石市」となる場合、「アカシ’グ&ン」が「アカシ%’シ」となり、ステップ368で無声化する。
第5実施形態によれば、読みの生成で置き換えた特定語に応じて、第1〜第3実施形態のいずれかによって生成された新住所の読みのアクセント位置の変更及び無声化の少なくとも一方を行い、読みに基づいて合成音声を生成する。これにより、市町村などの区画の合併または再編などによって変更される前の住所である既知住所の読みを利用して、新住所に自動的に読みを付与することができると共により自然な合成音声を生成することができる。
[第6実施形態]
第6実施形態の構成は、図31に示すように、音声特徴抽出部22、照合スコア生成部24、音声認識部26をさらに有する点で、第1〜第3実施形態と相違する。音声特徴抽出部22は照合スコア生成部24に接続されている。照合スコア生成部24は読み生成部16、音声特徴抽出部22及び音声認識部26に接続されている。
図32に示すように、2次記憶部64に記憶された読み生成プログラム66が、さらに音声特徴抽出サブプログラム66E、照合スコア生成サブプログラム66F、及び音声認識サブプログラム66Gを含み、マイク76を有している点で、第2及び第3実施形態と相違する。CPU60は、音声特徴抽出サブプログラム66Eを実行することで、図31に示す音声特徴抽出部22として動作する。CPU60は、照合スコア生成サブプログラム66Fを実行することで、図31に示す照合スコア生成部24として動作する。CPU60は、音声認識サブプログラム66Gを実行することで、図31に示す音声認識部26として動作する。
第6実施形態では、音声信号の特徴を抽出し、変換規則によって変換された既知住所の読みに対応する音響モデルと特徴とを照合し、類似度に応じて照合スコアを生成し、もっとも高い類似度を示す照合スコアを生成した読みに対応する表記を音声信号が示す新住所として認識する。
図33の処理は、例えば、ユーザが発声した音声をマイク76が音声信号として検出することにより開始される。ステップ382で、検出した音声信号の特徴量を抽出する。ステップ384で、住所テーブル68Aの住所レコードの表記を読み出し、ステップ386で、変換テーブル68Dの変換レコードで住所レコードの表記を変換する。詳細は、第2実施形態と同様であるので、説明を省略する。
ステップ388で、変換した住所レコードの表記に対応する読みに基づいて生成された音響モデルと検出した音声信号の特徴量とを照合し、照合スコアを取得する。照合スコアは音響モデルと検出音声の特徴量との類似度が高いほど大きい値となる。ステップ390で、変換テーブル68Dの全ての変換レコードを処理したか否かを判定し、判定が否定された場合、ステップ386に戻り、ステップ386からステップ390の処理を繰り返す。
ステップ390で、判定が肯定された場合、ステップ392で、住所テーブル68Aの全てのレコードを処理したか否かを判定し、判定が否定された場合、ステップ384に戻り、ステップ384からステップ392の処理を繰り返す。判定が肯定された場合、ステップ394で、ステップ388でもっとも大きい値の照合スコアに対応するステップ386で変換した住所をステップ382の検出した音声信号に対応する住所として認識する。
なお、認識結果は、ディスプレイ74に表示されてもよいし、2次記憶部64に保存されてもよい。
第6実施形態によれば、音声信号の特徴を抽出し、変換規則によって変換された既知住所の読みに対応する音響モデルと特徴とを照合し、類似度に応じて照合スコアを生成し、もっとも高い類似度を示す照合スコアを生成した読みに対応する表記を音声信号が示す新住所として認識する。
上記によれば、市町村などの区画の合併または再編などによって変更される前の住所である既知住所の読み情報を利用して、人手を介さず、新住所に自動的に読みを付与することができると共に音声信号が示す新住所を認識することができる。
[第7実施形態]
第7実施形態の構成は、第1〜第3の実施形態と同様であるので、説明を省略する。
第7実施形態では、第1〜第3の実施形態によって生成された読みをディスプレイ74に表示し、ユーザによる当該読みの修正を受け付ける。
図34のステップ402で、第1実施形態〜第3実施形態のいずれかの処理により、入力テキストの読みを生成する。ステップ404で、図35に示すように、当該入力テキスト及び対応する読みをディスプレイ74に表示する。ステップ406で、ユーザが、キーボード72を介して、読みを修正する入力を行い、修正を終了するためにエンターキーを押下したことを検出することにより、ディスプレイ74に表示された読みが修正されたことを判定する。判定が肯定された場合、ステップ408で、修正された読み及び入力テキストを住所テーブル68Aに新しいレコードとして格納する。ユーザが、ディスプレイ74に表示される読みの修正がないことを示すために修正なしボタン78を図示しないマウスでクリックしたことを検出することにより、ステップ406の判定が否定される。この場合、処理は終了する。
第7実施形態によれば、第1〜第3の実施形態によって生成された読みをディスプレイ74に表示し、ユーザによる当該読みの修正を受け付ける。これにより、生成された読みが誤っている場合には、正確な読みに訂正することが容易となる。
なお、上記プログラムまたはサブプログラムは2次記憶部64に予め記憶(インストール)されているが、本開示はこれに限定されない。例えば、プログラムまたはサブプログラムの全部または一部は、CD−ROMやDVD−ROM等の非一時的記憶媒体に記憶されてもよい。非一時的記憶媒体に記憶されたプログラムまたはサブプログラムの全部または一部は、2次記憶部64にインストールされた後、2次記憶部64から読み出され、1次記憶部62に展開されてもよい。また、非一時的記憶媒体から直接読み出され、1次記憶部62に展開されてもよい。
上記テーブルの各々の情報は2次記憶部64に予め記憶されているが、本開示はこれに限定されない。例えば、テーブルの情報の全部または一部は、CD−ROMやDVD−ROM等の非一時的記憶媒体に記憶されてもよい。非一時的記憶媒体に記憶されたテーブルの情報の全部または一部は、2次記憶部64にインストールされてもよいし、1次記憶部62にインストールされてもよい。
また、上記プログラムまたはサブプログラムは、外部サーバに記憶されてもよい。外部サーバに記憶されたプログラムまたはサブプログラムの全部または一部は、外部インターフェイス702を介して2次記憶部64にインストールされた後、2次記憶部64から読み出され、1次記憶部62に展開されてもよい。あるいは、外部サーバに記憶されたプログラムまたはサブプログラムの全部または一部は、外部サーバから直接読み出され、1次記憶部62に展開されてもよい。
また、上記テーブルの情報の各々は、外部サーバに記憶されてもよい。外部サーバに記憶されたテーブルの情報の全部または一部は、外部インターフェイス702を介して2次記憶部64にインストールされてもよいし、1次記憶部62にインストールされてもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
表記及び前記表記に対応する読みが既知である複数の既知住所の各々を前記表記と前記読みとを対応させて記憶した記憶部と、
前記記憶部に記憶されていない新住所の表記及び前記既知住所の表記の各々に含まれる区画の単位を表す特定語を削除するか、または、前記新住所の表記及び前記既知住所の表記の一方に含まれる特定語を所定の変換規則で他の特定語に変換し、前記新住所に含まれる特定語以外の表記の全てを含む前記既知住所の表記を読み出す読み出し部と、
読み出された前記既知住所の前記特定語の読みの少なくとも1つを前記新住所の前記特定語の読みに置き換えることにより、前記既知住所の読みから前記新住所の読みを生成する読み生成部と、
を備える読み生成装置。
(付記2)
前記新住所の表記を変換するための前記変換規則は、前記新住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
請求項1に記載の読み生成装置。
(付記3)
前記既知住所の表記を変換するための前記変換規則は、前記既知住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
請求項1に記載の読み生成装置。
(付記4)
前記読み生成部が置き換えた前記特定語に応じて、付記1〜3のいずれかの読み生成装置によって生成された前記新住所の読みのアクセント位置の変更及び無声化の少なくとも一方を行う音声変更部と、
前記読みに基づいて合成音声を生成する音声合成部と、
を備える音声合成装置。
(付記5)
音声信号の特徴を抽出する音声特徴抽出部と、
付記3の読み生成装置によって生成された読みに対応する音響モデルと前記特徴とを照合し、類似度に応じて照合スコアを生成する照合スコア生成部と、
もっとも高い類似度を示す照合スコアを生成した読みに対応する表記を前記音声信号が示す新住所として認識する音声認識部と、
を備える音声認識装置。
(付記6)
コンピュータに、
表記及び前記表記に対応する読みが既知である複数の既知住所の各々を前記表記と前記読みとを対応させて記憶する記憶部に記憶されていない新住所の表記及び前記既知住所の表記の各々に含まれる区画の単位を表す特定語を削除するか、または、前記新住所及び既知住所の表記の一方に含まれる特定語を所定の変換規則で他の特定語に変換し、前記新住所に含まれる特定語以外の表記の全てを含む前記既知住所の表記を読み出し、
読み出された前記既知住所の前記特定語の読みの少なくとも1つを前記新住所の前記特定語の読みに置き換えることにより、前記既知住所の読みから前記新住所の読みを生成する、
ことを含む処理を実行させる読み生成方法。
(付記7)
前記新住所の表記を変換するための前記変換規則は、前記新住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
付記6に記載の読み生成方法。
(付記8)
前記既知住所の表記を変換するための前記変換規則は、前記既知住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
付記6に記載の読み生成方法。
(付記9)
コンピュータが、
前記読みの生成で置き換えた前記特定語に応じて、付記6〜8のいずれかの読み生成方法によって生成された前記新住所の読みのアクセント位置の変更及び無声化の少なくとも一方を行い、
前記読みに基づいて合成音声を生成する、
音声合成方法。
(付記10)
音声信号の特徴を抽出し、
付記8の読み生成方法によって生成された読みに対応する音響モデルと前記特徴とを照合し、類似度に応じて照合スコアを生成し、
もっとも高い類似度を示す照合スコアを生成した読みに対応する表記を前記音声信号が示す新住所として認識する、
音声認識方法。
(付記11)
表記及び前記表記に対応する読みが既知である複数の既知住所の各々を前記表記と前記読みとを対応させて記憶する記憶部に記憶されていない新住所の表記及び前記既知住所の表記の各々に含まれる区画の単位を表す特定語を削除するか、または、前記新住所及び既知住所の表記の一方に含まれる特定語を所定の変換規則で他の特定語に変換し、前記新住所に含まれる特定語以外の表記の全てを含む前記既知住所の表記を読み出し、
読み出された前記既知住所の前記特定語の読みの少なくとも1つを前記新住所の前記特定語の読みに置き換えることにより、前記既知住所の読みから前記新住所の読みを生成する、
ことを含む読み生成処理をコンピュータに実行させるためのプログラム。
(付記12)
前記新住所の表記を変換するための前記変換規則は、前記新住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
付記11に記載のプログラム。
(付記13)
前記既知住所の表記を変換するための前記変換規則は、前記既知住所の表記に含まれる特定語の少なくとも1つを異なる特定語に置換する変換を少なくとも含む、
付記11に記載のプログラム。
(付記14)
前記読みの生成で置き換えた前記特定語に応じて、付記11〜13のいずれかのプログラムによって生成された前記新住所の読みのアクセント位置の変更及び無声化の少なくとも一方を行い、
前記読みに基づいて合成音声を生成する、
音声合成処理をコンピュータに実行させるためのプログラム。
(付記15)
音声信号の特徴を抽出し、
付記13のプログラムの読み生成処理によって生成された読みに対応する音響モデルと前記特徴とを照合し、類似度に応じて照合スコアを生成し、
もっとも高い類似度を示す照合スコアを生成した読みに対応する表記を前記音声信号が示す新住所として認識する、
音声認識処理をコンピュータに実行させるためのプログラム。