(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>がある部位、のそれぞれ（区切ライン）でメニューが区切れている。単語列の語間のそれぞれで、区切れている場合に１、区切れて居ない場合を０で示した情報を区切フラグと呼ぶ。
なお、どのタグがある部分で区切れていると判断するかの判断基準は、自由に設定可能である。例えば、

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