(57)【要約】【課題】文字列を単語に分割する際の解析精度を向上させた情報処理装置、データ表示装置及びプログラムを提供する。【解決手段】情報処理装置は、区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、文字列の部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部とを備える。【選択図】図７
2014056362.tif 000002
【特許請求の範囲】
【請求項１】
解析対象となる文字列を取得する文字列取得部と、
前記文字列取得部が取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する部分列抽出部と、
前記部分列抽出部が抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する区切パターン生成部と、
前記区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、
前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、
前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、
前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部とを備えることを特徴とする情報処理装置。
【請求項２】
前記確率係数取得部は、部分列に含まれる単語の品詞を前記単語の属性として重み付けをすることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記確率係数取得部は、部分列に含まれる単語のカテゴリを前記単語の属性として重み付けをすることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記確率係数取得部は、予め前記部分列に含まれる単語の属性に基づき重み付けをした区切確率係数を取得することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
文字列の画像を撮影する画像入力部と、
前記画像入力部が撮影した画像から文字列を取得する文字列取得部と、
前記文字列取得部が取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する部分列抽出部と、
前記部分列抽出部が抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する区切パターン生成部と、
前記区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、
前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、
前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、
前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部と、
前記単語列分割部が分割した各単語列を対応する表示データに変換する変換部と、
前記変換部が変換した表示データを表示する表示部とを備えることを特徴とするデータ表示装置。
【請求項６】
コンピュータに、
解析対象となる文字列を取得する処理、
前記取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する処理、
前記抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する処理、
前記生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする処理、
前記取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出する処理、
前記算出したルート確率係数が大きい部分列を辿るようにルートを選択する処理、及び
前記選択したルートにおける区切パターンで当該単語列を分割する処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、データ表示装置及びプログラムに関する。
【背景技術】
【０００２】
複数の単語を含む単語列（原文）を他の言語に翻訳する翻訳装置が知られている。このような翻訳装置は、原文を翻訳するにあたって、原文がどの単語と単語との間（語間）で区切れるか推測して翻訳処理を実行する。
【０００３】
文書や単語列の区切り方を推測する方法に関連して、特許文献１は予め文書が属する言語の文法規則をプログラミングした構文解析器を用いて文書の区切り方を推測する技術を提案している。また、特許文献２は、分かち書きされていない文字列を単語毎に分割する技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３０９３１０号公報
【特許文献２】特開平１０−２５４８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、原文がどの単語と単語との間で区切れるかを推測するために、原文が属する言語の文法規則をプログラミングした構文解析器を用いる。そのため、原文の属する言語毎に構文解析器を多くの開発費用・日数を費やして作成しなくてはならなかった。
【０００６】
また、特許文献２では、分かち書きされていない文字列を単語毎に分割する技術を開示しているが、文字列がどの単語と単語との間で区切れているか判別する方法については開示していない。
【０００７】
文字列を単語に分割し、それぞれの単語の情報を提示するアプリケーションにおいては、解析対象文字列が書かれている言語の構文解析器が必要となる。
【０００８】
しかし、構文解析器は解析結果の教師データからのみ学習して構成することは難しく、各言語に対応した構文解析器を設計する必要がある。そこで、構文解析器を用いず、教師データから単語間の接続確率を算出し、その確率を元に文字列の解析を行う。
【０００９】
接続確率の算出には単語ｎグラムを用いる。しかし、教師データ内には意味的に関係のない単語の連続によるｎグラム（例えば、助詞や副詞だけからなるｎグラムなど）も含まれているので、そのｎグラムによって、解析精度が低下するという問題点もある。
【００１０】
本発明は上記事情に鑑みてなされたもので、各言語に対応した構文解析器を用いずに文字列の単語分割を行うことを目的とする。
また、本発明は、文字列を単語に分割する際の解析精度を向上させた情報処理装置、データ表示装置及びプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明に係る情報処理装置は、解析対象となる文字列を取得する文字列取得部と、前記文字列取得部が取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する部分列抽出部と、前記部分列抽出部が抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する区切パターン生成部と、前記区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、文字列の分割に有効な単語により注目して解析を行うことにより、精度の向上を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】（ａ）は実施形態に係るメニュー表示装置の機能構成を示すブロック図であり、（ｂ）は実施形態に係るメニュー表示装置の物理構成を示すブロック図である。
【図２】（ａ）は実施形態に係るメニュー表示装置が取得する撮影画像を示す図であり、（ｂ）は実施形態に係るメニュー表示装置が単語列を分割した結果を示す図であり、（ｃ）は実施形態に係るメニュー表示装置が単語に解説を付した表示データを示す図である。
【図３】（ａ）は実施形態に係るメニュー表示装置の教師データにおける文字列とタグ付き文字列との関係を示す図であり、（ｂ）は実施形態に係るメニュー表示装置の教師データにおける単語列と区切フラグとｎグラム（トライグラム）と区切パターンとの関係を示す図である。
【図４】実施形態に係る文字列解析部の機能構成を示すブロック図である。
【図５】実施形態に係る文字列解析部が実行する処理を説明する図である。
【図６】（ａ）は実施形態に係る文字列解析部が実行する補正処理を説明する表を示す図であり、（ｂ）は実施形態に係る文字列解析部が実行する補正処理を説明するグラフを示す図である。
【図７】実施形態に係る確率処理部の構成を示すブロック図である。
【図８】実施形態に係る確率係数リストを示す図である。
【図９】（ａ）は実施形態に係る確率係数算出処理におけるバイグラムの確率係数からトライグラムの確率係数を算出する処理の例を示す図であり、（ｂ）は実施形態に係る確率係数算出処理におけるモノグラムの確率係数からトライグラムの確率係数を算出する処理の例を示す図である。
【図１０】実施形態に係るメニュー表示装置が実行するメニュー表示処理を示すフローチャートである。
【図１１】実施形態に係るメニュー表示装置が実行するメニュー分割処理を示すフローチャートである。
【図１２】実施形態に係るメニュー表示装置が実行する区切確率係数取得処理を示すフローチャートである。
【図１３】実施形態に係るメニュー表示装置が実行する区切確率係数算出処理を示すフローチャートである。
【図１４】実施形態に係るメニュー表示装置が実行するルート確率係数算出処理を示すフローチャートである。
【図１５】（ａ）は実施形態に係る教師データの例を示す図であり、（ｂ）は実施形態に係る教師データ内の単語に品詞を付したときのトライグラムリストを示す図である。
【図１６】実施形態に係る教師データ内の単語に付した品詞に基づき重み付けを行った確率係数リストを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明である情報処理装置、データ表示装置及びプログラムを実施するための形態に係るメニュー表示装置を、図を参照して説明する。尚、図中同一又は相当する部分には同一符号を付す。
【００１５】
実施形態に係るメニュー表示装置１は、料理等のメニューを解析対象としているが、本発明は、それ以外のカテゴリ、例えば、住所、薬品の効能書き、説明書等に応用することも可能である。
【００１６】
メニュー表示装置１は、ｉ）解析対象となる特定のカテゴリに属する文字列（メニュー、献立等）を記載した紙等を撮影する撮影機能、ｉｉ）撮影した画像から解析対象となる文字列を認識して抽出する機能、ｉｉｉ）抽出した文字列を解析して単語列に変換する機能、ｉｖ）文字列の所定部分（単語間）でメニューが区切れる確率を示す確率係数を出力する機能、ｖ）確率係数に基づいて単語列を区切る機能、ｖｉ）区切った単語列をそれぞれ表示データに変換する機能、ｖｉｉ）表示データを表示する機能などを備える。
【００１７】
メニュー表示装置１は、図１（ａ）に示すように画像入力部１０と、ＯＣＲ２０、文字列解析部３０、確率処理部４０、変換部５０、及び用語辞書記憶部６０を含む情報処理部７０と、表示部８０と、操作入力部９０とを備える。
【００１８】
画像入力部１０は、カメラ等の画像撮影装置と画像処理部とから構成され、このような物理構成によりメニューを撮影した画像を取得する。画像入力部１０は、取得した画像を情報処理部７０のＯＣＲ２０に伝達する。
【００１９】
尚、画像以外による入力も可能である。例えば、ユーザがキーボードからメニューの文字列を入力しても良いし、音声によりメニューの文字列を入力しても良い。
【００２０】
情報処理部７０は、図１（ｂ）に示すように、コンピュータに相当する機能を有し、物理的には、情報処理部７０１と、データ記憶部７０２と、プログラム記憶部７０３と、入出力部７０４と、通信部７０５と、内部バス７０６とから構成される。
【００２１】
情報処理部７０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等から構成され、プログラム記憶部７０３に記憶されている制御プログラム７０７に従って、後述するメニュー表示装置１における処理を実行する。
【００２２】
データ記憶部７０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成され、情報処理部７０１の作業領域として用いられる。
【００２３】
プログラム記憶部７０３は、フラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、情報処理部７０１の動作を制御する制御プログラム７０７と、下記に示す処理を実行するためのデータを記憶する。
【００２４】
入出力部７０４は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やシリアルポートによって情報処理部７０に接続された画像入力部１０、表示部８０、操作入力部９０、外部装置等との情報の入出力を制御するＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース部である。
【００２５】
通信部７０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）デバイス、モデム等から構成され、インターネットやＬＡＮ等の通信回線を介して接続された外部機器に情報処理部７０１の処理結果を送信する。また、外部機器から情報を受信して、情報処理部７０１に伝達する。
【００２６】
尚、情報処理部７０１と、データ記憶部７０２と、プログラム記憶部７０３と、入出力部７０４と、通信部７０５とは、内部バス７０６によってそれぞれ接続され、情報の送受信が可能である。
【００２７】
情報処理部７０の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、処理を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより実現してもよい。尚、記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等がある。
【００２８】
また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することにより実現してもよい。
【００２９】
また、機能をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納し、ＯＳの制御下で処理を実行してもよい。
【００３０】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ：Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）にコンピュータプログラムを掲示し、ネットワークを介して配信してもよい。
【００３１】
また、メニュー表示装置１が実行する処理の一部を、メニュー表示装置１とは独立したコンピュータを用いて実現しても良い。
【００３２】
情報処理部７０は、上記物理構成により、ＯＣＲ２０、文字列解析部３０、確率処理部４０、変換部５０、用語辞書記憶部６０として機能する。
【００３３】
ＯＣＲ２０は、光学文字読取装置（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）であり、画像入力部１０から伝達された画像の文字を認識し、メニューに記された文字列（料理名等）を取得する。ＯＣＲ２０は、取得した文字列を文字列解析部３０に伝達する。
【００３４】
尚、画像以外の入力手段を用いた場合は、それに合わせて文字を認識する手段を備える。例えば、音声入力の場合は、音声認識装置により文字列を取得する。
【００３５】
文字列解析部３０は、ＯＣＲ２０から伝達された文字列を単語列Ｗに変換する。単語列Ｗとは、文字列を単語に分割したものである。例えば、文字列「豚バラ肉の赤ワイン煮」を単語列Ｗに変換すると、「豚，バラ肉，の，赤ワイン，煮」となる。
【００３６】
文字列解析部３０は、単語列Ｗを構成する単語からなる部分列（単語ｎグラム）を抽出する。尚、ｎは抽出する単語の数を表す。単語列Ｗにおける単語と単語の間である語間で区切れるかどうかを判断するために、ｎグラムの手法を用いる。
【００３７】
文字列解析部３０は、抽出した単語ｎグラムについて区切パターンを定義し、確率処理部４０に伝達する。尚、区切パターンには、単語ｎグラムと、その語間で単語列Ｗが区切れる場合と区切れない場合に対応する情報を含む。
【００３８】
文字列解析部３０は、確率処理部４０が出力する区切確率係数を受け取る。区切確率係数は、単語ｎグラムを含む教師データがその区切パターンで区切れる確からしさを示す係数を示す。単語ｎグラムと区切パターンと区切確率係数とについては後述する。
【００３９】
文字列解析部３０は、確率処理部４０から受け取った区切確率係数を用いて単語列Ｗを分割し、部分文字列を変換部５０に出力する。文字列解析部３０が実行する具体的な処理については後述する。
【００４０】
確率処理部４０は、文字列解析部３０から、単語ｎグラムとその区切り方を示す区切フラグを含む区切パターンを伝達される。確率処理部４０は、教師データがその区切パターンで区切れる確からしさを示す情報を記憶している。
【００４１】
確率処理部４０は、文字列解析部３０から区切パターンを伝達されると、記憶する確率係数リストを参照して区切確率係数を取得し、文字列解析部３０に伝達する。確率処理部４０の機能構成と実行する具体的な処理については後述する。
【００４２】
変換部５０は、用語辞書記憶部６０を参照し、文字列解析部３０から伝達された分割された部分文字列を、その部分ごとに表示用データに変換する。
【００４３】
具体的には、変換部５０は、部分文字列に含まれる単語を、用語辞書記憶部６０に伝達し、用語辞書記憶部６０からその単語の解説データを取得する。変換部５０は、その部分ごとに、原文であるメニューの単語と、その単語の解説データを並べて、表示データを生成する。変換部５０は、生成した表示データを表示部８０に伝達する。
【００４４】
尚、解説データは、単語の意味だけに限られず、単語を別の言語に翻訳したものなど、用途に応じて様々な内容を用意することができる。
【００４５】
用語辞書記憶部６０は、教師データに含まれる単語等と、それらの解説のためのデータとを対応付けて登録した用語辞書を記憶する。
【００４６】
用語辞書記憶部６０は、変換部５０から単語等を送信されると、記憶する用語辞書においてその単語等と対応付けられている解説データを変換部５０に伝達する。また、その単語等が用語辞書になかった場合には、その旨を示すｅｍｐｔｙデータを送信する。
【００４７】
表示部８０は、液晶ディスプレイ等から構成され、変換部５０から伝達された情報を表示する。その他、プリンタなど出力結果を反映する手段を含むものとする。
【００４８】
操作入力部９０は、タッチパネル、キーボード、ボタン、ポインティングデバイス等の、ユーザの操作を受付ける操作受付装置と、操作受付装置が受け付けた操作の情報を情報処理部７０に伝達する伝達部とから構成される。操作入力部９０はこのような物理構成によりユーザの操作を受け付けて、その情報を情報処理部７０に伝達する。
【００４９】
ここで、メニュー表示装置１がメニューを撮影した画像と、メニューを分割した部分文字列と、部分文字列を変換した表示用データとの関係を、図２を参照して説明する。
【００５０】
メニュー表示装置１は、ユーザが画像入力部１０を用いてレストランのメニュー等を撮影すると、図２（ａ）に示すような画像Ｉ１を取得する。
【００５１】
画像Ｉ１からＯＣＲ２０がメニューの文字列を抽出し、文字列解析部３０が文字列を単語単位に分けた上で区切れる語間において分割して、図２（ｂ）に示すような部分文字列を変換部５０に伝達する。
【００５２】
図２（ｃ）に示すように、変換部５０が、部分文字列ごとに、原文であるメニューに含まれる単語について、その意味を解説文として付けた表示データに変換して表示する。
【００５３】
ここで、本実施形態に係る解析対象となる文字列と、教師データであるタグ付文字列と、単語ｎグラムと、区切フラグと、区切パターンとについて、図３を参照して説明する。
【００５４】
本実施形態で解析対象となる文字列は、図３（ａ）の上に示されるようなメニュー等を示す文字列である。ここでは、文字列を「豚バラ肉の赤ワイン煮温野菜添え」とする。
【００５５】
また、教師データは、図３（ａ）の下に示すように、単語又は結び付きの強い固まり毎にタグで挟んだタグ付文字列である。教師データは、データ記憶部７０２に予め大量に作成しておき、文字列を解析する度にそれを蓄積して学習を行う。
【００５６】
タグ付文字列の最小単位は単語であるため、文字列を単語単位にした上で、固まりの始めに<m>、<c>、
、<w>等のタグを付し、固まりの終わりに</m>、</c>、
、</w>等のタグを付す。
【００５７】
図３（ａ）の例では、タグ付文字列は「<m><c>
<w>豚</w><w>バラ肉</w><w>の</w>

<w>赤ワイン</w><w>煮</w>
</c>
<w>温野菜</w><w>添え</w>
</m>」である。
【００５８】
このタグ付文字列では、単語を示すタグ<w></w>によって、「豚」、「バラ肉」、「の」、「赤ワイン」、「煮」、「温野菜」、「添え」の七つの単語に分けられる。さらに、材料名や料理方法などの固まりを示すタグ

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

タグがある部分のみで区切ると判断して区切フラグを配置するなど任意の設定が可能である。
【００６９】
単語ｎグラムについて、各語間で単語列Ｗを区切るか否かを、単語と区切フラグを並べて定義したパターンを区切パターンという。
【００７０】
例えば、トライグラムを構成する３つの単語（単語Ａ、単語Ｂ、単語Ｃ）について、単語Ａの前及び単語Ｃの後ろを含むいずれの語間でも区切れていない場合に対応する区切パターンは「０Ａ０Ｂ０Ｃ０」、全ての語間で区切れている場合に対応する区切パターンは「１Ａ１Ｂ１Ｃ１」である。
【００７１】
ある単語ｎグラムで構成されている教師データ全体（Ｍ個）のうち、ある区切パターンで区切れている教師データの数がｍ個の場合に、ｍ／Ｍにより算出される係数を区切確率係数として定義する。区切確率係数は、教師データにおいて、その区切パターンで区切れている確からしさを示す。
【００７２】
教師データとなるタグ付文字列を十分な数だけ偏り無く用意すれば、区切確率係数は、メニューに単語ｎグラムを含む場合にその区切パターンに対応する区切り方で区切れている確からしさを示す指標となる。
【００７３】
尚、単語列Ｗの先頭に先頭であることを示す記号（ＳＯＳ：Ｓｔａｒｔ  ｏｆ  ｓｅｎｔｅｎｃｅ）を、また、末尾に末尾であることを示す記号（ＥＯＳ：Ｅｎｄ  ｏｆ  ｓｅｎｔｅｎｃｅ）を、それぞれダミー単語として配置しても良い。
【００７４】
次に、文字列解析部３０の機能構成について、図４を参照して説明する。文字列解析部３０は、図４に示すように、文字列取得部３１０、分かち書き部３２０、ｎグラム列生成部（部分列抽出部）３３０、ｎグラム選択部３４０、区切パターン生成部３５０、ルート確率係数定義部３６０、ルート選択部３７０、単語列分割部３８０、及び出力部３９０から構成される。
【００７５】
文字列取得部３１０は、ＯＣＲ２０が抽出した解析対象の文字列を受け取り、分かち書き部３２０に伝達する。
【００７６】
分かち書き部３２０は、文字列取得部３１０が取得した文字列を単語単位に分ける分かち書き処理を実行する。分かち書き処理は、文字列から単語を抽出する任意の方法を用いることができるが、ここでは特許文献２が例示する方法を用いることとする。
【００７７】
尚、解析対象となるメニューが英語やフランス語等の単語毎にスペースで区切られる言語であった場合、分かち書き処理は、スペースによって単語を区切ることにより行う。
【００７８】
分かち書き部３２０は、分かち書き処理によりメニューの文字列を単語列Ｗに変換してｎグラム列生成部３３０へ伝達する。
【００７９】
ｎグラム列生成部３３０は、分かち書き部３２０からメニューの単語列Ｗを伝達されると、単語列Ｗから単語ｎグラムを抽出し、その集合であるｎグラム列をｎグラム選択部３４０に伝達する。
【００８０】
単語ｎグラムは、単語列Ｗの先頭から順に単語を選択し、選択された単語から順にｎ個の単語が含まれるように部分列を抽出する。ｎグラム列は、同数の単語からなる部分列で構成される。
【００８１】
ｎグラム選択部３４０は、生成したｎグラム列の単語ｎグラムを先頭（又は最後尾）から最後尾（又は先頭）に向かって、順次、注目ｎグラムとして選択し、選択した注目ｎグラムを区切パターン生成部３５０に伝達する。
【００８２】
区切パターン生成部３５０は、注目ｎグラムを伝達されると、注目ｎグラムについて定義できる区切パターンを生成する。尚、区切パターンは、全部で２＾（ｎ＋１）通りであり、バイグラムの場合は一つ当たり八通りとなる。
【００８３】
区切パターン生成部３５０は、生成した区切パターンをルート確率係数定義部３６０に伝達する。尚、ある単語ｎグラムから生成される区切パターンをその単語ｎグラムの対応区切パターンと呼ぶ。
【００８４】
ルート確率係数定義部３６０は、伝達された注目ｎグラムの対応区切パターンを確率処理部４０に伝達して、確率処理部４０から対応区切パターンの区切確率係数を受け取る。受け取った区切確率係数から後述するルート確率係数を算出する。
【００８５】
ルート確率係数定義部３６０は、このような機能を実現するために、確率係数取得部３６１０と、補正部３６３０と、ルート確率係数算出部３６４０とを含む。
【００８６】
確率係数取得部３６１０は、区切パターン生成部３５０が生成した全ての区切パターンを確率処理部４０に伝達して、教師データにおける区切れ方の統計に基づく各区切パターンの区切確率係数を全て取得する。尚、取得した区切確率係数を調整する必要があれば補正部３６３０で補正処理を行う。
【００８７】
補正部３６３０は、ルート確率係数を算出するにあたり、各区切パターンにおける区切確率係数の値を何らかの基準に基づき調整する。基準としては、単語ｎグラムの内容、区切フラグの状態、区切確率係数の大きさなどがあり、調整方法としては、区切確率係数を二乗する、又は平方根を取るなどがある。補正部３６３０が実行する補正処理については後述する。
【００８８】
ルート確率係数算出部３６４０は、各区切パターンのルート確率係数を算出すると、各区切パターンと、算出したルート確率係数とを対応づけてルート選択部３７０に伝達する。
【００８９】
ルート選択部３７０は、ルート確率係数定義部３６０から伝達された各区切パターンとそのルート確率係数とから最尤ルートを求め、区切パターン生成部３５０が生成した区切パターンから最尤ルートに現れる区切パターンを選択する。ルート選択部３７０は、選択した区切パターンを単語列分割部３８０に伝達する。尚、最尤ルートについては後述する。
【００９０】
単語列分割部３８０は、ルート選択部３７０から伝達された区切パターンの区切り方によって、単語列Ｗを分割して部分文字列にし、部分文字列を出力部３９０に伝達する。
【００９１】
出力部３９０は、伝達された部分文字列を変換部５０に出力する。
【００９２】
ここで、ルート確率係数定義部３６０が定義するルート確率係数について、図５を参照して説明する。単語列Ｗから抽出された単語ｎグラムを、先頭からｎグラム１、ｎグラム２、・・・と標記する。以下、ｎ＝２のバイグラムとして説明する。
【００９３】
単語列Ｗが「豚，バラ肉，の，赤ワイン，煮，温野菜，添え」からバイグラムを抽出すると、ｎグラム１は「豚，バラ肉」、ｎグラム２は「バラ肉，の」、ｎグラム３は「の，赤ワイン」，ｎグラム４は「赤ワイン，煮」、ｎグラム５は「煮，温野菜」、ｎグラム６は「温野菜，添え」となる。
【００９４】
ｎグラム１とｎグラム２とは、互いに隣接する単語ｎグラムなので、隣接ｎグラム（隣接部分列）と呼ぶ。尚、図５の１列目に示すように、ｎグラム１の対応区切パターンとして、八つのパターンが定義できる。
【００９５】
ｎグラム１の対応区切パターンのそれぞれについて、確率係数取得部３６１０が取得した区切確率係数をｐａ１ｙ（八つのパターンのためｙ＝１〜８）とする。ｐａ１１〜ｐａ１８を補正部３６３０が補正し、補正後の区切確率係数を用いてルート確率係数を算出する。尚、補正後の区切確率係数をｐ１ｙ（ｙ＝１〜８）とする。
【００９６】
次に、図５の２列目に示すように、ｎグラム２の対応区切パターンについても八つ定義できる。同様に、ｎグラム２の区切確率係数をｐａ２ｙ（ｙ＝１〜８）、補正後の区切確率係数をｐ２ｙ（ｙ＝１〜８）とする。
【００９７】
ｎグラム２の対応区切パターンと、ｎグラム１の対応区切パターンとにおいて、対応する語間の区切フラグが共通の区切パターンを共通隣接区切パターンとし、それに注目する。
【００９８】
即ち、ｎグラム１とｎグラム２とは、部分列としては一単語ずれていることから、ｎグラム１の２番目の単語から最後の単語までと、ｎグラム２の最初の単語から最後の一つ前の単語までとが同一なので、その箇所に対応する語間の区切フラグが共通のものが対象となる。
【００９９】
例えば、ｎグラム１とｎグラム２とは「バラ肉」が重複するので、ｎグラム１の対応区切パターン「１豚０バラ肉０」の共通隣接区切パターンは、ｎグラム２の対応区切パターンのうち「０バラ肉０」を有する「０バラ肉０の０」と「０バラ肉０の１」とである。
【０１００】
また、ｎグラム３のある対応区切パターンの共通隣接区切パターンとして、ｎグラム２の対応区切パターンのうち対応する語間の区切フラグが共通の２つが挙げられる。
【０１０１】
例えば、ｎグラム３の対応区切パターンの「０の０赤ワイン０」の共通隣接区切パターンは、ｎグラム２の対応区切パターンのうち「０の０」を有する「０バラ肉０の０」と「１バラ肉０の０」である。
【０１０２】
ルート確率係数は、ｎグラムｘの対応区切パターンのうちｙ番目の区切確率係数に、ｎグラム（ｘ−１）の共通隣接区切パターンのうち、区切確率係数が大きい方の影響を加味する。尚、区切確率係数は補正後のものとし、ルート確率係数の算出後はルート確率係数を用いる。また、ｎグラム１においては，補正後の区切確率係数をルート確率係数とする。
【０１０３】
ｎグラム２の対応区切パターン（ｙ番目）のルート確率係数ｐｐ２ｙについては、その補正後の区切確率係数ｐ２ｙと、ｎグラム１の共通隣接区切パターンのうち、補正後の区切確率係数が大きい方の共通隣接区切パターンの補正後の区切確率係数との積とする。
【０１０４】
ｎグラム３の対応区切パターンのルート確率係数についても、その補正後の区切確率係数と、ｎグラム２の共通隣接区切パターンのうち、ルート確率係数が大きい方の共通隣接区切パターンのルート確率係数との積とする。このとき、ｎグラム２で選択された方が対応隣接区切パターンであり、図５の実線の矢印で示す。
【０１０５】
このように、図５に示すような隣接ｎグラムの区切パターンについて、それぞれ共通隣接区切パターン同士を対応付けたテーブルを用いて、ルート確率係数を計算していく。このテーブルをルート確率テーブルと呼ぶ。
【０１０６】
ｎグラム１のルート確率係数を、補正後の区切確率係数と等しいとし、ｎグラムｘ（２以降）の対応区切パターン（ｙ番目）のルート確率係数ｐｐｘｙは、補正後の区切確率係数ｐｘｙと、対応隣接区切パターンのルート確率係数の積であると定義する。補正処理については後述する。
【０１０７】
補正後の確率係数を用いて算出した対応区切パターンのルート確率係数は、最初の単語ｎグラム（ｎグラム１）から最後の単語ｎグラム（ｎグラム６）まで、最も確からしいルート（最尤ルート）をたどった場合に、そのルートに現れる区切パターンの区切り方で単語列Ｗが区切れる確からしさを示す係数である。
【０１０８】
即ち、ルート確率係数が高い方を選択していくことで最尤ルートをたどることができ、そのときの区切パターンで単語列Ｗを区切ることができる確からしさが最も高いことを示す。
【０１０９】
このルート確率係数は、最尤ルートに現れる区切パターンの補正後の区切確率係数の一つ一つに対して、少なくとも所定の値域では増加関数である任意の式・算出方法で求める係数であるとしてもよい。
【０１１０】
例えば、最尤ルートに現れる区切パターンの補正後の区切確率係数の加算平均としても良い。また、補正後の区切確率係数とルート確率係数との対応関係を実験により求め、その対応関係を記憶したテーブルを予めプログラム記憶部７０３に記憶しておき、このテーブルを参照してルート確率係数を求めても良い。
【０１１１】
このように、次の隣接ｎグラムの各区切パターンについてルート確率係数を算出し、最後の単語ｎグラム（図５の例ではｎグラム６）のルート確率係数ｐｐ６ｙまで算出する。
【０１１２】
ルート確率係数ｐｐ６ｙは、ｎグラム１からｎグラム６まで、その区切パターンに到達する全てのルートのうち最も確からしいルートの区切り方の確からしさを示す係数である。
【０１１３】
そこで、ルート確率係数ｐｐ６ｙ（ｙ＝１〜８）のうち最も大きい値を持つ対応区切パターンを選択する。図５の例では、「１温野菜０添え１」（ｙ＝４）が選択される。選択された対応区切パターンに至るルートを特定して、単語列Ｗの最尤ルートとする。
【０１１４】
最尤ルートは、選択された区切パターンの隣接対応区切パターンのうち、より大きいルート確率係数を持つパターンを選択し、最後の単語ｎグラム（ｎグラム６）から最初の単語ｎグラム（ｎグラム１）まで辿ることにより定めることができる。最尤ルートに現れる区切パターンを、それぞれ単語列Ｗを区切る区切パターンとして選択し、その区切り方で単語列Ｗを区切ることとする。
【０１１５】
図４に示す補正部３６３０が実行する補正処理について、図６を参照して説明する。あるｎグラムｘ（ここではバイグラム）について、その区切フラグに対応する区切パターン（バイグラムの場合、八パターン）の補正前の確率係数ｐａｘｙ（ｙ＝１〜８）と、補正後の確率係数ｐｘｙ（ｙ＝１〜８）の例を、図６（ａ）の表に示す。本実施形態では補正前の区切確率係数を二乗した数値を補正後の区切確率係数とする。
【０１１６】
図６（ａ）の補正後の区切り確率係数は、補正前の区切確率係数を二乗し、補正前との比較のために正規化した数値である。例えば、パターン「０１０」は、バイグラムが「豚−バラ肉」であれば、区切パターンが「０豚１バラ肉０」となる区切フラグを示す。
【０１１７】
各パターンについて補正前の確率係数と、補正後の確率係数（正規化有り）を並べたグラフを図６（ｂ）に示す。白い棒及び点線で示した補正前の確率係数に対し、黒い棒及び実践で示した補正後の確率係数の方がより大小を強調されている。補正後の確率係数は、補正前の確率係数に比べコントラストが拡大されており、そのためルート確率係数に与える影響が大きくなる。
【０１１８】
具体的に説明する。最終的に選択されるルートは、各ルートに現れる区切パターンの補正後の区切確率係数の積（最終ルート確率係数ｐｐ６１〜ｐｐ６８）の相対的な大きさによって選択される。
【０１１９】
ある列ｘの値（ｐｘ１〜ｐｘ８）が全て二乗され、その他の列が同じであれば、最終ルート確率係数（ｐｐ６１〜ｐｐ６８）の値の大小には、その列ｘの値（ｐｘ１〜ｐｘ８）の大小がより強調されて現れる。そのため、列ｘの区切確率係数を二乗すれば、列ｘの値が選択結果に与える影響を拡大することができる。
【０１２０】
尚、本実施形態のようにルート確率係数を補正後の区切確率係数と選択ルート確率係数の積で求める場合は、各列の値に任意の値を乗算しても最終ルート確率係数の大小は変化しない。
【０１２１】
次に、確率処理部４０の構成を、図７を参照して説明する。確率処理部４０は、図７に示すように、区切パターン取得部４１０、判別部４２０、（ｎ−１）グラム生成部４３０、確率係数取得部４４０、確率係数算出部４５０、確率係数出力部４６０、及び記憶部４７０から構成される。
【０１２２】
区切パターン取得部４１０は、文字列解析部３０から区切確率係数を取得する必要のある区切パターンを取得する。ここで、区切パターンは単語ｎグラムと、各語間の区切フラグとを示す情報から構成される。
【０１２３】
尚、ここではｎグラム選択部３４０が選択した単語ｎグラムについて、区切パターン生成部３５０が生成した全区切パターンを取得するとする。区切パターン取得部４１０は、取得した区切パターンを判別部４２０に伝達する。
【０１２４】
判別部４２０は、区切パターン取得部４１０から伝達された単語ｎグラムの区切パターンについて、その区切れ方でメニューが区切れる確からしさを示す区切確率係数を取得できるか否か判別する。
【０１２５】
判別部４２０は、判別処理にあたって、記憶部４７０の確率係数記憶部４７１０に記憶された確率係数リストを参照する。確率係数リスト及び判別部４２０が実行する判別処理の具体的内容については後述する。
【０１２６】
判別部４２０は、区切パターンの区切確率係数が取得できると判別すると、確率係数取得部４４０に区切パターンを伝達する。一方、区切パターンの区切確率係数が取得できないと判別すると、（ｎ−１）グラム生成部４３０に区切パターンを伝達する。
【０１２７】
（ｎ−１）グラム生成部４３０は、判別部４２０から区切パターンを伝達されると、区切パターンを構成する最初の単語から（ｎ−１）番目までの単語から構成される部分（ｎ−１）グラムと、２つ目の単語からｎ番目までの単語から構成される部分（ｎ−１）グラムとを生成する。
【０１２８】
（ｎ−１）グラム生成部４３０は、単語ｎグラムの区切パターンに基づいて、生成した２つの部分（ｎ−１）グラムについて区切パターンを設定し、判別部４２０に伝達する。
【０１２９】
判別部４２０は、（ｎ−１）グラム生成部４３０から２つの部分（ｎ−１）グラムの区切パターンを伝達されると、２つの部分（ｎ−１）グラムのそれぞれについて区切確率係数を取得できるか否か判別する。
【０１３０】
２つの部分（ｎ−１）グラムの何れか一方でも区切確率係数を取得できない場合は、（ｎ−１）グラム生成部４３０に３つの部分（ｎ−２）グラムを生成させ、以下モノグラムになるまで同様に判別処理を繰り返す。
【０１３１】
何れの区切確率係数も取得できた時点の部分ｊグラム（ｊ＝（ｎ−１）〜１）の各区切パターンを確率係数取得部４４０に伝達する。尚、（ｎ−１）グラム生成部４３０を経由する度に生成する部分ｊグラムの数が一つ増加する。判別部４２０と（ｎ−１）グラム生成部４３０が実行する処理の具体的な内容については後述する。
【０１３２】
確率係数取得部４４０は、判別部４２０から区切パターン取得部４１０が取得した単語ｎグラムの区切パターンを伝達されると、確率係数記憶部４７１０に記憶された確率係数リストから区切確率係数を取得し、確率係数出力部４６０に伝達する。
【０１３３】
一方、（ｎ−１）グラム生成部４３０を経由して、部分ｊグラムの複数の区切パターンを伝達された場合も、全ての区切パターンについて確率係数リストから区切確率係数を取得する。全ての区切パターンと区切確率係数を、確率係数算出部４５０に伝達する。
【０１３４】
確率係数算出部４５０は、確率係数取得部４４０から伝達された全ての区切パターン及び区切確率係数から、単語ｎグラムの区切パターンの区切確率係数を算出し、確率係数出力部４６０に伝達する。確率係数算出部４５０における単語ｎグラムの区切確率係数の算出処理については後述する。
【０１３５】
確率係数出力部４６０は、確率係数取得部４４０で取得した区切確率係数を文字列解析部３０に出力する。
【０１３６】
記憶部４７０は、確率処理部４０の各部から情報を伝達され、伝達された情報を記憶する。また、確率処理部４０の各部からのコマンドに応答して、記憶する情報を出力する。
【０１３７】
記憶部４７０は、後述する確率係数リストを記憶する確率係数記憶部４７１０と、確率処理部４０が処理を実行するための設定パラメータを記憶する設定記憶部４７２０とを含む。
【０１３８】
確率係数記憶部４７１０が記憶する確率係数リストの例を、図８を参照して説明する。図８は、バイグラムと区切フラグのパターンとに対応する区切確率係数を登録した確率係数リストの例である。
【０１３９】
確率係数リストは、データ記憶部７０２に蓄積された全ての教師データを単語ｎグラムにし、その区切パターンのデータがいくつあるかにより、確率をテーブル化し、確率係数記憶部４７１０に登録したものである。
【０１４０】
例えば、１００件のメニューが教師データに蓄積されていたとして、そのうち「豚バラ肉」が含まれているものが何件かあり、さらに「豚」と「バラ肉」が区切れているものが２件あったとき、バイグラム（豚，バラ肉）の区切フラグ「０１０」における確率係数リストの値は０．０２となる。
【０１４１】
確率係数取得部４４０において、区切パターン「０豚１バラ０」の区切確率係数を取得する際は、確率係数リストのバイグラム「豚−バラ肉」の行、パターン「０１０」の列を参照して、数値０．０２を返す。このように、確率係数リストは、単語ｎグラムの区切パターンについて、その区切パターンで教師データが区切れている確率を示すリストである。
【０１４２】
次に、確率係数算出部４５０が、複数の単語ｊグラムの区切パターン及びその区切確率係数を用いて、単語ｎグラムの区切パターンの区切確率係数を算出する処理について、図９を参照して説明する。
【０１４３】
例えば、あるトライグラムが確率係数リストに登録されていない場合に、バイグラムやモノグラムにおける区切確率係数から、当該トライグラムの区切確率係数を算出しようというものである。
【０１４４】
例として、トライグラム（の，赤ワイン，煮）が登録されていなかった場合に、注目区切パターン「０の１赤ワイン０煮１」の区切確率係数を算出する方法を示す。
【０１４５】
このとき、前半のバイグラム（の，赤ワイン）と後半のバイグラム（赤ワイン，煮）が登録されていれば、図９（ａ）に示すように、区切パターン「０の１赤ワイン０」の区切確率係数と「１赤ワイン０煮１」の区切確率係数を取得し、その平均を取るなどして、トライグラムの区切確率係数を求める。
【０１４６】
バイグラムも登録されていない場合は、先頭のモノグラム（の）と中央のモノグラム（赤ワイン）と最後尾のモノグラム（煮）が登録されていれば、図９（ｂ）に示すように、区切パターン「０の１」と「１赤ワイン０」と「０煮１」の区切確率係数を取得し、その平均を取るなどして、トライグラムの区切確率係数を求める。
【０１４７】
尚、区切確率係数を算出する方法は上記に限られず、前半のバイグラムにおける対応パターンの区切確率係数を、後半のバイグラムにおける対応パターンの区切確率係数で振り分けるという方法などを採ることもできる。
【０１４８】
次に、メニュー表示装置１の情報処理部７０が実行する処理について、フローチャートを参照して説明する。メニュー表示装置１は、ユーザが画像入力部１０を用いてメニューの画像を取得する操作を実行すると、図１０に示すメニュー表示処理を開始する。
【０１４９】
メニュー表示処理では、まず画像入力部１０を用いてメニューを撮影する等して画像取得を行う（ステップＳ１０１）。
【０１５０】
取得した画像を元にＯＣＲ２０が文字読み取りを行い、認識した文字列を取得する（ステップＳ１０２）。
【０１５１】
ＯＣＲ２０が文字列を取得して文字列解析部３０に伝達すると、まず文字列解析部３０の分かち書き部３２０が、文字列を単語単位に分割する分かち書きの処理を実行して、文字列を単語列Ｗに変換する（ステップＳ１０３）。
【０１５２】
ｎグラム列生成部３３０が単語列Ｗからｎグラム列生成を行う（ステップＳ１０４）。尚、以下ｎ＝２として説明する。
【０１５３】
文字列解析部３０は、メニューが単語列Ｗのどの部位で区切れるか推測し、メニューを分割するメニュー分割処理を実行する（ステップＳ１０５）。尚、メニュー分割処理の詳細は後述する。
【０１５４】
メニュー分割処理で、メニューを部分文字列に分割すると、カウンタ変数をｉとして、ｉ番目の部分列について変換部５０が表示データを生成する処理を実行する。
【０１５５】
即ち、ｉ番目の部分列に含まれる各単語の解説データを用語辞書記憶部６０から取得して、図２（ｃ）に示すような表示データに変換する（ステップＳ１０６）。
【０１５６】
ステップＳ１０５で得られた部分列の全てについて表示データに変換する処理が終わったかを判別し（ステップＳ１０７）、終わっていない場合は（ステップＳ１０７；ＮＯ）、カウンタ変数ｉをインクリメントして（ステップＳ１０８）次の部分列についてステップＳ１０６から処理を繰り返す。
【０１５７】
一方、全ての部分列について表示データに変換したと判別した場合は（ステップＳ１０７；ＹＥＳ）、得られた表示データを表示部８０が表示する（ステップＳ１０９）。以上でメニュー表示処理は終了する。
【０１５８】
ステップＳ１０５で実行されるメニュー分割処理を、図１１を参照して説明する。メニュー分割処理では、まずｎグラム選択部３４０が、ｑを１からｎグラム列の個数までのカウンタ変数として、ｎグラム列のｑ番目の単語ｎグラムを注目ｎグラムとして選択する（ステップＳ２０１）。
【０１５９】
尚、ここではｎグラム選択部３４０は先頭の単語ｎグラムから順に後ろの単語ｎグラムに向かって注目ｎグラムを選択していくとするが、注目ｎグラムを選択する順は逆からでも良い。
【０１６０】
次に、区切パターン生成部３５０が、注目ｎグラムについて定義できる区切パターンを生成する（ステップＳ２０２）。ここでは、２＾（ｎ＋１）＝８個の区切パターンを生成する。区切パターン生成部３５０は、生成した区切パターンを図５に示すようなルート確率テーブルに配置する。
【０１６１】
次に、ｒを１から区切パターンの数までのカウンタ変数とし、ステップＳ２０２で生成した区切パターンのうちｒ番目の区切パターンを注目区切パターンとして選択する（ステップＳ２０３）。
【０１６２】
確率係数取得部３６１０が確率処理部４０に注目区切パターンを伝達して、確率処理部４０が注目区切パターンの区切確率係数ｐｑｒを取得する処理を開始する（ステップＳ２０４）。
【０１６３】
即ち、確率係数取得部４４０が確率係数記憶部４７１０に記憶されている確率係数リストから注目ｎグラムの注目区切パターンについて区切確率係数を取得する。尚、区切確率係数取得処理の詳細については後述する。
【０１６４】
ステップＳ２０４で注目区切パターンの区切確率係数ｐｑｒを取得すると、既に取得した前列のルート確率係数ｐｐｑ−１ｙ（ｙ＝１〜８）を用いてルート確率係数ｐｐｑｒの算出処理を実行する（ステップＳ２０５）。尚、ルート確率係数算出処理の詳細については後述する。
【０１６５】
ステップＳ２０５でルート確率係数ｐｐｑｒを算出すると、次に情報処理部７０はステップＳ２０２で生成した全区切パターンについてルート確率係数を算出する処理が終了したか判別する（ステップＳ２０６）。
【０１６６】
即ち、注目ｎグラム（ｑ列目の単語ｎグラム）について生成された８つの区切パターンについてルート確率係数（ｐｐｑ１〜ｐｐｑ８）の全てについて算出が終わっていた場合、処理が終了したと判別される。
【０１６７】
全区切パターンについて処理済でないと判別すると（ステップＳ２０６；ＮＯ）、ｒをインクリメントし（ステップＳ２０７）、次の区切パターンについてステップＳ２０３から処理を繰り返す。
【０１６８】
一方、全区切パターンについて処理済であると判別すると（ステップＳ２０６；ＹＥＳ）、次に、ステップＳ１０４で生成した全ての単語ｎグラムについてルート確率係数を算出する処理を終了したか判別する（ステップＳ２０８）。
【０１６９】
全ての単語ｎグラムについて処理済でないと判別すると（ステップＳ２０８；ＮＯ）、ｑをインクリメントし（ステップＳ２０９）、次の単語ｎグラムについてステップＳ２０１から処理を繰り返す。
【０１７０】
一方、全ての単語ｎグラムについて処理済であると判別すると（ステップＳ２０８；ＹＥＳ）、ルート選択部３７０が最後の単語ｎグラムの対応区切パターンから最もルート確率係数が大きいものを選択する。図５の例では、記号「＊」で示されたルート確率係数ｐｐ６４が選択される。
【０１７１】
最後の単語ｎグラムから最初の単語ｎグラムに向かって、選択された区切パターンの共通隣接区切パターンのうち、ルート確率係数が大きい方の区切パターンを順次選択していき、最尤ルートを求める（ステップＳ２１０）。
【０１７２】
ステップＳ２１０で最尤ルート上にある区切パターンを選択すると、単語列分割部３８０がその区切パターンの区切り方で単語列Ｗを分割して部分文字列とする（ステップＳ２１１）。出力部３９０が部分文字列を変換部５０に伝達して、メニュー分割処理は終了する。
【０１７３】
ステップＳ２０４で実行される区切確率係数取得処理を、図１２を参照して説明する。ステップＳ２０４に至り、メニュー解析部３０から単語ｎグラムと区切フラグを含む区切パターンを区切パターン取得部４１０が受信すると、確率係数出力部４０は区切確率係数取得処理を開始する。
【０１７４】
区切確率係数取得処理では、まず判別部４２０が確率係数記憶部４７１０に記憶されている確率係数リストを参照する（ステップＳ３０１）。
【０１７５】
参照の結果、確率係数リストに注目ｎグラムの区切確率係数が有るか否か確認する（ステップＳ３０２）。
【０１７６】
注目ｎグラムの区切確率係数がある場合（ステップＳ３０２；ＹＥＳ）、確率係数リストから注目ｎグラムの区切パターンの区切確率係数を取得する（ステップＳ３０３）。
【０１７７】
一方、注目ｎグラムの区切確率係数が確率係数リストにない場合（ステップＳ３０２；ＮＯ）、単語（ｎ−１）グラムからモノグラムまで段階を変えて区切確率係数算出処理を実行する（ステップＳ３０５）。
【０１７８】
ステップＳ３０３又はステップＳ３０５で区切確率係数を取得すると、取得した区切確率係数を文字列解析部３０に出力する（ステップＳ３０６）。以上で区切確率係数取得処理は終了する。
【０１７９】
ステップＳ３０５で実行される区切確率係数算出処理について、図１３を参照して説明する。区切確率係数算出処理では、まず（ｎ−１）グラム生成部４３０が注目ｎグラムから二つの部分（ｎ−１）グラムを生成する（ステップＳ４０１）。
【０１８０】
判別部４２０が、二つの部分（ｎ−１）グラムの両方について、区切確率係数が取得可能であるか、確率係数記憶部４７１０に記憶された確率係数リストのうち部分（ｎ−１）グラムのものを参照して確認する（ステップＳ４０２）。
【０１８１】
両方の部分（ｎ−１）グラムの区切確率係数が取得可能であれば（ステップＳ４０２；ＹＥＳ）、部分（ｎ−１）グラムの区切確率係数を用いて、注目区切パターンの区切確率係数を算出するためにステップＳ４０６に移行する。
【０１８２】
何れかの部分（ｎ−１）グラムの区切確率係数が確率係数リストに無い場合（ステップＳ４０２；ＮＯ）は、次に部分（ｎ−２）グラムを用いて、というように段階を下げていき、区切確率係数の算出を試みる。
【０１８３】
尚、モノグラムからは段階を下げられないので、ステップＳ４０１で生成した部分（ｎ−１）グラムがモノグラムであったか判断し（ステップＳ４０３）、モノグラムでなければ（ステップＳ４０３；ＮＯ）さらに段階を下げて（ステップＳ４０４）、ステップＳ４０１から試行する。
【０１８４】
例えば、部分（ｎ−２）グラムの段階では、部分列の単語数が２つ減るので、生成できる部分列が２つ増加する。注目ｎグラムがトライグラムであった場合、部分（ｎ−２）グラムはモノグラムとなるので、３つのモノグラムを生成することになる。
【０１８５】
一方、ステップＳ４０１で生成した部分（ｎ−１）グラムがモノグラムであった場合（ステップＳ４０３；ＹＥＳ）、さらに段階を下げることはできないため、確率係数リストに区切確率係数が存在しないモノグラムについて、区切パターンを生成した上で、その区切確率係数にデフォルト値（ここでは０．５）を設定する（ステップＳ４０５）。
【０１８６】
ステップＳ４０１〜ステップＳ４０５で全ての区切確率係数を取得できる部分（ｎ−１）グラムが決定したら、全ての部分（ｎ−１）グラムについて、文字列解析部３０から伝達された注目区切パターンと対応する語間で共通する区切フラグをもつ区切パターンを生成する（ステップＳ４０６）。
【０１８７】
生成した全ての部分（ｎ−１）グラムの区切パターンについて、確率係数取得処理のステップＳ３０３と同様に区切確率係数を取得する（ステップＳ４０７）。
【０１８８】
得られた全ての部分（ｎ−１）グラムの区切パターンの区切確率係数を加算平均して注目区切パターンの区切確率係数とする（ステップＳ４０８）。以上で確率係数算出処理は終了する。
【０１８９】
ステップＳ２０５で実行されるルート確率係数算出処理を、図１４を参照して説明する。ルート確率係数算出処理では、まず補正部３６３０において有効係数を定義する（ステップＳ５０１）。補正部３６３０で実行する補正処理は、有効係数が示す有効度に基づき行う。尚、有効係数は、部分列に含まれる単語の属性に基づく有効度を示す値であり、有効係数による補正については後述する。
【０１９０】
補正部３６３０が、ステップＳ５０１で定めた有効係数が所定の閾値以上であるか判別する（ステップＳ５０２）。尚、閾値は有効係数が何であるかによって異なる。
【０１９１】
閾値以上であった場合（ステップＳ５０２；ＹＥＳ）、ルート選択における影響を高める補正処理を実行する（ステップＳ５０３）。具体的には、取得した区切確率係数を二乗する等して、補正後の区切確率係数とする。
【０１９２】
一方、有効係数が閾値より小さい場合（ステップＳ５０２；ＮＯ）、ステップＳ５０３をスキップする。
【０１９３】
さらに、ルート確率係数算出部３６４０が隣接ｎグラムの対応区切パターンのうち、対応する区切フラグが共通する共通隣接区切パターンを抽出する（ステップＳ５０４）。尚、一度目のループでは、隣接ｎグラムについての処理がまだ終わっていないため、この処理はスキップされる。
【０１９４】
次に、ルート確率係数算出部３６４０が抽出した共通隣接区切パターンのうち、ルート確率係数が大きいほうの区切パターンを選択し、選択された共通隣接区切パターンから注目区切パターンへのパスを、注目区切パターンへ至る最尤パスとして選択する（ステップＳ５０５）。尚、一度目のループでは、隣接ｎグラムについての処理がまだ終わっていないため、この処理はスキップされる。
【０１９５】
ルート確率係数算出部３６４０は、ステップＳ５０５で選択した共通隣接区切パターンのルート確率係数と、区切確率係数取得処理で取得した注目区切パターンの区切確率係数又はステップＳ５０３で補正した区切確率係数とを乗算して、注目区切パターンのルート確率係数とする（ステップＳ５０６）。尚、一度目のループでは、注目区切パターンの区切確率係数をルート確率係数とする。以上でルート確率係数算出処理は終了する。
【０１９６】
ここで、有効係数について、図１５を参照して説明する。図１５は、教師データ内の単語に品詞を付したときのトライグラムリストを示す図である。文字列を単語に分割する際に、単語の有効度に着目し、共起単語間の接続確率に重み付けを行うことで、解析精度の向上を図る。そこで、ルート確率係数の算出にあたり、予め単語の品詞を元に重み付けを行う。
【０１９７】
図１５（ａ）に示すように、教師データはタグ付き文字列で表現されるが、教師データを作成する際に単語に品詞を付しておく。品詞の付け方としては、品詞を表すタグを用意する、単語を示すタグ<w></w>に品詞を表すパラメータを加える等の方法がある。
【０１９８】
尚、ここでは、単語を示すタグに品詞を表すパラメータを加える手法で説明する。例えば、単語の品詞が名詞の場合は<w n></w>、動詞の場合は<w v></w>、形容詞の場合は<w a></w>、助詞の場合は<w x></w>のタグで挟む。
【０１９９】
図１５（ｂ）に示すように、教師データからトライグラムリストを作成すると、各トライグラムの品詞の出現頻度を把握することができる。尚、トライグラム作成時に各単語の品詞を分析して品詞情報を付加することも可能である。
【０２００】
単語の品詞のうち、助詞等は、メニューにおいてほとんど意味のない語である。それに対し、名詞、動詞、形容詞等は、メニューにおいて重要な語であり、これらの単語を有効語とする。メニューの文字列を区切る上でも、有効語が大きく影響を及ぼす。
【０２０１】
図１５の例では、有効語は、「アサリ」、「ワカメ」、「白ワイン」、「蒸し」となり、これらの単語がどう区切られるかが重要となる。そのため、トライグラムの中で、有効語が多く含まれているものの影響は大きくなる。
【０２０２】
即ち、各トライグラムにおいて、品詞の出現頻度は、ルート確率係数を算出する際に影響があると考えられる。そのため、ルート選択時に区切パターンの区切確率係数にそれが反映されれば、解析の精度は向上する。
【０２０３】
そこで、トライグラムリストに有効係数を持たせ、有効語の数を登録する。有効語が多く含まれている場合、例えば、トライグラムであれば、有効語を二つ以上含む場合は、その影響を反映させる。即ち、有効度の高いものに重みを持たせるのである。
【０２０４】
次に、予め設定した有効係数による補正について、図１６を参照して説明する。図１６は、教師データ内の単語に付した品詞に基づき重み付けを行った確率係数リストを示す図である。
【０２０５】
トライグラムの確率係数リストは、トライグラムリストに対し区切パターンごとに区切確率係数を割り当てることで作成する。尚、区切確率係数は、全教師データのうち、当該トライグラムの区切パターンのデータが何件あるかの割合である。
【０２０６】
例えば、（アサリ，と，ワカメ）を含むメニューは複数あるが、「アサリ」と「ワカメ」の間で区切られるメニューもあるが、区切られないメニューもあり、多くのメニューを教師データに登録しておくことで、区切られる可能性を推定することができるようになる。
【０２０７】
ここで、図１６に示すように、（アサリ，と，ワカメ）は有効語を二つ含み有効係数が２であり、（と，ワカメ，の）は有効語を一つしか含まず有効係数が１である。「アサリ」と「ワカメ」の間で区切られるか否かは重要であるが、「と」と「ワカメ」の間で区切られるか否かは「と」の前の語によるところが大きく重要度は低い。
【０２０８】
そこで、トライグラムの場合、有効係数が２以上であれば、有効語を多く含み語間で区切る際の重要な判断材料となるということで、そのトライグラムの区切確率係数を二乗した値にする。
【０２０９】
尚、補正処理において確率係数リストから取得した区切確率係数を二乗しても良いし、確率係数リストを作成する時点で有効係数を元に区切確率係数を二乗した状態で登録しておき、予め補正済みの区切確率係数を取得しても良い。
【０２１０】
二乗することで、確率の大きい区切パターンではより高い区切確率係数となり、確率の低い区切パターンではより低い区切確率係数となる。即ち、その区切パターンで区切られる可能性が大きく出ることになり、ルートを選択する際にも、大きく影響を及ぼすことになる。
【０２１１】
尚、有効係数の大きさに応じて処理の段階を変えることも可能である。例えば、有効係数が３であれば三乗するという具合である。尚、区切確率係数は１より小さいので累乗すると数値がより小さくなっていくため、正規化しても構わない。
【０２１２】
また、品詞に基づき有効語を設定したが、カテゴリなど単語が有する他の属性により有効語を設定することも可能である。例えば、料理名や材料名に使用されやすい単語は有効語とするとか、有効語の基準については任意である。
【０２１３】
以上説明したように、実施形態に係るメニュー表示装置１によれば、教師データに基づいて生成された確率係数リストによって、メニューを表現する文字列を分割することができる。そのため、構文解析プログラムを言語ごとに用意しなくても文字列を適当な語間で区切ることができる。そして、言語の文法ルールをプログラム中に埋め込むことなく、複数の単語からなる料理メニューを一つの材料、料理法などを表す単位にメニューを分割することができる。
【０２１４】
また、本実施形態は、単語列を区切るにあたって、区切確率係数が最終的な区切り方により強い影響を与えるような方法を用いており、それにより精度の高い区切り方を推定することができる。
【０２１５】
また、補正部が、有効度に基づき区切確率係数を補正し、有効度がより強く反映されたルート確率係数に基づき区切パターンを選択するので、単語列の区切り方を精度良く推定することができる。
【０２１６】
また、区切パターンを選択するに当たって、その単語ｎグラムの区切パターンの区切確率係数だけでなく、隣接する区切パターンの区切フラグが共通する共通隣接区切パターンの区切確率係数をも考慮するので、より多くの情報に基づいて区切り方を定めることができる。
【０２１７】
また、ルート確率係数を、対応区切パターンの区切確率係数の増加関数として求めるので、単語ｎグラムを含む教師データでその区切り方で区切れている確からしさが大きいほど、その区切パターンが単語列の区切り方として選択される確率が高くなり、教師データの区切り方を単語列の区切り方に反映することができる。
【０２１８】
また、教師データが所定のカテゴリの文字列（ここではメニュー）から生成されているため、広範なカテゴリ（例えば日本語全体）の教師データを用いて区切パターンの区切確率係数を求めた場合よりも、カテゴリに合致した区切確率係数を求めることができる。
【０２１９】
また、メニューを撮影し、その文字列を認識して解析及び表示することができるので、ユーザが文字列を手で入力せずとも文字列を取り込み、解説データを付加して表示することができる。そのため、たとえメニューが、ユーザが知らない言語で書かれていても、解説データを表示することができる。
【０２２０】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０２２１】
（付記１）
解析対象となる文字列を取得する文字列取得部と、前記文字列取得部が取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する部分列抽出部と、前記部分列抽出部が抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する区切パターン生成部と、前記区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部とを備えることを特徴とする情報処理装置。
【０２２２】
（付記２）
前記確率係数取得部は、部分列に含まれる単語の品詞を前記単語の属性として重み付けをすることを特徴とする付記１に記載の情報処理装置。
【０２２３】
（付記３）
前記確率係数取得部は、部分列に含まれる単語のカテゴリを前記単語の属性として重み付けをすることを特徴とする付記１に記載の情報処理装置。
【０２２４】
（付記４）
前記確率係数取得部は、予め前記部分列に含まれる単語の属性に基づき重み付けをした区切確率係数を取得することを特徴とする付記１乃至３のいずれか１つに記載の情報処理装置。
【０２２５】
（付記５）
文字列の画像を撮影する画像入力部と、前記画像入力部が撮影した画像から文字列を取得する文字列取得部と、前記文字列取得部が取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する部分列抽出部と、前記部分列抽出部が抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する区切パターン生成部と、前記区切パターン生成部が生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする確率係数取得部と、前記確率係数取得部で取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出するルート確率係数算出部と、前記ルート確率係数算出部で算出したルート確率係数が大きい部分列を辿るようにルートを選択するルート選択部と、前記ルート選択部が選択したルートにおける区切パターンで当該単語列を分割する単語列分割部と、前記単語列分割部が分割した各単語列を対応する表示データに変換する変換部と、前記変換部が変換した表示データを表示する表示部とを備えることを特徴とするデータ表示装置。
【０２２６】
（付記６）
コンピュータに、解析対象となる文字列を取得する処理、前記取得した文字列を単語列に変換し当該単語列に含まれる単語からなる部分列を順に抽出する処理、前記抽出した各部分列についてどの語間で当該単語列が区切れるか否かの全てのパターンを生成する処理、前記生成した各区切パターンについて教師データにおける区切れ方に基づく区切確率係数を取得し、前記部分列に含まれる単語の属性に基づき重み付けをする処理、前記取得した区切確率係数と、当該区切確率係数に対応する部分列の区切りパターンに隣接する部分列の共通隣接区切パターンのうち区切確率係数が大きい方とに基づいてルート確率係数を算出する処理、前記算出したルート確率係数が大きい部分列を辿るようにルートを選択する処理、及び前記選択したルートにおける区切パターンで当該単語列を分割する処理を実行させることを特徴とするプログラム。
【符号の説明】
【０２２７】
１…メニュー表示装置、１０…画像入力部、２０…ＯＣＲ、３０…文字列解析部、４０…確率処理部、５０…変換部、６０…用語辞書記憶部、７０…情報処理部、８０…表示部、９０…操作入力部、７０１…情報処理部、７０２…データ記憶部、７０３…プログラム記憶部、７０４…入出力部、７０５…通信部、７０６…内部バス、７０７…制御プログラム、３１０…文字列取得部、３２０…分かち書き部、３３０…ｎグラム列生成部（部分列抽出部）、３４０…ｎグラム選択部、３５０…区切パターン生成部、３６０…ルート確率係数定義部、３６１０…確率係数取得部、３６３０…補正部、３６４０…ルート確率係数算出部、３７０…ルート選択部、３８０…単語列分割部、３９０…出力部、４１０…区切パターン取得部、４２０…判別部、４３０…（ｎ−１）グラム生成部、４４０…確率係数取得部、４５０…確率係数算出部、４６０…確率係数出力部、４７０…記憶部、４７１０…確率係数記憶部、４７２０…設定記憶部、Ｉ１…画像
【図１】
2014056362.tif 000003
【図２】
2014056362.tif 000004
【図３】
2014056362.tif 000005
【図４】
2014056362.tif 000006
【図５】
2014056362.tif 000007
【図６】
2014056362.tif 000008
【図７】
2014056362.tif 000009
【図８】
2014056362.tif 000010
【図９】
2014056362.tif 000011
【図１０】
2014056362.tif 000012
【図１１】
2014056362.tif 000013
【図１２】
2014056362.tif 000014
【図１３】
2014056362.tif 000015
【図１４】
2014056362.tif 000016
【図１５】
2014056362.tif 000017
【図１６】
2014056362.tif 000018