(57)【特許請求の範囲】
【請求項１】
複数の単語列を集めた教師データを記憶している教師データ記憶部と、
解析対象となる単語列を取得する取得部と、
前記取得部が取得した単語列の先頭から末尾まで順番に、連続する複数の単語からなる部分列を抽出する抽出部と、
前記抽出部が抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記取得部が取得した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成するパターン生成部と、
前記抽出部が抽出した部分列のそれぞれについて、前記パターン生成部が生成した複数の区切パターンに対応する区切れ方で区切れる確からしさである区切確率係数を、前記教師データ記憶部に記憶されている前記抽出した部分列を含む単語列の数と前記抽出した部分列であって前記区切パターンに対応する区切れ方で区切られている単語列の数との比に基づいて、取得する確率係数取得部と、
前記確率係数取得部により取得された部分列のそれぞれの区切パターンの区切確率係数と、当該部分列の１つ前の部分列であって当該部分列と共通する区切パターンを有する部分列の区切確率係数の大きい方とを乗算して、当該部分列までのルート確率係数を算出するルート確率係数算出部と、
前記ルート確率係数算出部により前記抽出部が抽出した末尾の部分列までのルート確率係数が算出された後に、最も大きなルート確率係数が得られたルートを選択する選択部と、
前記選択部が選択したルートに対応する区切パターンの区切り方で、前記取得部が取得した単語列を分割する分割部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記教師データ記憶部が記憶している単語列は、前記解析対象となる単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列である、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記解析対象となる単語列と前記教師データ記憶部が記憶している単語列とが献立を表現する単語列である、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
文字列の画像を撮影する撮影部と、
前記撮影部が撮影した画像から文字列を抽出する文字列抽出部と、
を備え、
前記取得部は、前記文字列抽出部が抽出した文字列から解析対象となる単語列を取得する、
ことを特徴とする請求項１乃至３の何れか一つに記載の情報処理装置。
【請求項５】
複数の単語列を集めた教師データを記憶している教師データ記憶部を有するコンピュータに、
解析対象となる単語列を取得する取得処理と、
前記取得処理が取得した単語列の先頭から末尾まで順番に、連続する複数の単語からなる部分列を抽出する抽出処理と、
前記抽出処理が抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記取得処理が取得した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成するパターン生成処理と、
前記抽出処理が抽出した部分列のそれぞれについて、前記パターン生成処理が生成した複数の区切パターンに対応する区切れ方で区切れる確からしさである区切確率係数を、前記教師データ記憶部に記憶されている前記抽出した部分列を含む単語列の数と前記抽出した部分列であって前記区切パターンに対応する区切れ方で区切られている単語列の数との比に基づいて、取得する確率係数取得処理と、
前記確率係数取得処理により取得された部分列のそれぞれの区切パターンの区切確率係数と、当該部分列の１つ前の部分列であって当該部分列と共通する区切パターンを有する部分列の区切確率係数の大きい方とを乗算して、当該部分列までのルート確率係数を算出するルート確率係数算出処理と、
前記ルート確率係数算出処理により前記抽出処理が抽出した末尾の部分列までのルート確率係数が算出された後に、最も大きなルート確率係数が得られたルートを選択する選択処理と、
前記選択処理が選択したルートに対応する区切パターンの区切り方で、前記取得処理が取得した単語列を分割する分割処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
複数の単語を含む単語列を意味単位ごとに区切り、その区切った単位ごとに翻訳・意味解析等を実行して結果をユーザに提示する表示装置が知られている。このような表示装置に関連して、解析対象となる単語列がどの単語と単語との間（語間）で区切れるか推測する技術が提案されている。
【０００３】
例えば、特許文献１は予め解析対象となる単語列が属する言語の文法規則をプログラミングした構文解析器を用いて文書の区切れ方を推測する技術を提案している。
また、特許文献２は、分かち書きされていない文字列を単語毎に分割する技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３０９３１０号公報
【特許文献２】特開平１０−２５４８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、原文がどの単語と単語との間で区切れるかを推測するために、原文が属する言語の文法規則をプログラミングした構文解析器を用いる。そのため、区切り方の推測精度が構文解析器の精度に依存してしまう。しかし、精度の高い構文解析器を制作することは困難であり、また精度の高い構文解析を実行するためには計算量が大きくなってしまうという問題があった。
特許文献２は、分かち書きされていない文字列を単語毎に分割する技術を開示しているが、文字列がどの単語と単語との間で区切れるか判別する方法を開示していない。
【０００６】
本発明は上記事情に鑑みてなされたもので、解析対象となる単語列を、構文解析器を用いず区切ることができる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本願発明に係る情報処理装置は、
複数の単語列を集めた教師データを記憶している教師データ記憶部と、
解析対象となる単語列を取得する取得部と、
前記取得部が取得した単語列の先頭から末尾まで順番に、連続する複数の単語からなる部分列を抽出する抽出部と、
前記抽出部が抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記取得部が取得した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成するパターン生成部と、
前記抽出部が抽出した部分列のそれぞれについて、前記パターン生成部が生成した複数の区切パターンに対応する区切れ方で区切れる確からしさである区切確率係数を、前記教師データ記憶部に記憶されている前記抽出した部分列を含む単語列の数と前記抽出した部分列であって前記区切パターンに対応する区切れ方で区切られている単語列の数との比に基づいて、取得する確率係数取得部と、
前記確率係数取得部により取得された部分列のそれぞれの区切パターンの区切確率係数と、当該部分列の１つ前の部分列であって当該部分列と共通する区切パターンを有する部分列の区切確率係数の大きい方とを乗算して、当該部分列までのルート確率係数を算出するルート確率係数算出部と、
前記ルート確率係数算出部により前記抽出部が抽出した末尾の部分列までのルート確率係数が算出された後に、最も大きなルート確率係数が得られたルートを選択する選択部と、
前記選択部が選択したルートに対応する区切パターンの区切り方で、前記取得部が取得した単語列を分割する分割部と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、解析対象となる単語列を、構文解析器を用いず区切ることができる情報処理装置及びプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１に係るメニュー表示装置の構成を示すブロック図であり、（ａ）は機能構成を、（ｂ）は物理構成を、それぞれ示す。
【図２】実施形態１に係るメニュー表示装置が実行する処理を説明するための図であり、（ａ）は撮影した画像を、（ｂ）は単語列を分割した結果を、（ｃ）は表示データを、それぞれ示す。
【図３】実施形態１に係るメニュー表示装置が実行する処理を説明するための図であり、（ａ）は文字列とタグ付き文字列との関係を、（ｂ）は単語列と区切フラグとｎグラム（トライグラム）と区切パターンとの関係を、それぞれ示す。
【図４】実施形態１に係るメニュー解析部の機能構成を示すブロック図である。
【図５】実施形態１に係るメニュー解析部が実行する処理を説明するための図である。
【図６】実施形態１に係る確率係数出力部の構成を示すブロック図である。
【図７】実施形態１に係るｎグラムリストの例を示す図であり、（ａ）はトライグラムリストを、（ｂ）はバイグラムリストを、（ｃ）はモノグラムリストを、それぞれ示す。
【図８】実施形態１に係る確率係数算出処理の概要を示す図であり、（ａ）はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、（ｂ）はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図９】実施形態１に係るメニュー表示装置が実行するメニュー表示処理を示すフローチャートである。
【図１０】実施形態１に係るメニュー表示装置が実行するメニュー分割処理を示すフローチャートである。
【図１１】実施形態１に係るメニュー表示装置が実行する区切確率係数取得処理を示すフローチャートである。
【図１２】実施形態１に係るメニュー表示装置が実行する確率係数算出処理を示すフローチャートである。
【図１３】本発明のその他の実施形態に係るｎグラム（バイグラム）パターン確率係数リストを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態に係るメニュー表示装置を、図を参照しながら説明する。なお、図中同一又は相当する部分には同一符号を付す。
【００１１】
（実施形態１）
実施形態１に係るメニュー表示装置１は、ｉ）解析対象となる特定のカテゴリに属する文字列（メニュー、献立等）を記載した紙等を撮影する撮影機能、ｉｉ）撮影した画像から解析対象となる文字列を認識して抽出する機能、ｉｉｉ）抽出した文字列を解析して単語列に変換する機能、ｉｖ)文字列の所定部分（単語間）でメニューが区切れる確率を示す係数を出力する機能、ｖ)区切れる確率係数に基づいて単語列を区切る機能、ｖｉ)区切った単語列をそれぞれ表示データに変換する機能、ｖｉｉ)表示データを表示する機能、等を備える。
【００１２】
メニュー表示装置１は図１（ａ）に示すように画像入力部１０と、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）２０とメニュー解析部３０と確率係数出力部４０と変換部５０と用語辞書記憶部６０とを含む情報処理部７０と、表示部８０と、操作入力部９０と、を備える。
【００１３】
画像入力部１０は、カメラと画像処理部とから構成され、このような物理構成によりメニューを撮影した画像を取得する。画像入力部１０は、取得した画像をＯＣＲ２０に伝達する。
【００１４】
情報処理部７０は、物理的には、図１（ｂ）に示すように情報処理部７０１と、データ記憶部７０２と、プログラム記憶部７０３と、入出力部７０４と、通信部７０５と、内部バス７０６と、から構成される。
【００１５】
情報処理部７０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）、等から構成され、プログラム記憶部７０３に記憶されている制御プログラム７０７に従って、後述するメニュー表示装置１に係る処理を実行する。
【００１６】
データ記憶部７０２は、ＲＡＭ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成され、情報処理部７０１の作業領域として用いられる。
【００１７】
プログラム記憶部７０３は、フラッシュメモリ、ハードディスク、等の不揮発性メモリから構成され、情報処理部７０１の動作を制御する制御プログラム７０７と、下記に示す処理を実行するためのデータを記憶する。
【００１８】
通信部７０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）デバイス、モデム等から構成され、ＬＡＮ回線や通信回線を介して接続された外部機器に情報処理部７０１の処理結果を送信する。また、外部機器から情報を受信して、情報処理部７０１に伝達する。
なお、情報処理部７０１と、データ記憶部７０２と、プログラム記憶部７０３と、入出力部７０４と、通信部７０５と、は内部バス７０６によってそれぞれ接続され、情報の送信が可能である。
【００１９】
入出力部７０４は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やシリアルポートによって情報処理部７０に接続された、画像入力部１０、表示部８０、操作入力部９０、外部装置等との情報の入出力を制御するＩ／Ｏ部である。
【００２０】
情報処理部７０は、上記物理構成によりＯＣＲ２０と、メニュー解析部３０と、確率係数出力部４０と、変換部５０と、用語辞書記憶部６０と、として機能する。
【００２１】
ＯＣＲ２０は、画像入力部１０から伝達された画像の文字を認識し、メニューに記された文字列（料理名等）を取得する。ＯＣＲ２０は、取得した文字列をメニュー解析部３０に伝達する。
【００２２】
メニュー解析部３０は、ＯＣＲ２０から伝達された文字列を単語に分割して単語列Ｗに変換する。
メニュー解析部３０は、単語列Ｗを構成する単語と単語との間である語間（注目語間）に対して、語間を構成する単語を少なくとも一つ含む部分単語列(ｎグラム)を抽出する。そして、そのｎグラムと、そのｎグラムの語間で単語列Ｗが区切れる場合と区切れない場合に対応する区切パターンを指定する情報と、を確率係数出力部４０に伝達する。ｎグラムと区切パターンと区切確率係数については後述する。
メニュー解析部３０は、確率係数出力部４０が出力する、ｎグラムがその区切パターンで区切れる確からしさを示す係数（区切確率係数）を受け取る。メニュー解析部３０は、確率係数出力部４０から受け取った区切確率係数を用いて、単語列Ｗを分割して部分列を抽出し、部分列（分割した単語列Ｗ）を変換部５０に出力する。メニュー解析部３０が実行する具体的な処理については後述する。
【００２３】
確率係数出力部４０は、メニュー解析部３０からｎ個の単語（ｎグラム）と、そのｎグラムで区切確率係数が必要な区切パターンを示す情報（区切フラグ）と、を伝達される。確率係数出力部４０は、教師データを記憶している。確率係数出力部４０は、メニュー解析部３０からｎグラムと区切パターンを示す情報を伝達されると、教師パターンを参照し、区切確率係数を取得して、メニュー解析部３０に伝達する。
確率係数出力部４０の機能構成と実行する具体的な処理については後述する。
【００２４】
変換部５０は、メニュー解析部３０から伝達された分割された単語列Ｗを、部分列ごとに用語辞書記憶部６０を参照して表示用データに変換する。
変換部５０は、部分列のそれぞれに含まれる単語を、用語辞書記憶部６０に伝達し、用語辞書記憶部６０からその単語の解説データを取得する。変換部５０は、部分列ごとに、原文であるメニューの単語と、その単語の解説データを並べて、表示データを生成する。
変換部５０は、生成した表示データを表示部８０に伝達する。
【００２５】
用語辞書記憶部６０は、教師データに含まれる単語又は単語列と、その単語の解説のためのデータと、を対応付けて登録した用語辞書を記憶する。
用語辞書記憶部６０は、変換部５０から単語又は単語列を送信されると、その単語又は単語列が登録されていた場合、用語辞書でその単語又は単語列と対応付けて記録されている解説データを変換部５０に伝達する。また、その単語又は単語列を登録していなかった場合には、その旨を示すemptyデータを送信する。
【００２６】
表示部８０は、液晶ディスプレイ等から構成され、変換部５０から伝達された情報を表示する。
【００２７】
操作入力部９０は、タッチパネル、キーボード、ボタン、ポインティングデバイス等の、ユーザの操作を受付ける操作受付装置と、操作受付装置が受け付けた操作の情報を情報処理部７０に伝達する伝達部と、から構成される。操作入力部９０はこのような物理構成によりユーザの操作を受け付けて、その情報を情報処理部７０に伝達する。
【００２８】
ここで、メニュー表示装置１がメニューを撮影した画像と、分割された文字列と、表示用データと、の関係を図２を参照して説明する。
メニュー表示装置１は、ユーザが画像入力部１０を用いてレストランのメニュー等を撮影すると、図２（ａ）に示すような画像Ｉ１を取得する。
そして、画像Ｉ１からＯＣＲ２０が文字列を抽出し、メニュー解析部３０が単語単位で分割して、図２（ｂ）に示すように分割された単語列（部分列）として変換部５０に伝達する。そして、変換部５０が図２（ｃ）に示すような部分列ごとに解説文をつけた表示データに変換して表示する。
【００２９】
ここで、本実施形態に係る解析対象となる文字列（メニュー）と、教師データであるタグ付文字列と、ｎグラムと、区切フラグと、区切パターンと、について、図３を参照して説明する。
本実施形態で解析対象となる文字列は、図３（ａ）の上に示されるようなメニューを示す文字列である。図３に示すメニュー「豚バラ肉の赤ワイン煮温野菜添え」にタグを付し、単語毎・固まり毎に分割したデータがタグ付文字列（教師データ、図３（ａ）下）である。図３（ａ）の例では、タグ付文字列は「<m><c>
<w>豚</w>バラ肉</w><w>の</w>

<w>赤ワイン</w><w>煮</w>

<w></c>温野菜</w><w>添え</w>
</m>」である。
【００３０】
このタグ付文字列では、メニューが単語を示すタグ<w></w>によって、「豚」、「バラ肉」、…、「添え」、の７つの単語に分割されている。さらに、材料名、料理方法、等の単位に分割するタグ

により、「豚バラ肉の」、「赤ワイン煮」、「温野菜添え」、という三つに分割されている。また、材料名と料理方法とその他の修飾語（例えば「プロバンス風」、「特選」、等）を含む一つの料理の単位に分割するタグ<c><c/>により、「豚バラ肉の赤ワイン煮」と「温野菜添え」との二つに分割されている。タグ<m></m>は文字列を一つのメニュー（献立）ごとに区切るタグである。ここで、タグ付文字列は文字列をタグ<w>、
、<c>、<m>で区切っているが、区切り方を定義する形式はこれに限られない。例えば、所定のカテゴリに含まれる文字列を、単語単位に区切るユニークなマーク（半角スペースでも可）と、さらに単語以外の少なくとも一つの区切り方で区切るユニークなマークと、を含む任意の文字列によって区切り方を定めても良い。なお、タグ付文字列は、予め特定の言語（ここでは日本語）の特定のカテゴリ（ここでは献立や料理名）に属する文字列を収集して、人手でタグ付けされたデータである。なお、タグ付文字列をタグ付けする方法は人手に限らず、構文解析器等の既知の任意のタグ付け方法であって良い。
【００３１】
タグ付文字列と、ｎグラムと、区切フラグと、ｎグラムと、区切りパターンと、の関係を図３（ｂ）に示す。タグ付文字列の単語列から、最初の単語からｎ個目の単語、２つの目の単語からｎ＋１個目の単語、…のようにｎ個の単語を含む単語列の集合を抽出したものがｎグラム列である。ｎグラム列を構成するそれぞれのｎ個の単語を含む単語列をｎグラムと呼ぶ。さらに、ｎ＝３のｎグラムをトライグラム、ｎ＝２のｎグラムをバイグラム、ｎ＝１のｎグラムをモノグラム、と呼ぶ。
【００３２】
「豚バラ肉の赤ワイン煮温野菜添え」から、トライグラム「豚バラ肉の」、「バラ肉の赤ワイン」、…、「煮温野菜添え」、から構成されるトライグラム列を得ることが出来る（図３（ｂ））。メニューの単語列は図３（ｂ）の上部に示すように、タグ構造によってツリー状に区切られる。そして、システムの設計上定められたツリーの所定の高さ（タグ付文字列の所定のタグに対応）で、単語と単語との間のどこで区切れるか、その区切り方を定めることが出来る。
【００３３】
図３（ｂ）上のツリーの例では、タグ<m>又は</m>がある部位、タグ
及び
がある部位、タグ<c>及び</c>がある部位、のそれぞれ（区切ライン）でメニューが区切れている。単語列の語間のそれぞれで、区切れている場合に１、区切れて居ない場合を０で示した情報を区切フラグと呼ぶ。
なお、どのタグがある部分で区切れていると判断するかの判断基準は、自由に設定可能である。例えば、

タグがある部分のみで区切れていると判断して区切フラグを配置する設定等の任意の設定が可能である。
【００３４】
ｎグラムについて、そのｎグラムの語間のそれぞれで単語列が区切れているか否かを、単語と区切フラグを並べて定義したパターンを区切パターンという。
例えば、トライグラムを構成する３つの単語（単語Ａ、単語Ｂ、単語Ｃ）について、単語Ａの前、単語Ｃの後ろを含むいずれの語間でも教師データが区切れて居ない場合に対応する区切パターンは「０Ａ０Ｂ０Ｃ０」、全ての語間で区切れている場合に対応する区切パターンは「１Ａ１Ｂ１Ｃ１」、である。
【００３５】
あるｎグラムで構成されている教師データの数（例えばＭ個）と、そのｎグラムの区切りパターンで区切れている教師データの数（例えばｍ個）と、から算出される係数ｍ／Ｍを、教師データにおいてそのｎグラムに該当する部分がその区切りパターンで区切れている確からしさを示す係数（区切確率係数）として定義できる。教師データとなるタグ付文字列を十分な数だけ、偏り無く用意すれば（Ｍが十分大きければ）、区切確率係数はその言語でそのｎグラムを含むメニュー全体でそのｎグラムに対応する部位がその区切パターンに対応する区切方で区切れている確からしさを示す係数とみなすことができる。
【００３６】
次に、メニュー解析部３０の機能構成について、図４を参照して説明する。メニュー解析部３０は、図４に示すように、文字列取得部３１０、分かち書き部３２０、ｎグラム列生成部３３０、ｎグラム選択部３４０、区切パターン生成部３５０、確率係数取得部３６０、ルート確率係数算出部３７０、ルート選択部３８０、単語列分割部３９０、出力部３１１、から構成される。
【００３７】
文字列取得部３１０は、ＯＣＲ２０が抽出した文字列を受け取り、分かち書き部３２０に伝達する。
【００３８】
分かち書き部３２０は、文字列取得部３１０が取得した文字列を単語単位に分割する分かち書き処理を実行する。分かち書き部３２０は文字列から単語を抽出する任意の既知の方法を用いて上記分かち書き処理を実行してよいが、ここでは特許文献２が例示する方法を用いることとする。
なお、分かち書き部３２０は、解析対象となるメニューが英語やフランス語等の単語毎にスペースで区切られる言語であった場合は、スペースを認識して上記分かち書き処理を実行する。
分かち書き部３２０は、分かち書き処理によりメニューの文字列を単語列Ｗに変換してｎグラム列生成部３３０へ伝達する。
【００３９】
ｎグラム列生成部３３０は、分かち書き部３２０からメニューの単語列Ｗを伝達されると、単語列Ｗからｎグラムの集合であるｎグラム列を抽出する。ｎグラム列生成部３３０は、生成したｎグラム列をｎグラム選択部３４０に伝達する。ｎグラム列に含まれる各ｎグラムは、単語列Ｗの部分列である。
【００４０】
ｎグラム選択部３４０は、生成したｎグラム列のｎグラムを先頭（又は最後尾）から順次最後尾（又は先頭）に向かって注目ｎグラムとして選択し、選択した注目ｎグラムを区切パターン生成部３５０に伝達する。
【００４１】
区切パターン生成部３５０は、注目ｎグラムを伝達されると、注目ｎグラムについて定義できる区切パターン（通常２＾（ｎ＋１）個）を生成する。区切パターン生成部３５０は、生成した区切パターンを確率係数取得部３６０に伝達する。なお、ｎグラムから生成される区切パターンをそのｎグラムの対応区切パターンと呼ぶ。
【００４２】
確率係数取得部３６０は、伝達された対応区切パターンを、確率係数出力部４０に伝達して区切パターンの区切確率係数を受け取る。確率係数取得部３６０は、区切パターンと取得した区切確率係数とを対応付けてルート確率係数算出部３７０に伝達する。
【００４３】
ルート確率係数算出部３７０は、確率係数取得部３６０から伝達された区切パターンとその区切確率係数から、各区切パターンのルート確率係数を算出する。
【００４４】
ここで、ルート確率係数算出部３７０が算出するルート確率係数について、図５を参照して説明する。
単語列Ｗから抽出されたｎグラムを、先頭からｎグラム１、ｎグラム２、・・・と表記する。以下、ｎ＝２であるとする。図５の例では、ｎグラム１はバイグラム「豚−バラ」、ｎグラム２はバイグラム「バラ−肉」、である。ｎグラム１とｎグラム２は、互いに隣接するｎグラム（隣接ｎグラム、隣接部分列）と考えることが出来る。
【００４５】
ｎグラム１の対応区切パターンとして８つの区切パターンが定義できる（図５の左側）。
【００４６】
ｎグラム１の対応区切パターンのそれぞれについて、確率係数取得部３６０が取得した区切確率係数を区切確率係数ｐ１１〜ｐ１８とする。
【００４７】
次に、ｎグラム２の対応区切パターンを、８つ定義する（図５の左から２列目）。ｎグラム２の区切確率係数を区切確率係数ｐ２１〜ｐ２８とする。
そして、ｎグラム２の対応区切パターンと、ｎグラム１の対応区切パターンとにおいて、対応する語間の区切フラグが共通の区切パターン（共通隣接区切パターン）に注目する。
例えば、ｎグラム１の対応区切パターンの「１豚０バラ０」の共通隣接区切パターンは、ｎグラム２の対応区切パターンのうち「０バラ０肉０」と「０バラ０肉１」とである。
また、ｎグラム３のある対応区切パターンの共通隣接区切パターンとして、ｎグラム２の対応区切パターンのうち対応する語間の区切フラグが共通の２つが挙げられる。例えば、ｎグラム３の対応区切パターンの「０肉０の０」の共通隣接区切パターンは、ｎグラム２の対応区切パターンのうち「０バラ０肉０」と「１バラ０肉０」である。
【００４８】
ｎグラム２の対応区切パターン（ｙ番目）のルート確率係数ｐｐ２ｙを、その区切確率係数ｐ２ｙと、ｎグラム１の共通隣接区切パターンのうち、大きい方（対応隣接区切パターン、図５の実線の矢印で示すパス）の区切確率係数の値との積とする。
さらに、ｎグラム３の対応区切パターンのルート確率係数は、その区切確率係数と、ｎグラム２の共通隣接区切パターンのうち、ルート確率係数が大きい方の共通隣接区切パターン（対応隣接区切パターン、図５の実線の矢印で示すパス）のルート確率係数と、の積とする。このように、図５に示すような隣接ｎグラムの区切パターンをそれぞれ共通隣接区切パターンどうし対応づけたテーブルを用いてルート確率係数を計算していく。このテーブルをルート確率テーブルと呼ぶ。
【００４９】
ｎグラム１のルート確率係数を、その区切確率係数と等しいとし、ｎグラムｘの対応区切パターン（ｙ番目）のルート確率係数ｐｐｘｙは、その区切確率係数ｐｘｙと、対応隣接区切パターンのルート確率係数のうち大きい方の値の積であると定義する。
【００５０】
このとき、各対応区切パターンのルート確率係数は、最初のｎグラム（ｎグラム１）からその対応区切パターンまで、最も確からしいルート（最尤ルート）をたどった場合に、そのルートに現れる区切パターンの区切り方で単語列が区切れる確からしさを示す係数である。
このルート確率係数は、最尤ルートに現れる区切パターンの区切確率係数の一つ一つに対して、少なくとも所定の値域では増加関数である任意の式・算出方法で求める係数であるとしてもよい。例えば、最尤ルートに現れる区切パターンの区切確率係数の加算平均としても良い。また、区切確率係数とルート確率係数との対応関係を実験により求め、その対応関係を記憶したテーブルを予めプログラム記憶部７０３に記憶しておき、このテーブルを参照してルート確率係数を求めても良い。
【００５１】
このように、次の隣接ｎグラムの各区切パターンについてルート確率係数を算出し、最後のｎグラム（図５の例ではｎグラム７「温野菜−添え」）のルート確率係数ｐｐ７ｙまで算出する。
【００５２】
ルート確率係数ｐｐ７ｙは、ｎグラム１からｎグラム７まで、その区切パターンに到達する全てのルートのうち最も確からしいルートの区切り方の確からしさを示す係数である。そこで、ルート確率係数ｐｐ７ｙ（ｙ＝１〜８）のうち最も大きい値を持つ対応区切パターンを選択する。図５の例では、「１温野菜０添え１」（ｙ＝４）が選択される。そして、選択された対応区切パターンに至るルートを特定して、単語列Ｗの最尤ルートとする。
【００５３】
最尤ルートは、選択された区切パターンの隣接対応区切パターンのうちより大きいルート確率係数を持つパターンを選択し、最後のｎグラム（ｎグラム７）から最初のｎグラム（ｎグラム１）まで辿ることにより定めることが出来る。
【００５４】
そして、最尤ルートに現れる区切パターンを、それぞれ単語列Ｗを区切る区切パターンとして選択し、その区切り方で単語列Ｗを区切ることとする。
【００５５】
ルート確率係数算出部３７０は、各区切パターンのルート確率係数を算出すると、各区切パターンと、算出したルート確率係数と、を対応づけてルート選択部３８０に伝達する。
【００５６】
ルート選択部３８０は、ルート確率係数算出部３７０から伝達された各区切パターンとそのルート確率係数とから、図５で説明した最尤ルートを求め、区切パターン生成部３５０が生成した区切パターンから最尤ルートに現れる区切パターンを選択する。ルート選択部３８０は、選択した区切パターンを単語列分割部３９０に伝達する。
【００５７】
単語列分割部３９０は、ルート選択部３８０から伝達された区切パターンの区切り方で、単語列Ｗを各部分列に分割する。そして、分割した単語列の各部分列を、出力部３１１に伝達する。
【００５８】
出力部３１１は、伝達された単語列Ｗを分割した部分列を、変換部５０に出力する。
【００５９】
次に、確率係数出力部４０の構成を、図６を参照して説明する
確率係数出力部４０は、図６に示すように、区切パターン取得部４１０、判別部４２０、（ｎ−１）グラム生成部４３０、確率係数取得部４４０、確率係数算出部４５０、出力部４６０、記憶部４７０、から構成される。
【００６０】
区切パターン取得部４１０は、メニュー解析部３０から区切パターン（確率係数を取得する必要のある区切パターン）を取得する。ここは区切りパターンはｎグラムと、各語間の区切りフラグと、を示す情報から構成される。区切パターン取得部４１０は、取得した区切パターンを判別部４２０に伝達する。
【００６１】
判別部４２０は、区切パターン取得部４１０から伝達されたｎグラムの区切パターンについて、その区切れ方でメニューが区切れる確からしさを示す確率係数が取得できるか否か判別する。判別部４２０は、判別処理にあたって、記憶部４７０のｎグラムリスト記憶部４７１０に記憶されたｎグラムリストを参照する。ｎグラムリスト及び判別部４２０が実行する判別処理の具体的な内容については後述する。
【００６２】
判別部４２０は、ｎグラムの確率係数が取得できると判別すると、確率係数取得部４４０にｎグラムを伝達する。
一方、ｎグラムの確率係数が取得できないと判別すると、（ｎ−１）グラム生成部４３０にｎグラムを伝達する。
【００６３】
（ｎ−１）グラム生成部４３０は、判別部４２０からｎグラムを伝達されると、ｎグラムを構成する最初の単語からｎ−１個目の単語から構成される（ｎ−１）グラム（前（ｎ−１）グラム）と、構成する２つ目の単語からｎ個目の単語から構成されるｎ−１グラム（後（ｎ−１）グラム）と、を生成する。
（ｎ−１）グラム生成部４３０は、生成した２つの（ｎ−１）グラムを、判別部４２０に伝達する。
【００６４】
判別部４２０は、（ｎ−１）グラム生成部４３０から２つの（ｎ−１）グラムを伝達されると、２つの（ｎ−１）グラムのそれぞれについて確率係数が取得できるか否か判別する。２つの（ｎ−１）グラムの何れか一方でも確率係数が取得できない場合は、（ｎ−１）グラム生成部４３０に３つの（ｎ−２）グラムを生成させ、以下モノグラムになるまで同様に判別処理を繰り返す。判別部４２０と（ｎ−１）グラム生成部４３０が実行する処理の具体的な内容については後述する。
判別部４２０は、（ｎ−１）グラム生成部４３０からモノグラムを伝達されると、判別処理を実行せずに確率係数取得部４４０にそのモノグラムを伝達する。
【００６５】
確率係数取得部４４０は、判別部４２０から区切パターン取得部４１０が取得した区切パターン（ｎグラムをよび区切フラグ）を伝達されると、その区切パターンの確率係数を取得して、出力部４６０に伝達する。
一方、単語列としてｎ−１グラム〜モノグラム（ここではｊグラムとする）を伝達されると、伝達された全てのｊグラムについて、区切パターン取得部４１０が取得した情報が示す区切パターンの確率係数を取得するために必要な区切パターンを生成し、それぞれの区切パターンについて確率係数を取得する。
そして、伝達された全てのｊグラムと、生成した区切パターンと、その確率係数と、を確率係数算出部４５０に伝達する。
確率係数取得部４４０は、確率係数を取得する処理で教師データ記憶部４７３０に記憶された教師データを参照してその確率係数を取得する。確率係数取得部４４０がどのように確率係数を取得するか、その具体的な処理内容については後述する。
【００６６】
確率係数算出部４５０は確率係数取得部４４０から、伝達された全てのｊグラムから生成された区切パターンと、その確率係数を伝達されると、伝達された情報からｎグラムの区切パターンの確率係数を算出する。確率係数算出部４５０がどのようにｎグラムの区切パターンの確率係数を算出するかは後述する。
確率係数算出部４５０は、ｎグラムの区切パターンの確率係数を算出すると、区切パターン取得部４１０が取得した、確率係数が必要な区切パターンの確率係数を出力部４６０に伝達する。
【００６７】
出力部４６０は、確率係数算出部４５０から伝達された区切パターンとその確率係数をメニュー解析部３０に出力する。
【００６８】
記憶部４７０は、確率係数出力部４０の記憶部４７０を除く各部から情報を伝達され、伝達された情報を記憶する。また、確率係数出力部４０の記憶部４７０を除く各部からのコマンドに応答して、記憶する情報を出力する。
【００６９】
記憶部４７０は、ｎグラムリストを記憶するｎグラムリスト記憶部４７１０、確率係数出力部４０が下記する処理を実行するための設定パラメータを記憶する設定記憶部４７２０、教師データを記憶する教師データ記憶部４７３０、を含む。
【００７０】
ｎグラムリストは、教師データ記憶部４７３０に記憶された教師データに現れる全てのｎグラムを登録したリストである。
ｎグラムリスト記憶部４７１０が記憶するｎグラムリストの例を、図７を参照して説明する。図７の例では、ｎグラム記憶部４７１０は、トライグラムリスト（図７（ａ））、バイグラムリスト（図７（ｂ））、モノグラムリスト（図７（ｃ））、をそれぞれ記憶する。
トライグラムリストは、教師データに現れる全てのトライグラムを、そのトライグラムを含む教師データが幾つあるかを示すデータ数と関連付けて記憶している。バイグラムリスト、モノグラムリストについても同様である。
【００７１】
次に、確率係数算出部４５０が、ｊグラムの区切パターン及びその確率係数を用いて、ｎグラムの区切パターンの確率係数を算出する処理について、図８を参照して説明する。
【００７２】
トライグラムリスト（図７（ａ））に、あるトライグラム（ここでは「の赤ワイン煮」）が登録されていない、あるいは十分な数（所定の閾値以上）が登録されていない場合に、確率係数算出部４５０はバイグラムやモノグラムの区切パターンの確率係数からトライグラムの区切パターンの確率係数を算出する。
【００７３】
トライグラム「の赤ワイン煮」の注目区切パターン「０の１赤ワイン０煮１」を算出する場合の算出方法を、図８（ａ）を参照して説明する。ここで、トライグラムの、前半のバイグラム（前バイグラム）は「の赤ワイン」、後半のバイグラム（後バイグラム）は「赤ワイン煮」である。そして、注目区切パターンに対応するバイグラムの区切パターン（対応区切パターン）は、対応する語間の区切フラグが共通する「０の１赤ワイン０」と「１赤ワイン０煮１」とである。
【００７４】
確率係数算出部４５０はこの対応するバイグラム（ｊグラム）の区切パターンとその確率係数を確率係数取得部４４０から伝達されると、区切フラグを比較して対応区切パターンを抽出する。そして、対応区切パターンの区切確率係数を加算平均して、注目区切パターンの区切確率係数とする（図８（ａ））。
【００７５】
同様に、対応するモノグラムの区切パターンとその区切確率係数を確率係数取得部４４０から取得すると、前・中央・最後尾の各モノグラムから対応区切パターンを抽出し、各対応区切パターンの区切確率係数を加算平均して注目区切パターンの確率係数とする（図８（ｂ））。
【００７６】
次に、メニュー表示装置１の情報処理部７０が実行する処理について、フローチャート（図９〜図１２）を参照して説明する。
メニュー表示装置１は、ユーザが画像入力部１０を用いてメニューの画像を取得する操作を実行すると、図９に示すメニュー表示処理を開始する。
【００７７】
メニュー表示処理では、まず画像入力部１０を用いてメニューの画像を取得する（ステップＳ１０１）。
そして、取得した画像から、ＯＣＲ２０が文字を認識して文字列を取得する（ステップＳ１０２）。
【００７８】
ＯＣＲ２０が文字列を取得してメニュー解析部３０に伝達すると、まずメニュー解析部３０の分かち書き部３２０が、文字列を単語単位に分割する分かち書き処理を実行して、文字列を単語列Ｗに変換する（ステップＳ１０３）。
そして、ｎグラム列生成部３３０が単語列Ｗからｎグラム列を生成する（ステップＳ１０４）。なお、以下ｎ＝２として説明する。
【００７９】
そして、メニュー解析部３０は、メニューが単語列のどの部位で区切れるか推測し、メニューを分割する処理（メニュー分割処理、ここではメニュー分割処理１）を実行する（ステップＳ１０５）。
【００８０】
ステップＳ１０５で実行されるメニュー分割処理１を、図１０を参照して説明する。メニュー分割処理１ではまずｎグラム選択部３４０が、ｑをカウンタ変数として、ｎグラム列のｑ番目のｎグラムを注目ｎグラムとして選択する（ステップＳ２０１）。
【００８１】
次に、区切パターン生成部３５０が、注目ｎグラムについて定義できる区切パターンを生成する（ステップＳ２０２）。ここでは、２＾（ｎ＋１）＝８個の区切パターンを生成する。区切パターン生成部３５０は、生成した区切パターンを図５に示すようなルート確率テーブルに配置する。
【００８２】
次に、ｒをカウンタ変数とし、ステップＳ２０２で生成した区切パターンのうちｒ番目の区切パターンを注目区切パターンとして選択する（ステップＳ２０３）。
そして、確率係数取得部３６０が確率係数出力部４０に注目区切パターンを伝達して、確率係数出力部４０が注目区切パターンの区切確率係数（図５のｐｑｒ）を取得する処理（区切確率係数取得処理、ここでは区切確率係数取得処理１）を実行する（ステップＳ２０４）。
【００８３】
ステップＳ２０４で実行される区切確率係数取得処理１を、図１１を参照して説明する。
ステップＳ２０４に至り、メニュー解析部３０からｎグラムと、確率係数を算出すべき区切パターンについて情報と、を含む区切パターンを区切パターン取得部４１０が受信すると、確率係数出力部４０は区切確率係数取得処理を開始する。
確率係数取得処理では、まず判別部４２０がｎグラムリスト記憶部４７１０に記憶されているｎグラムリストを参照して、注目ｎグラムを含む教師データのデータ数を取得する（ステップＳ３０１）。
【００８４】
そして、注目ｎグラムの確率係数を求めるのに十分な数の教師データが存在しているか否か、設定記憶部４７２０に記憶されたｎグラム用（ここではバイグラム）の閾値と注目ｎグラムのデータ数とを比較して判別する（ステップＳ３０２）。
【００８５】
注目部分列のデータ数が閾値以上である場合（ステップＳ３０２；ＹＥＳ）、十分な数の教師データが存在していると判断できるため、現在の注目部分列（ｎグラム）をそのまま用いて区切パターンの確率係数を取得する（ステップＳ３０３）。
【００８６】
まず、確率係数取得部４４０がメニュー解析部３０から伝達された区切パターンの区切確率係数を取得する（ステップＳ３０３）。具体的には、教師データ記憶部４７３０に記憶された教師データであって注目ｎグラムを含む教師データを抽出する。このとき抽出されたデータ数をｎ１とする。抽出された教師データの対応部分の区切フラグと、区切パターンの区切フラグとを比較し、同一の区切れ方をしている教師データを抽出する。このとき抽出されたデータ数をｎ２とする。区切確率係数ｐは、ｎ１とｎ２の比で求められる。
すなわち、ｐ＝ｎ２／ｎ１である。
なお、ｐを求める方法はこれに限らず、ｐの値が、ｎ２が大きければ大きいほど大きくなり、ｎ１が大きければ大きいほど小さくなる任意の式（例えばｐ＝ｎ２＾２／ｎ１＾２）で求めることが出来る。
【００８７】
一方、注目部分列のデータ数が閾値より小さいか、ｎリストに登録されていない場合（ステップＳ３０２；ＮＯ）、十分な数の教師データが記憶されていないと判断できるため、ｎ−１グラム〜モノグラムを用いて確率係数を算出する処理（確率係数算出処理、ここでは確率係数算出処理１）を実行する（ステップＳ３０４）。
【００８８】
ステップＳ３０４で実行される確率係数算出処理１について、図１２を参照して説明する。
確率係数算出処理１では、まず（ｎ−１）グラム生成部４３０が注目文字列（ｎグラム）の部分列である（ｎ−１）グラムを二つを生成する（ステップＳ４０１）。
【００８９】
そして、判別部４２０が、二つの（ｎ−１）グラムの両方について、確率係数が取得可能であるか、区切確率係数取得処理（図１１）のステップＳ３０２と同様にｎグラムリスト記憶部４７１０に記憶された（ｎ−１）グラムリストを比較して判別する。具体的には、対応する（ｎ−１）グラムのデータ数と、所定の（ｎ−１）グラム用の閾値の数とを比較する（ステップＳ４０２）。ここで、ｎグラム用の閾値はそれぞれ任意に設定可能であるが、好ましくはｎが大きいほど閾値が大きい。ｎグラムから定義できる区切パターンの数は２＾（ｎ＋１）個であり、ｎが大きくなるにつれてその数は大きくなる。大きな数の区切パターンのそれぞれの確率係数を取得するために十分な教師データの数は、それだけ大きくなるからである。
【００９０】
全ての（ｎ−１）グラムのデータ数が閾値以上である場合（ステップＳ４０２；ＹＥＳ）は、その（ｎ−１）グラム全てについて確率係数を取得できると判断できるので、（ｎ−１）グラムを用いて確率係数を算出する（図５（ａ））ためにステップＳ４０６に移行する。
【００９１】
何れかの（ｎ−１）グラムのデータ数が閾値より小さい場合（ステップＳ４０２；ＮＯ）は、何れかの（ｎ−１）グラムについて確率係数を取得できないと判断できるので、（ｎ−２）グラムを用いて確率係数を算出する（図５（ｂ））。
即ち、現在のｎ−１が１でないか判別し（ステップＳ４０３）、１で無い場合は（ステップＳ４０３；ＮＯ）、ｎを１減算し（ステップＳ４０４）、ステップＳ４０１にもどって（ｎ−１）グラムを生成する。
【００９２】
一方、ｎ−１が１である場合（ステップＳ４０３；ＹＥＳ）、さらにｎを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成し、その確率係数をデフォルト値（ここでは０．５）とする（ステップＳ４０５）。
【００９３】
そして、ステップＳ４０１〜ステップＳ４０５で全ての確率係数を取得できる（ｎ−１）の値を決定すると、次にその（ｎ−１）グラムの全てについて、メニュー解析部３０から伝達された区切パターンと対応する語間で共通する区切フラグをもつ区切パターンを生成する（ステップＳ４０６）。そして、生成した区切パターンについて、確率係数取得処理（図１１）のステップＳ３０３と同様に区切確率係数を取得する（ステップＳ４０７）。
【００９４】
そして、得られた（ｎ−１）グラムの区切パターンの区切確率係数を加算平均して注目区切パターンの区切確率係数とする（ステップＳ４０８）。
そして、確率係数算出処理１は終了する。
【００９５】
図１１にもどって、ステップＳ３０３又はステップＳ３０４で区切確率係数を取得すると、出力部４６０が取得した区切確率係数をメニュー解析部３０に出力して（ステップＳ３０５）、パターン確率係数取得処理は終了する。
【００９６】
図１０にもどって、ステップＳ２０４で注目区切パターンの区切確率係数（区切確率係数ｐｑｒ）を取得すると、次にルート確率係数算出部３７０が注目区切パターンの隣接ｎグラム列を抽出する（ステップＳ２０５）。さらに、隣接ｎグラムの対応区切パターンのうち、対応する区切フラグが共通する区切パターン（共通隣接区切パターン）を抽出する。
１度目のループでは、隣接ｎグラム列についての処理がまだ終わっていないため、この処理はスキップされる。
【００９７】
次に、抽出した共通隣接区切パターンのうち、ルート確率係数が大きいほうの区切パターンを選択し、選択された共通隣接区切パターンから注目区切パターンへのパスを、注目区切パターンへ至る最尤パスとして選択する（ステップＳ２０６）。
１度目のループでは、隣接部分列についての処理がまだ終わっていないため、この処理はスキップされる。
【００９８】
そして、ルート確率係数算出部３７０は、ステップＳ２０６で選択した最尤パスの共通隣接区切パターンのルート確率係数と、ステップＳ２０４で取得した注目区切パターンの区切確率係数とを乗算して、注目区切確率係数のルート確率係数（ルート確率係数ｐｐｑｒ）とする（ステップＳ２０７）。なお、一度目のループでは、注目区切パターンの区切確率係数をルート確率係数とする。
【００９９】
ステップＳ２０７でルート確率係数を算出すると、次に情報処理部７０はステップＳ２０２で生成した全区切パターンについてルート確率係数を算出する処理が終了したか判別する（ステップＳ２０８）。図５の例では、注目ｎグラム（ｑ列目のｎグラム）について生成された８つの区切パターンについてルート確率係数（ｐｐｑ１〜ｐｐｑ８）全ての算出が終わっていた場合、処理が終了したと判別される。
全区切パターンについて処理済でないと判別すると（ステップＳ２０８；ＮＯ）、ｒをインクリメントし（ステップＳ２０９）、次の区切パターンについてステップＳ２０３から処理を繰り返す。
【０１００】
一方、全区切パターンについて処理済であると判別すると（ステップＳ２０８；ＹＥＳ）、次に、ステップＳ１０４で生成した全ｎグラムについて区切パターンを生成しルート確率係数を算出する処理を終了したか判別する（ステップＳ２１０）。全区切パターンについて処理済でないと判別すると（ステップＳ２１０；ＮＯ）、ｑをインクリメントし（ステップＳ２１１）、次のｎグラムについてステップＳ２０１から処理を繰り返す。
【０１０１】
一方、全ｎグラムについて処理済であると判別すると（ステップＳ２１０；ＹＥＳ）、ルート選択部３８０が最後のｎグラム（図５の例ではｎグラム７）の対応区切パターンから最もルート確率係数が大きいものを選択する。図５の例では、記号「＊」で示されたルート確率係数ｐｐ７４が選択される。そして、ルートを逆にたどり、最尤ルート上にある区切パターンをそれぞれ選択する（ステップＳ２１２）。
【０１０２】
ステップＳ２１２で最尤ルート上にある区切パターンを選択すると、単語列分割部３９０が選択された区切パターンの区切り方で単語列Ｗを分割して部分列とする（ステップＳ２１３）。そして、分割した部分列を出力部３１１が変換部５０に伝達して、メニュー分割処理１は終了する。
【０１０３】
図９にもどって、メニュー分割処理（ステップＳ１０５）で、ステップＳ１０３で取得した単語列Ｗを部分列に分割すると、カウンタ変数をｉとして、ｉ番目の部分列について変換部５０が表示データを生成する処理を実行する。
即ち、ｉ番目の部分列に含まれる各単語の解説データを用語辞書記憶部６０から取得して、図２（ｃ）に示すような表示データに変換する（ステップＳ１０６）。
【０１０４】
そして、ステップＳ１０５で得られた部分列の全てについて表示データに変換する処理が終わったかを判別し（ステップＳ１０７）、終わっていない場合は（ステップＳ１０７；ＮＯ）、カウンタ変数ｉをインクリメントして（ステップＳ１０８）次の部分列についてステップＳ１０５から処理を繰り返す。
【０１０５】
一方、全ての部分列について表示データに変換したと判別した場合は（ステップＳ１０７；ＹＥＳ）、得られた表示データを表示部８０が表示する（ステップＳ１０９）。そして、メニュー表示処理１は終了する。
【０１０６】
以上説明したように、本実施形態に係るメニュー表示装置１によれば、教師データに基づいてメニューを表現する単語列を分割することが出来るため、構文解析プログラムを言語ごとに用意しなくても単語列を区切ることが出来る。
【０１０７】
また、区切パターンを選択するに当たって、そのｎグラムの区切パターンの区切確率係数と、隣接する区切パターンの区切フラグが共通する共通隣接区切パターンの区切確率係数と、を共に考慮して選択するため、ただｎグラムの区切パターンから区切確率係数が大きい区切パターンを選択する場合と比べ、より多くの情報に基づいて区切り方を定めることが出来る。
そのため、本実施形態の区切り方で単語列Ｗを区切ると、区切り方の精度が高い。
【０１０８】
本実施形態では、ルート確率係数を、対応区切パターンの区切確率係数の増加関数として求める。そのため、本実施形態のメニュー表示装置１は、ｎグラムを含む教師データでその区切り方で区切れている確からしさが大きさほど、その区切パターンが単語列Ｗの区切り方として選択される確率が高くなるため、教師データの区切り方を単語列Ｗの区切り方に反映することができる。
【０１０９】
また、本実施形態に係るメニュー表示装置１によれば、教師データが所定のカテゴリの文字列（ここではメニュー）から生成されているため、広範なカテゴリ（例えば日本語全体）の教師データを用いて区切パターンの確率係数を求めた場合よりも、カテゴリに合致した確率係数を求めることが出来る。
そのため、メニュー表示装置１を用いてメニューを分割すると、メニューを分割する精度が高い。
【０１１０】
本実施形態に係るメニュー表示装置１によれば、メニューを画像入力部１０を用いて撮影し、ＯＣＲ２０を用いて文字列を認識してメニューを解析・表示することが出来る。そのため、ユーザがメニューの文字列をわざわざ手で入力せずともメニューの文字列を取り込み、解説データを付加して表示することが出来る。そのため、たとえメニューがユーザが知らない言語で書かれていて、キーによる入力が困難である場合でも解説データを表示することができる。
【０１１１】
なお、本実施形態に係るメニュー表示装置１のパターン選択部は、ルート確率係数が一番大きいルートの区切パターンを一つ選択して、その区切り方で単語列Ｗを分割して表示するとした。本実施形態の変形例として、単語列Ｗを、ルート確率係数が所定の条件（例えば、所定の閾値以上）を満たす複数の区切り方で分割し、それぞれの分割結果を変換して表示する構成も可能である。このような構成によれば、可能性の高い複数の区切り方で解説データを表示してユーザに提示できるため、最も確がルート確率係数が大きい区切り方が間違った区切り方であった場合でも、正しい区切り方を提示できる可能性が増す。
【０１１２】
また、本実施形態に係る確率係数出力部４０によれば、注目するｎグラムを含む教師データが十分に得られない場合、あるいは無い場合であっても、そのｎグラムの部分列から区切り方に係るデータを取得して、区切パターンの確率係数を求めることが出来る。
即ち、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列（メニュー）も区切れるとの仮定の下、メニューのｎグラムの区切パターンでメニューが区切れる確からしさを、（ｎ−１）グラム〜モノグラムの教師データから推測して求めることができる。
そのため、ｎグラムそのものを含む教師データのみから区切パターンの確率係数を取得してメニューの区切位置を推定するよりも必要な教師データの数が少なくてすむ。
【０１１３】
また、本実施形態ではｎグラムの区切パターンの確率係数を、区切フラグが一致するｎ−１グラム〜モノグラムの区切パターンの確率係数に基づいて算出する。そのため、単語の共通性のみを用いて算出に使用する係数を抽出する場合に比べて、より算出結果の精度が高い。
【０１１４】
さらに、ｎグラムの部分列である（ｎ−１）グラム〜モノグラム（ｊグラム）のすべてについて信頼できる確率係数を取得できると判別できるｊの値を定め、単語数の区切パターンから確率係数を算出する。そのため、確率係数を算出するにあたって、前のｊグラムの情報量と後ろのｊグラムの情報量に偏りが無い。そのため、どちらかのｊグラムの確率係数がより強く算出結果に影響を与える、といった偏り無くｎグラムの確率係数を算出することが出来る。
【０１１５】
また、本実施形態に係る確率係数出力部４０によれば、教師データが所定のカテゴリの文字列（ここではメニュー）から生成されているため、広範なカテゴリ（例えば日本語全体）の教師データを用いて区切パターンの確率係数を求めた場合よりも、カテゴリに合致した確率係数を求めることが出来る。
そのため、確率係数出力部４０を含むメニュー表示装置１を用いてメニューを分割すると、メニューを分割する精度が高い。
【０１１６】
（変形例）
以上、本願発明の実施形態について説明したが、本願発明の実施形態はこれに限られない。
例えば、上記説明ではｎグラムの確率係数を抽出した部分列（ｊグラム）の対応パターンの確率係数を加算平均して求めるとしたが、ｎグラムの確率係数を求める方法はこれに限らない。
ｎグラムの確率係数は、ｊグラムの対応パターンの少なくとも一つが大きくなるにつれて、ｎグラムの確率係数も大きくなるような任意の計算式で代替可能である。例えば、対応パターンの確率係数のうち、最も前に位置する対応パターンの確率係数の影響が大きくなるように重み付けして加算する式、各対応パターンの確率係数を累乗平均する式、等に置換することができる。
また、ｎグラムの確率係数は所定の最大値（たとえば０．８）をもち、算出値が最大値以上であれば最大値を算出結果としてもよい。
さらに、対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部４７０に記憶し、算出式によらずこのテーブルを参照してｎグラムの確率係数を求めても良い。
【０１１７】
また、上記実施形態１では、画像入力部１０が撮影した画像から単語列Ｗを抽出したが、ユーザがキーボードを用いて入力した文字列から単語列Ｗを抽出してもよい。また、音声データから音声認識により文字列を取得しても良い。
【０１１８】
また、上記実施形態１では、変換部は単語毎に用語辞書に登録された解説文を付して表示データを作成した。
しかし、本願発明において、分割された単語列を用いて表示データを作成する方法はこれに限られない。例えば、分割された単語列を部分列毎に任意の翻訳器を用いて翻訳し、翻訳結果を表示データとしてもよい。このようなメニュー表示装置によれば、入力されたメニューが例えば中国語であった場合に、日本語だけを理解し、中国語の文字列をキーボードを用いて入力できないユーザであっても、メニューを撮影する操作を実行すれば日本語でメニューの概要を表示することが出来る。
【０１１９】
また、部分列を検索キーワードとして用語辞書等のデータベースを検索し、検索結果を表示データとしてもよい。
さらに、分割された部分列をキーワードとして画像検索し、得られた画像を表示データとして表示しても良い。
このような構成により、例えば部分列が「茎」「ワカメ」や「白ワイン」「蒸し」で有った場合、「茎」と「ワカメ」、「白ワイン」と「蒸し」がひとくくりであることと共に、「茎ワカメ」及び「白ワイン蒸し」についての解説を表示することが出来る。
【０１２０】
また、上記実施形態１では、解析対象となる単語列はメニューであったが、本発明はメニュー以外の任意のカテゴリの単語列について応用可能である。本発明の解析対象となる単語列は、現れる単語が限られていること、単語と単語との区切り方のルールが限定されていること、を特徴とするカテゴリの単語列であることが好ましい。このようなカテゴリの単語列の例として、メニューの他に住所、薬品の効能書き・説明書、等があげられる。
【０１２１】
さらに、上記実施形態では単語列の先頭及び末尾について特別の処理を実行しなかった。しかし、本発明では、単語列の先頭に先頭であることを示す記号（ＢＯＳ；Begin of sentence)を、末尾に末尾であることを示す記号（ＥＯＳ；End of sentence）をそれぞれダミー単語として配置して上記処理を実行しても良い。この場合、教師データは単語列の先頭にＢＯＳを、末尾にＥＯＳを配置したデータとなる。また、ｎグラム列生成部３３０は、ｎグラム列を生成するに当たって、先頭にＢＯＳを、末尾にＥＯＳを配置してｎグラム列を生成する。
これにより、単語列Ｗの区切り方を、単語列の先頭・末尾の位置を考慮して推測することが出来る。そのため、高い精度で単語列を区切ることが出来る。
【０１２２】
なお、上記説明では、教師データは確率係数出力部４０が記憶するとしたが、教師データは外部サーバに記憶されており、通信部７０５を用いて必要に応じて取得するとしてもよい。
また、上記実施形態１では、ｎグラムの区切パターンの確率係数を求めるにあたって、タグ付の文字列である教師データにおける区切パターンの出現確率を逐一求めていた。しかし、確率係数出力装置又は外部装置が区切パターンの確率係数を登録した区切パターン確率係数リストを記憶しており、この区切パターン確率係数リストを参照して確率係数を取得する構成も可能である。このようなパターン確率係数リストの例を、図１３を参照して説明する。図１３は、区切パターン確率係数リストの一種である、バイグラムと、区切フラグと、に対応する確率係数を登録したバイグラム区切パターン確率係数リストの例である。例えば、パターン「０１０」の列、「豚−バラ肉」の行、に数値０．０２が登録されていることは、区切パターン「０豚１バラ肉０」の確率係数が０．０２であることを示す。この変形例のメニュー表示装置１はデータ記憶部７０２にモノグラム〜ｎグラムの各区切パターン確率係数リストを記憶しており、これらを参照して必要な各ｎグラム〜モノグラムの区切パターンの確率係数を取得する。
【０１２３】
また、区切り方を示すルートを検索する方法は上記方法に限らない。本発明は、各区切パターンの確率係数を距離（重み）として用いることを条件に、距離が最小（あるいは閾値以下）となるルートを検索する既知の任意の（最短）経路探索方法を上記方法に変わって用いることが出来る。
【０１２４】
また、情報処理部７０１、データ記憶部７０２，プログラム記憶部７０３、等から構成されるメニュー表示装置のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで情報処理装置を構成してもよい。
【０１２５】
また、メニュー表示装置の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１２６】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS：Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【０１２７】
また、上記メニュー表示装置が実行する処理の一部を、メニュー表示装置とは独立したコンピュータを用いて実現しても良い。
【０１２８】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１２９】
（付記１）
解析対象となる単語列を取得する取得部と、
前記取得部が取得した単語列に含まれる単語から構成される部分列を抽出する抽出部と、
前記抽出部が抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記取得部が取得した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成するパターン生成部と、
前記抽出部が抽出した部分列のそれぞれについて、当該部分列を含む教師単語列において、前記パターン生成部が生成した区切パターンそれぞれに対応する区切れ方で教師単語列が区切れる確からしさである区切確率係数を区切パターン毎に取得する確率係数取得部と、
前記抽出部が抽出した部分列のそれぞれについて前記パターン生成部が生成した複数の区切パターンから、前記確率係数取得部が取得した当該区切パターンの区切確率係数と、当該区切パターンの部分列と対応する語間を含む部分列である隣接部分列の区切パターンのうち対応する語間について同じ区切り方を示す対応隣接区切パターンの区切確率係数と、に基づいて前記取得部が取得した単語列の区切り方を示す区切パターンを選択する選択部と、
前記選択部が選択した区切パターンの区切り方で、前記取得部が取得した単語列を分割する分割部と、
を備えることを特徴とする情報処理装置。
【０１３０】
（付記２）
前記部分列の区切パターンの区切確率係数と、前記対応隣接区切パターンの区切確率係数と、から区切パターンを選択するための係数である選択係数を求める選択係数獲得部をさらに備え、
前記選択部は前記選択係数獲得部が求めた選択係数が他の区切パターンより大きい区切パターンを選択する、
ことを特徴とする付記１に記載の情報処理装置。
【０１３１】
（付記３）
前記選択確率獲得部が求める選択係数は、前記部分列の区切パターンの区切確率係数と、前記対応隣接区切パターンの区切確率係数又は選択係数の少なくとも一つと、の少なくとも一方が大きくなると大きくなる、
ことを特徴とする付記２に記載の情報処理装置。
【０１３２】
（付記４）
前記教師単語列は、前記解析対象となる単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列である、
ことを特徴とする付記１乃至３の何れか一項に記載の情報処理装置。
【０１３３】
（付記５）
前記解析対象となる単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする付記４に記載の情報処理装置。
【０１３４】
（付記６）
文字列の画像を撮影する撮影部と、
前記撮影部が撮影した画像から文字列を抽出する文字列抽出部と、
前記文字列抽出部が抽出した文字列から単語列を生成する単語列生成部と、
前記単語列生成部が生成した単語列に含まれる単語から構成される部分列を抽出する部分列抽出部と、
前記部分列抽出部が抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記単語列生成部が生成した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成するパターン生成部と、
前記部分列抽出部が抽出した部分列のそれぞれについて、当該部分列を含む教師単語列において、前記パターン生成部が生成した区切パターンそれぞれに対応する区切れ方で教師単語列が区切れる確からしさである区切確率係数を区切パターン毎に取得する確率係数取得部と、
前記部分列抽出部が抽出した部分列のそれぞれについて前記パターン生成部が生成した複数の区切パターンから、前記確率係数取得部が取得した当該区切パターンの区切確率係数と、当該区切パターンの部分列と対応する語間を含む部分列である隣接部分列の区切パターンのうち対応する語間について同じ区切り方を示す対応隣接区切パターンの区切確率係数と、に基づいて前記単語列生成部が生成した単語列の区切り方を示す区切パターンを選択する選択部と、
前記選択部が選択した区切パターンの区切り方で、前記単語列生成部が生成した単語列を分割する分割部と、
前記分割部が分割した単語列のそれぞれについて、当該分割した単語列に含まれる単語又は単語列に対応する表示データに変換する変換部と、
前記変換部が変換した表示データを表示する表示部と、
を備えることを特徴とするデータ表示装置。
【０１３５】
（付記７）
コンピュータに、
解析対象となる単語列を取得する処理、
前記取得した単語列に含まれる単語から構成される部分列を抽出する処理、
前記抽出した部分列に含まれる単語と単語との間である語間のそれぞれについて、その語間で前記取得した単語列が区切れる場合と区切れない場合とに対応する区切パターンを、複数生成する処理、
前記抽出した部分列のそれぞれについて、当該部分列を含む教師単語列において、前記生成した区切パターンそれぞれに対応する区切れ方で教師単語列が区切れる確からしさである区切確率係数を区切パターン毎に取得する処理、
前記抽出した部分列について生成した複数の区切パターンから、前記取得した当該区切パターンの区切確率係数と、当該区切パターンの部分列と対応する語間を含む部分列である隣接部分列の区切パターンのうち対応する語間について同じ区切り方を示す対応隣接区切パターンの区切確率係数と、に基づいて前記取得した単語列の区切り方を示す区切パターンを選択する処理、
前記選択した区切パターンの区切り方で、前記取得した単語列を分割する処理、
を実行させることを特徴とするプログラム。
【符号の説明】
【０１３６】
１…メニュー表示装置、１０…画像入力部、２０…ＯＣＲ、３０…メニュー解析部、４０…確率係数出力部、５０…変換部、６０…用語辞書記憶部、７０…情報処理部、８０…表示部、９０…操作入力部、７０１…情報処理部、７０２…データ記憶部、７０３…プログラム記憶部、７０４…入出力部、７０５…通信部、７０６…内部バス、７０７…制御プログラム、３１０…文字列取得部、３１１…出力部、３２０…分かち書き部、３３０…ｎグラム列生成部、３４０…ｎグラム選択部、３５０…区切りパターン生成部、３６０…確率係数取得部、３７０…ルート確率係数算出部、３８０…ルート選択部、３９０…単語列分割部、４１０…区切パターン取得部、４２０…判別部、４３０…（ｎ−１）グラム生成部、４４０…確率係数取得部、４５０…確率係数算出部、４６０…出力部、４７０…記憶部、４７１０…ｎグラムリスト記憶部、４７２０…設定記憶部、４７３０…教師データ記憶部、Ｉ１…画像
【図１】
0005870744.tif 000002
【図２】
0005870744.tif 000003
【図３】
0005870744.tif 000004
【図４】
0005870744.tif 000005
【図５】
0005870744.tif 000006
【図６】
0005870744.tif 000007
【図７】
0005870744.tif 000008
【図８】
0005870744.tif 000009
【図９】
0005870744.tif 000010
【図１０】
0005870744.tif 000011
【図１１】
0005870744.tif 000012
【図１２】
0005870744.tif 000013
【図１３】
0005870744.tif 000014