(57)【特許請求の範囲】
【請求項１】
複数の単語を有する単語列を取得する単語列取得部と、
前記単語列取得部が取得した単語列に含まれる１以上の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列が区切れる確からしさの程度を示す区切確率係数を、当該抽出した区切パターンそれぞれについて、前記単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した教師単語列を記憶している教師単語列記憶部から前記区切パターンと同じパターンを有する教師単語列を抽出し、抽出した教師単語列の数に基づいて、取得する確率係数取得部と、
前記確率係数取得部が取得した区切確率係数に基づいて、前記単語列取得部が取得した単語列を分割する分割部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記抽出部が抽出した部分単語列についての前記区切確率係数を取得するために十分な数の教師単語列が前記教師単語列記憶部にあるか判別する判別部をさらに備え、
前記抽出部は、前記判別部が前記区切確率係数を取得するために十分な数の教師単語列がないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記教師単語列記憶部に記憶されている教師単語列の数が十分でない場合であって、前記抽出した部分単語列の単語数が１の場合には、前記確率係数取得部は、前記区切確率係数に規定値を設定する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項６】
コンピュータを、
複数の単語を有する単語列を取得する単語列取得部と、
前記単語列取得部が取得した単語列に含まれる１以上の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列が区切れる確からしさの程度を示す区切確率係数を、当該抽出した区切パターンそれぞれについて、前記単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した教師単語列を記憶している教師単語列記憶部から前記区切パターンと同じパターンを有する教師単語列を抽出し、抽出した教師単語列の数に基づいて、取得する確率係数取得部と、
前記確率係数取得部が取得した区切確率係数に基づいて、前記単語列取得部が取得した単語列を分割する分割部、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
複数の単語を含む単語列（原文）を他の言語に翻訳する翻訳装置が知られている。このような翻訳装置は、原文を翻訳するにあたって、原文がどの単語と単語との間（語間）で区切れるか推測して翻訳処理を実行する。
【０００３】
文書や単語列の区切り方を推測する方法に関連して、特許文献１は予め文書が属する言語の文法規則をプログラミングした構文解析器を用いて文書の区切れ方を推測する技術を提案している。
また、特許文献２は、分かち書きされていない文字列を単語毎に分割する技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３０９３１０号公報
【特許文献２】特開平１０−２５４８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、原文がどの単語と単語との間で区切れるかを推測するために、原文が属する言語の文法規則をプログラミングした構文解析器を用いる。そのため、原文の属する言語毎に構文解析器を多くの開発費用・日数を費やして作成しなくてはならなかった。また、特許文献２は、分かち書きされていない文字列を単語毎に分割する技術を開示しているが、文字列がどの単語と単語との間で区切れているか判別する方法を開示していない。
【０００６】
構文解析器を用いずに文字列がどの単語と単語との間で区切れるかを推測するための技術として、原文と同じカテゴリの単語列がどのように区切られているかを示す教師データから単語と単語との間で区切れる確からしさを求める方法が考えられる。
【０００７】
しかし、原文に含まれるｎ個の単語（ｎグラム）について単語がどのように区切れるかを、教師データを用いて推測するためには、原文に含まれる全てのｎグラムについて、十分な数の教師データが必要となる。そのため膨大な量の教師データを収集して処理するための手間・計算量が膨大になってしまうという問題点があった。
【０００８】
本発明は上記事情に鑑みてなされたもので、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データの量が少ない情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本願発明に係る情報処理装置は、
複数の単語を有する単語列を取得する単語列取得部と、
前記単語列取得部が取得した単語列に含まれる１以上の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列が区切れる確からしさの程度を示す区切確率係数を、当該抽出した区切パターンそれぞれについて、前記単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した教師単語列を記憶している教師単語列記憶部から前記区切パターンと同じパターンを有する教師単語列を抽出し、抽出した教師単語列の数に基づいて、取得する確率係数取得部と、
前記確率係数取得部が取得した区切確率係数に基づいて、前記単語列取得部が取得した単語列を分割する分割部と、
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データ量が少ない情報処理装置及びプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１に係るメニュー表示装置の構成を示すブロック図である。
【図２】（ａ）は実施形態１に係る文字列と教師データの関係を、（ｂ）は単語列と区切フラグとトライグラムと区切パターンとの関係を示す図である。
【図３】実施形態１に係る確率係数出力装置の構成を示すブロック図であり、（ａ）は物理構成を、（ｂ）は機能構成を、それぞれ示す。
【図４】実施形態１に係るｎグラムリストの例を示す図であり、（ａ）はトライグラムリストを、（ｂ）はバイグラムリストを、（ｃ）はモノグラムリストを、それぞれ示す。
【図５】実施形態１に係る確率係数算出処理の概要を示す図であり、（ａ）はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、（ｂ）はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図６】実施形態１に係るメニュー表示処理を示すフローチャートである。
【図７】実施形態１に係るメニュー分割処理を示すフローチャートである。
【図８】実施形態１に係る確率係数取得処理を示すフローチャートである。
【図９】実施形態１に係る確率係数算出処理を示すフローチャートである。
【図１０】実施形態１に係る区切パターン毎算出処理を示すフローチャートである。
【図１１】本発明の実施形態２に係る確率係数算出処理の概要を示す図であり、（ａ）はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、（ｂ）はモノグラムとバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、（ｃ）はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図１２】実施形態２に係る確率係数算出処理を示すフローチャートである。
【図１３】実施形態２に係る区切パターン毎算出処理を示すフローチャートである。
【図１４】本発明のその他の実施形態に係るｎグラム（トライグラム）パターン確率係数リストを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態に係るメニュー表示装置及び確率係数出力装置（情報処理装置）を、図を参照しながら説明する。なお、図中同一又は相当する部分には同一符号を付す。
【００１３】
（実施形態１）
実施形態１に係る確率係数出力装置４０は、図１に示すメニュー表示装置１に搭載されている。メニュー表示装置１は、ｉ）解析対象となる特定のカテゴリに属する文字列（メニュー、献立等）を記載した紙等を撮影する撮影機能、ii）撮影した画像から解析対象となる文字列を認識して抽出する機能、iii）抽出した文字列を解析して単語列に変換する機能、iv)文字列の所定部分（単語間）でメニューが区切れる確率を示す係数（区切確率係数）を出力する機能、v)区切確率係数に基づいて単語列を区切る機能、vi)区切った単語列をそれぞれ翻訳する機能、vii)翻訳結果を表示する機能、等を備える。確率係数出力装置４０は、これらの機能のうち、文字列の所定部分（単語間）でメニューが区切れる確率を示す係数（確率係数）を出力する機能を担当する。
【００１４】
メニュー表示装置１は入力部１０と、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）２０とメニュー解析部３０と翻訳部５０とを含む情報処理部７０と、確率係数出力装置４０と、表示部６０と、を備える。
【００１５】
入力部１０は、カメラと画像処理部とから構成され、このような物理構成によりメニューを撮影した画像を取得する。入力部１０は、取得した画像をＯＣＲ２０に伝達する。
【００１６】
情報処理部７０は、画像処理用ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、作業用領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、文字認識プログラム及び言語処理プログラムを記憶するＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等から構成される。情報処理部７０は、このような物理構成により、ＯＣＲ２０と、メニュー解析部３０と、翻訳部５０と、として機能する。
【００１７】
ＯＣＲ２０は、入力部１０から伝達された画像の文字を認識し、メニューに記された文字列（料理名等）を取得する。ＯＣＲ２０は、取得した文字列をメニュー解析部３０に伝達する。
【００１８】
メニュー解析部３０は、ＯＣＲ２０から伝達された文字列を単語に分割して単語列に変換する。
メニュー解析部３０は、単語列に現れるｎ個の単語からなる部分単語列(ｎグラム)を抽出する。さらに、ｎグラムから後述する区切パターンを生成し、そのうち確率係数を取得する必要のある区切パターンを選択する。
【００１９】
ここで、本実施形態に係る解析対象となる文字列（メニュー）と、教師データと、ｎグラムと、区切パターンと、について、図２を参照して説明する。
本実施形態で解析対象となる文字列は、図２（ａ）の上に示されるようなメニューを示す文字列である。図２に示すメニュー「豚バラ肉の赤ワイン煮温野菜添え」にタグを付し、単語毎・固まり毎に分割したデータが教師データ（図２（ａ）下）である。図２（ａ）の例では、教師データは「<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>がある部位、のそれぞれ（区切ライン）でメニューが区切れている。単語列の語間のそれぞれで、区切れている場合に１、区切れていない場合を０で示した情報を区切フラグと呼ぶ。
なお、どのタグがある部分で区切れていると判断するかの判断基準は、自由に設定可能である。例えば、

タグがある部分のみで区切れていると判断して区切フラグを配置する設定等の任意の設定が可能である。
【００２４】
トライグラム（ｎグラム）について、そのｎグラムの語間のそれぞれで教師データが区切れているか否かを、単語と区切フラグを並べて定義したパターンを区切パターンという。
例えば、トライグラムを構成する３つの単語（単語Ａ、単語Ｂ、単語Ｃ）について、単語Ａの前、単語Ｃの後ろを含むいずれの語間でも教師データが区切れて居ない場合に対応する区切パターンは「０Ａ０Ｂ０Ｃ０」、全ての語間で区切れている場合に対応する区切パターンは「１Ａ１Ｂ１Ｃ１」、である。
【００２５】
図２（ｂ）の例では、トライグラム「豚バラ肉の」について、構成する単語「豚」の前、「豚」と「バラ肉」の間、「バラ肉」と「の」の間、「の」の後、の４つの語間で、それぞれメニューが区切れる場合を１、区切れない場合を０として区切パターンが２＾４＝１６個定義できる。教師データに対応する区切パターンは「１豚０バラ肉０の１」である。
【００２６】
以下、その言語（例えば日本語）に属するメニュー・料理名から教師データを十分量作成する。そして、あるｎグラムを含む教師データであって、ある区切パターンで教師データが区切れている確率を示す係数を、その区切パターンの確率係数（区切確率係数）と呼ぶ。また、あるｎグラムに対応する区切パターンの確率係数を、そのｎグラムの確率係数と呼ぶ。
【００２７】
メニュー解析部３０は、確率係数出力装置４０から取得した確率係数を用いて、単語列がどのように区切れているか推定し、単語列を推定結果と対応づけて翻訳部５０に出力する。メニュー解析部３０が実行する具体的な処理については後述する。
【００２８】
メニュー解析部３０は、ｎ個の単語（ｎグラム）と、そのｎグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を確率係数出力装置４０に伝達し、確率係数出力装置４０から区切パターンの確率係数を取得する。
【００２９】
確率係数出力装置４０は、メニュー解析部３０からｎ個の単語（ｎグラム）と、そのｎグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報とを伝達されると、教師データから取得したその区切パターンでメニューが区切れている確からしさを示す確率係数をメニュー解析部３０に伝達する。
確率係数出力装置４０が実行する具体的な処理とその構成については後述する。
【００３０】
翻訳部５０は、メニュー解析部３０から伝達された単語列を、その単語列の分割パターンが示す分割方法で分割してユーザが所望する言語に翻訳する。
翻訳部５０が翻訳する方法は既知の任意の翻訳方法であってよいが、ここでは分割された単語列に含まれる単語を、辞書データによって逐次翻訳することとする。
翻訳部５０は、翻訳結果を表示部６０に伝達する。
【００３１】
表示部６０は、液晶ディスプレイ等から構成され、翻訳部５０から伝達された情報を表示する。
【００３２】
次に、確率係数出力装置４０の構成を、図３を参照して説明する。
確率係数出力装置４０は、物理的には、図３（ａ）に示すように情報処理部４０１と、データ記憶部４０２と、プログラム記憶部４０３と、入出力部４０４と、通信部４０５と、内部バス４０６と、から構成される。
【００３３】
情報処理部４０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）、等から構成され、プログラム記憶部４０３に記憶されている制御プログラム４０７に従って、後述する確率係数出力装置４０が実行する処理を実行する。
【００３４】
データ記憶部４０２は、ＲＡＭ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成され、情報処理部４０１の作業領域として用いられる。
【００３５】
プログラム記憶部４０３は、フラッシュメモリ、ハードディスク、等の不揮発性メモリから構成され、情報処理部４０１の動作を制御する制御プログラム４０７と、下記に示す処理を実行するためのデータを記憶する。
【００３６】
通信部４０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）デバイス、モデム等から構成され、ＬＡＮ回線や通信回線を介して接続された外部機器に情報処理部４０１の処理結果を送信する。また、外部機器から情報を受信して、情報処理部４０１に伝達する。
なお、情報処理部４０１と、データ記憶部４０２と、プログラム記憶部４０３と、入出力部４０４と、は内部バス４０６によってそれぞれ接続され、情報の送信が可能である。
【００３７】
入出力部４０４は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やシリアルポートによって確率係数出力装置４０に接続された外部機器との情報の入出力を制御するＩ／Ｏ部である。
【００３８】
確率係数出力装置４０は、上記物理構成により、図３（ｂ）に示すように、単語列取得部４１０、判別部４２０、（ｎ−１）グラム生成部４３０、確率係数取得部４４０、確率係数算出部４５０、出力部４６０、記憶部４７０、として機能する。
【００３９】
単語列取得部４１０は、メニュー解析部３０からメニューに含まれるｎグラム（注目単語列）と、ｎグラムから生成された区切パターン（確率係数を取得する必要のある区切パターン）を示す情報を取得する。単語列取得部４１０は、取得したｎグラムと情報とを判別部４２０に伝達する。
【００４０】
判別部４２０は、単語列取得部４１０から伝達されたｎグラムの区切パターンについて、その区切れ方でメニューが区切れる確からしさを示す確率係数が取得できるか否か判別する。判別部４２０は、判別処理にあたって、記憶部４７０のｎグラムリスト記憶部４７１０に記憶されたｎグラムリストを参照する。ｎグラムリスト及び判別部４２０が実行する判別処理の具体的な内容については後述する。
本実施形態では、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列（メニュー）も区切れるとの仮定の下、メニューのｎグラムの区切パターンでメニューが区切れる確からしさを、（ｎ−１）グラム〜モノグラムの教師データから推測する。
【００４１】
判別部４２０は、ｎグラムの確率係数が取得できると判別すると、確率係数取得部４４０にｎグラムを伝達する。
一方、ｎグラムの確率係数が取得できないと判別すると、（ｎ−１）グラム生成部４３０にｎグラムを伝達する。
【００４２】
（ｎ−１）グラム生成部４３０は、判別部４２０からｎグラムを伝達されると、ｎグラムを構成する最初の単語からｎ−１個目の単語から構成される（ｎ−１）グラム（前（ｎ−１）グラム）と、構成する２つ目の単語からｎ個目の単語から構成されるｎ−１グラム（後（ｎ−１）グラム）と、を生成する。
（ｎ−１）グラム生成部４３０は、生成した２つの（ｎ−１）グラムを、判別部４２０に伝達する。
【００４３】
判別部４２０は、（ｎ−１）グラム生成部４３０から２つの（ｎ−１）グラムを伝達されると、２つの（ｎ−１）グラムのそれぞれについて確率係数が取得できるか否か判別する。２つの（ｎ−１）グラムのどちらかについて確率係数が取得できない場合は、（ｎ−１）グラム生成部４３０に３つの（ｎ−２）グラムを生成させ、以下モノグラムになるまで同様に判別処理を繰り返す。判別部４２０と（ｎ−１）グラム生成部４３０が実行する処理の具体的な内容については後述する。
判別部４２０は、（ｎ−１）グラム生成部４３０からモノグラムを伝達されると、判別処理を実行せずに確率係数取得部４４０にそのモノグラムを伝達する。
【００４４】
確率係数取得部４４０は、判別部４２０から単語列として単語列取得部４１０が取得したｎグラムを伝達されると、区切パターンのうち単語列取得部４１０が取得した情報が示す区切パターンの確率係数を取得して、出力部４６０に伝達する。
一方、単語列としてｎ−１グラム〜モノグラム（ここではｊグラムとする）を伝達されると、伝達された全てのｊグラムについて、単語列取得部４１０が取得した情報が示す区切パターンの確率係数を取得するために必要な区切パターンを生成し、それぞれの区切パターンについて確率係数を取得する。
そして、伝達された全てのｊグラムと、生成した区切パターンと、その確率係数と、を確率係数算出部４５０に伝達する。
確率係数取得部４４０は、確率係数を取得する処理で教師データ記憶部４７３０に記憶された教師データを参照する。確率係数取得部４４０がどのように確率係数を取得するか、その具体的な処理内容については後述する。
【００４５】
確率係数算出部４５０は確率係数取得部４４０から、伝達された全てのｊグラムから生成された区切パターンと、その確率係数を伝達されると、伝達された情報からｎグラムの区切パターンの確率係数を算出する。確率係数算出部４５０がどのようにｎグラムの区切パターンの確率係数を算出するかは後述する。
確率係数算出部４５０は、ｎグラムの区切パターンの確率係数を算出すると、そのうち単語列取得部４１０が取得した、確率係数が必要な区切パターンとその確率係数を抽出して、出力部４６０に伝達する。
【００４６】
出力部４６０は、確率係数算出部４５０から伝達された区切パターンとその確率係数をメニュー解析部３０に出力する。
【００４７】
記憶部４７０は、確率係数出力装置４０の記憶部４７０を除く各部から情報を伝達され、伝達された情報を記憶する。また、確率係数出力装置４０の記憶部４７０を除く各部からのコマンドに応答して、記憶する情報を出力する。
【００４８】
記憶部４７０は、ｎグラムリストを記憶するｎグラムリスト記憶部４７１０、確率係数出力装置４０が下記する処理を実行するための設定パラメータを記憶する設定記憶部４７２０、教師データを記憶する教師データ記憶部４７３０、を含む。
【００４９】
ｎグラムリストは、教師データ記憶部４７３０に記憶された教師データに現れる全てのｎグラムを登録したリストである。
ｎグラムリスト記憶部４７１０が記憶するｎグラムリストの例を、図４を参照して説明する。図４の例では、ｎグラム記憶部４７１０は、トライグラムリスト（図４（ａ））、バイグラムリスト（図４（ｂ））、モノグラムリスト（図４（ｃ））、をそれぞれ記憶する。
トライグラムリストは、教師データに現れる全てのトライグラムを、そのトライグラムを含む教師データが幾つあるかを示すデータ数と関連付けて記憶している。バイグラムリスト、モノグラムリストについても同様である。
【００５０】
次に、確率係数算出部４５０が、ｊグラムの区切パターン及びその確率係数を用いて、ｎグラムの区切パターンの確率係数を算出する処理について、図５を参照して説明する。
【００５１】
図５は、トライグラムリスト（図４（ａ））に、あるトライグラム（ここでは「の赤ワイン煮」）が登録されていない、あるいは十分な数（所定の閾値以上）が登録されていない場合に、確率係数算出部４５０はバイグラムやモノグラムの区切パターンの確率係数からトライグラムの区切パターンの確率係数を算出する。
【００５２】
トライグラム「の赤ワイン煮」の注目区切パターン「０の１赤ワイン０煮１」を算出する場合の算出方法を、図５（ａ）を参照して説明する。ここで、トライグラムの、前半のバイグラム（前バイグラム）は「の赤ワイン」、後半のバイグラム（後バイグラム）は「赤ワイン煮」である。そして、注目区切パターンに対応するバイグラムの区切パターン（対応区切パターン）は、対応する語間の区切フラグが共通する「０の１赤ワイン０」と「１赤ワイン０煮１」とである。
【００５３】
確率係数算出部４５０はこの対応するバイグラム（ｊグラム）の区切パターンとその確率係数を確率係数取得部４４０から伝達されると、区切フラグを比較して対応区切パターンを抽出する。そして、対応区切パターンの確率係数を加算平均して、注目区切パターンの確率係数とする（図５（ａ））。
【００５４】
同様に、対応するモノグラムの区切パターンとその確率係数を確率係数取得部４４０から取得すると、前・中央・最後尾の各モノグラムから対応区切パターンを抽出し、各対応区切パターンの確率係数を加算平均して注目区切パターンの確率係数とする（図５（ｂ））。
【００５５】
続いて、メニュー表示装置１が実行する処理について、フローチャート（図６〜図１０）を参照して説明する。メニュー表示装置１の情報処理部７０は、ユーザがメニューを撮影するための操作を実行すると、図６に示すメニュー表示処理を実行する。
【００５６】
メニュー表示処理では、まず入力部１０を用いてメニューが印刷された画像を取得する（ステップＳ１０１）。
そして、取得した画像から、ＯＣＲ２０が文字を認識して文字列を取得する（ステップＳ１０２）。
【００５７】
ＯＣＲ２０が文字列を取得してメニュー解析部３０に伝達すると、まずメニュー解析部３０が、文字列を単語単位に分割する分かち書き処理を実行して、文字列を単語列に変換する。（ステップＳ１０３）。
ここで、メニュー解析部３０は文字列から単語を抽出する任意の既知の方法を用いて上記分かち書き処理を実行してよいが、ここでは特許文献２が例示する方法を用いて分かち書き処理を実行することとする。
なお、メニュー解析部３０は、解析対象となるメニューが英語やフランス語等の単語毎にスペースで区切られる言語であった場合は、スペースを認識して上記分かち書き処理を実行する。
【００５８】
そして、メニュー解析部３０は、メニューが単語列のどの部位で区切れるか推測し、メニューを分割する処理（メニュー分割処理）を実行する（ステップＳ１０４）。
【００５９】
ステップＳ１０４で実行されるメニュー分割処理について、図７を参照して説明する。
メニュー分割処理が開始されると、まずメニュー解析部３０は単語列からｎグラム列を生成する（ステップＳ２０１）。ｎグラム列に含まれる各ｎグラムは、単語列の部分列である。
なお、ここでｎの値は任意に定められたデフォルト値であるってよいが、ここではｎ＝３とする。
【００６０】
そして、カウンタ変数ｉ＝１とし、ｎグラム列の先頭（１番目）のｎグラム（トライグラム）を注目部分列（注目トライグラム）とする（ステップＳ２０２）。
【００６１】
そして、メニュー解析部３０が先頭のトライグラム（注目部分列）について、確率係数出力装置４０に１６種のうち、先頭の区切フラグが１であるすべての区切パターン（８個）について確率係数を求めるコマンドを確率係数出力装置４０に送信して、確率係数取得処理が開始される（ステップＳ２０３）。
【００６２】
ステップＳ２０３で実行される確率係数取得処理について、図８を参照して説明する。
ステップＳ２０３に至り、メニュー解析部３０からｎグラムと、確率係数を算出すべき区切パターンについてのコマンドを単語列取得部４１０が受信すると、確率係数出力装置４０は確率係数取得処理を開始する。
確率係数取得処理では、まず判別部４２０がｎグラムリスト記憶部４７１０に記憶されているトライグラムリストを参照して、注目トライグラムを含む教師データのデータ数を取得する（ステップＳ３０１）。
【００６３】
そして、注目トライグラムの確率係数を求めるのに十分な数の教師データが存在しているか否か、設定記憶部４７２０に記憶されたトライグラム用の閾値と注目部分列のデータ数とを比較して判別する。
【００６４】
注目部分列のデータ数が閾値以上である場合（ステップＳ３０２；ＹＥＳ）、十分な数の教師データが存在していると判断できるため、現在の注目部分列（ｎグラム）をそのまま用いて区切パターンの確率係数を取得する（ステップＳ３０３〜３０４）。
【００６５】
まず、確率係数取得部４４０がメニュー解析部３０から伝達された区切パターンを生成し（ステップＳ３０３）、その確率係数を取得する（ステップＳ３０４）。具体的には、教師データ記憶部４７３０に記憶された教師データであって注目部分列を含む教師データを抽出する。このとき抽出されたデータ数をｎ１とする。抽出された教師データの対応部分の区切フラグと、区切パターンの区切フラグとを比較し、同一の区切れ方をしている教師データを抽出する。このとき抽出されたデータ数をｎ２とする。確率係数ｐは、ｎ１とｎ２の比で求められる。
すなわち、ｐ＝ｎ２／ｎ１である。
なお、ｐを求める方法はこれに限らず、ｐの値が、ｎ２が大きければ大きいほど大きくなり、ｎ１が大きければ大きいほど小さくなる任意の式（例えばｐ＝ｎ２＾２／ｎ１＾２）で求めることが出来る。
【００６６】
一方、注目部分列のデータ数が閾値より小さいか、トライグラムリストに登録されていない場合（ステップＳ３０２；ＮＯ）、十分な数の教師データが記憶されていないと判断できるため、ｎ−１グラム（バイグラム）〜モノグラムを用いて確率係数を算出する処理（確率係数算出処理、ここでは確率係数算出処理１）を実行する（ステップＳ３０５）。
【００６７】
ステップＳ３０５で実行される確率係数算出処理１について、図９を参照して説明する。
確率係数算出処理１では、まず（ｎ−１）グラム生成部４３０が注目文字列（ｎグラム）の部分列である（ｎ−１）グラムを二つ（ここでは図５（ａ）の前バイグラムと後バイグラム）を生成する。
【００６８】
そして、判別部４２０が、二つの前バイグラムと後バイグラムとの両方について、確率係数が取得可能であるか、確率係数取得処理（図８）のステップＳ３０２と同様にｎグラムリスト記憶部４７１０に記憶されたバイグラムリストを比較して判別する。具体的には、対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数とを比較する（ステップＳ４０２）。ここで、ｎグラム用の閾値はそれぞれ任意に設定可能であるが、好ましくはｎが大きいほど閾値が大きい。ｎグラムから定義できる区切パターンの数は２＾ｎ個であり、ｎが大きくなるにつれてその数は大きくなる。大きな数の区切パターンのそれぞれの確率係数を取得するために十分な教師データの数は、それだけ大きくなるからである。
【００６９】
全てのバイグラムのデータ数が閾値以上である場合（ステップＳ４０２；ＹＥＳ）は、その（ｎ−１）グラム（バイグラム）全てについて確率係数を取得できると判断できるので、バイグラムを用いて確率係数を算出する（図５（ａ））ためにステップＳ４０６に移行する。
【００７０】
何れかのバイグラムのデータ数が閾値より小さい場合（ステップＳ４０２；ＮＯ）は、何れかのバイグラムについて確率係数を取得できないと判断できるので、モノグラムを用いて確率係数を算出する（図５（ｂ））。
即ち、現在のｎ−１が１でないか判別し（ステップＳ４０３）、１で無い場合は（ステップＳ４０３；ＮＯ）、ｎを１減算して２とし（ステップＳ４０４）、ステップＳ４０１にもどって（ｎ−１）グラム（ここではモノグラム）を生成する。
【００７１】
一方、ｎ−１が１である場合（ステップＳ４０３；ＹＥＳ）、さらにｎを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成し、その確率係数をデフォルト値（ここでは０．５）とする（ステップＳ４０５）。
【００７２】
そして、ステップＳ４０１〜ステップＳ４０５で全ての確率係数を取得できる（ｎ−１）の値を決定すると、次にその（ｎ−１）グラムの全てについて、メニュー解析部３０から伝達された区切パターンと対応する語間で共通する区切フラグをもつ区切パターンを生成する（ステップＳ４０６）。そして、生成した区切パターンについて、確率係数取得処理（図８）のステップＳ３０４と同様に確率係数を取得する（ステップＳ４０７）。
【００７３】
そして、注目部分列（トライグラム）の区切パターン毎に確率係数を算出する処理（区切パターン毎算出処理１）を実行して（ステップＳ４０８）、確率係数算出処理１は終了する。
【００７４】
ステップＳ４０８で実行される区切パターン毎算出処理１について、図１０を参照して説明する。区切パターン毎算出処理１では、まず注目部分列（注目トライグラム）から生成できる全ての区切パターンのうち、メニュー解析部３０から要求された確率係数を取得すべき区切パターンを生成する（ステップＳ５０１）。
【００７５】
そして、ｋをカウンタ変数として、生成した区切パターンのｋ番目の区切パターンに注目する（ステップＳ５０２）。図５の例では、「０の１赤ワイン０煮１」が注目区切パターンである。
【００７６】
次に、ステップＳ４０６で生成された注目区切パターンに対応する（ｎ−１）グラムの区切パターン（対応区切パターン、対応する語間の区切フラグが同一）について、ステップＳ４０７で取得した確率係数を注目区切パターンの確率係数に加算する（ステップＳ５０３）。
【００７７】
次に、ステップＳ５０１で生成された全区切パターンを処理したか（全区切パターンの確率係数を算出して加算したか）判別する（ステップＳ５０４）。
未処理の区切パターンがある場合（ステップＳ５０４；ＮＯ）、ｋをインクリメントし（ステップＳ５０５）、次の区切パターンについてステップＳ５０２からの処理を繰り返す。
【００７８】
一方、全ての区切パターンについて処理を終えている場合（ステップＳ５０４；ＹＥＳ）、これまでの処理で（ｎ−１）グラムの確率係数を加算した注目区切パターンの確率係数を加算した数（現時点のｎ）で割ってその値を加算平均値とし、区切パターン毎算出処理１を終了する。
【００７９】
図８にもどって、ステップＳ３０４又はステップＳ３０５で確率係数を取得すると、出力部４６０が取得した確率係数をメニュー解析部３０に出力して（ステップＳ３０６）、確率係数取得処理は終了する。
【００８０】
図７にもどって、確率係数取得処理（ステップＳ２０３）が終わると、先頭の区切フラグが１であるすべての区切パターンのうち、確率係数がもっとも高いパターン（最尤パターン）を選択する（ステップＳ２０４）。
【００８１】
次に、未処理のｎグラムがあるか否かを判別する（ステップＳ２０５）。i番目のｎグラムが、解析対象となる単語列の最後のｎグラムでなかった場合、未処理のｎグラムがあると判別され（ステップＳ２０５；ＹＥＳ）、ｉがインクリメントされる（ステップＳ２０６）。
【００８２】
そして、ステップＳ２０２にもどって、次のループが開始される。２回目以降のループのステップＳ２０３では、ｉ番目のｎグラムの１６種の区切パターンのうち、最後以外の区切フラグが前回のループのステップＳ２０４で選択されたパターンと共通である２つの区切パターンについて確率係数を求めるコマンドを送信する。
即ち、前回のループまでで選択されたパターンと共通の区切フラグを持つ２つのうち、ｉ番目のｎグラムの最後の単語の後ろで区切れるか否かが、２回目以降のループのステップＳ２０２からステップＳ２０４で決定される。
【００８３】
一方、i番目のｎグラムが、解析対象となる単語列の最後のｎグラムであった場合、未処理のｎグラムは無いと判別される（ステップＳ２０５；ＮＯ）。そして、これまでのループのステップＳ２０４で選択された区切パターンにおける区切フラグが１の部位で単語列を分割し（ステップＳ２０７）、メニュー分割処理は終了する。
【００８４】
図６にもどって、メニュー分割処理が終わると、翻訳部５０が分割された単語列に含まれる単語それぞれを、翻訳辞書を用いて翻訳する（ステップＳ１０５）。
【００８５】
そして、表示部６０が翻訳結果を表示し（ステップＳ１０６）、メニュー表示処理は終了する。
【００８６】
以上説明したように、本実施形態に係る確率係数出力装置４０によれば、注目するｎグラムを含む教師データが十分に得られない場合、あるいは無い場合であっても、そのｎグラムの部分列から区切り方に係るデータを取得して、区切パターンの確率係数を求めることが出来る。
即ち、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列（メニュー）も区切れるとの仮定の下、メニューのｎグラムの区切パターンでメニューが区切れる確からしさを、（ｎ−１）グラム〜モノグラムの教師データから推測して求めることができる。
そのため、ｎグラムそのものを含む教師データのみから区切パターンの確率係数を取得してメニューの区切位置を推定するよりも必要な教師データの数が少なくてすむ。
【００８７】
また、本実施形態ではｎグラムの区切パターンの確率係数を、区切フラグが一致するｎ−１グラム〜モノグラムの区切パターンの確率係数に基づいて算出する。そのため、単語の共通性のみを用いて算出に使用する係数を抽出する場合に比べて、より算出結果の精度が高い。
【００８８】
さらに、ｎグラムの部分列である（ｎ−１）グラム〜モノグラム（ｊグラム）のすべてについて信頼できる確率係数を取得できると判別できるｊの値を定め、単語数の区切パターンから確率係数を算出する。そのため、確率係数を算出するにあたって、前のｊグラムの情報量と後ろのｊグラムの情報量に偏りが無い。そのため、どちらかのｊグラムの確率係数がより強く算出結果に影響を与える、といった偏り無くｎグラムの確率係数を算出することが出来る。
【００８９】
また、本実施形態に係る確率係数出力装置４０によれば、教師データが所定のカテゴリの文字列（ここではメニュー）から生成されているため、広範なカテゴリ（例えば日本語全体）の教師データを用いて区切パターンの確率係数を求めた場合よりも、カテゴリに合致した確率係数を求めることが出来る。
そのため、確率係数出力装置４０を含むメニュー表示装置１を用いてメニューを分割すると、メニューを分割する精度が高い。
【００９０】
なお、上記説明ではｎグラムの確率係数を抽出した部分列（ｊグラム）の対応パターンの確率係数を加算平均して求めるとしたが、ｎグラムの確率係数を求める方法はこれに限らない。
ｎグラムの確率係数は、ｊグラムの対応パターンの少なくとも一つが大きくなるにつれて、ｎグラムの確率係数も大きくなるような任意の計算式で代替可能である。例えば、対応パターンの確率係数のうち、最も前に位置する対応パターンの確率係数の影響が大きくなるように重み付けして加算する式、各対応パターンの確率係数を累乗平均する式、等に置換することができる。
また、ｎグラムの確率係数は所定の最大値（たとえば０．８）をもち、算出値が最大値以上であれば最大値を算出結果としてもよい。
さらに、対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部４７０に記憶し、算出式によらずこのテーブルを参照してｎグラムの確率係数を求めても良い。
【００９１】
（実施形態２）
次に、本願発明の実施形態２に係るメニュー表示装置１及び確率係数出力装置４０について説明する。
【００９２】
本実施形態のメニュー表示装置１及び確率係数出力装置４０は、実施形態１に係るメニュー表示装置１及び確率係数出力装置４０と同様の構成を持つ（図１、図３）。
【００９３】
本実施形態の確率係数出力装置４０は、実施形態１に係る確率係数出力装置４０と確率係数の算出方法が異なる。
ここで、本実施形態の確率係数出力装置４０の確率係数の算出方法について、図１１を参照して説明する。
【００９４】
本実施形態の確率係数出力装置４０が、トライグラムの区切パターンを算出するに当たって、前バイグラムと後バイグラムの確率係数を用いて算出する方法を、図１１（ａ）を参照して説明する。
【００９５】
このとき、トライグラムの区切パターン（ここでは「０の１赤ワイン０煮１」）の確率係数を算出するにあたって、まず共通する区切フラグを持つ前バイグラム（「０の１赤ワイン０」、確率係数ｐ１＝０．３１）を対応パターンとして抽出する。そして、後バイグラムにおける対応パターンとして、前バイグラムにおける対応パターンと共通する区切フラグをもつ二つのバイグラムである「１赤ワイン０煮１」（確率係数ｐ２＝０．４５）と「１赤ワイン０煮０」（確率係数ｐ３＝０．１１）とを抽出する。
【００９６】
そして、前バイグラムの対応パターンの確率係数を、後バイグラムにおける対応パターンの確率係数に基づいて振り分けて、トライグラムの確率係数を算出する。即ち、トライグラムの区切パターンの確率係数を、「０の１赤ワイン０」の次に「１赤ワイン０煮１」が来る場合の確率ｐａとして、ｐ１・（ｐ２／（ｐ２＋ｐ３））として算出する。同様に、「０の１赤ワイン０」の次に「１赤ワイン０煮０」が来る確立ｐｂはｐ１・（ｐ３／（ｐ２＋ｐ３））として算出できる。
なお、この算出式は、前（ｎ−１）グラムにおける対応パターンの確率係数ｐ１を後（ｎ−１）グラムにおける対応パターンの確率係数で振り分ける任意の式（例えばｐａ＝ｐ１＾２・（ｐ２＾２／（ｐ２＋ｐ３）＾２）に置き換えることができる。
なお、ここでは前の（ｎ−１）グラムにおける対応パターンの確率係数ｐ１を後ろの（ｎ−１）グラムにおける対応パターンの確率係数で振り分けたが、処理の順序は前後逆でも良い。以下同じである。
また、前後それぞれの（ｎ−１）グラムの対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部４７０に記憶し、算出式によらずこのテーブルを参照してｎグラムの確率係数を求めても良い。
【００９７】
同様に、トライグラムの区切パターンを算出するに当たって、前バイグラムと後モノグラムの確率係数を用いて算出する場合は、前のバイグラムの対応パターンの確率係数を、後ろのモノグラムにおける対応パターンの確率係数に基づいて振り分ける（図１１（ｂ））。
【００９８】
また、トライグラムの区切パターンを、モノグラムの確率係数のみを用いて算出する方法を図１１（ｃ）を参照して説明する。このとき、まず前モノグラムにおける対応パターンの確率係数ｐ７を後モノグラムにおける対応パターンの確率係数ｐ８とｐ９に振り分けて、前バイグラムの確率係数ｐ１０を求める（ｃ１）。そして、（ｃ１）で求めた前バイグラムにおける確率係数ｐ１０を用いて、図１１（ｂ）と同様にトライグラムの確率係数を算出する。
【００９９】
本実施形態の確率係数出力装置４０が実行する図１１に示す算出処理を、フローチャート（図１２〜図１３）を用いて具体的に説明する。
【０１００】
本実施形態のメニュー表示装置１及び確率係数出力装置４０は、ユーザがメニューを撮影するための操作を実行すると、実施形態１と同様に、図６のメニュー表示処理と、図７のメニュー分割処理と、図８の確率係数取得処理を実行する。
本実施形態の確率係数出力装置４０は、確率係数取得処理（図８）のステップＳ３０５で、確率係数算出処理２（図１２）を実行する。
【０１０１】
確率係数算出処理２では、まず（ｎ−１）グラム生成部４３０が注目文字列（ｎグラム）の部分列である（ｎ−１）グラムを二つ（ここでは図１１（ａ）の前バイグラムと後バイグラム）を生成して、何れかのバイグラム（ここでは前バイグラム）に注目する（ステップＳ６０１）。
【０１０２】
次に、判別部４２０が、注目バイグラム（前バイグラム）について、確率係数が取得可能であるか、確率係数取得処理（図８）のステップＳ３０２と同様にｎグラムリスト記憶部４７１０に記憶されたバイグラムリストの対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数と、を比較して判別する（ステップＳ６０２）。
【０１０３】
前バイグラムのデータ数がバイグラムの閾値以上である場合（ステップＳ６０２；ＹＥＳ）は、前バイグラムについて確率係数を取得できると判断できるので、注目バイグラム（前バイグラム）について対応パターンを特定し、その確率係数を取得する（ステップＳ６０３）。
【０１０４】
前バイグラムのデータ数が閾値より小さい場合（ステップＳ６０２；ＮＯ）は、前バイグラムについて確率係数を取得できないと判断できるので、図１１（ｃ）の（ｃ１）のようにモノグラムを用いて前バイグラムの確率係数を算出する。即ち、現在のｎ−１が１でないか判別し（ステップＳ６０４）、１で無い場合は（ステップＳ６０３；ＮＯ）、ｎを１減算して２とし（ステップＳ６０５）、減算したｎで前バイグラムを注目部分列として確率係数算出処理２を再帰的に実行して、区切パターンを生成し、その確率係数を取得する（ステップＳ６０６）。
【０１０５】
一方、ｎ−１が１である場合（ステップＳ６０４；ＹＥＳ）、さらにｎを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成しその確率係数をデフォルト値（ここでは０．５）とする（ステップＳ６０７）。
【０１０６】
次に、前後両方の（ｎ−１）グラムについて処理が終了したか判別する（ステップＳ６０８）。前後どちらかの（ｎ−１）グラムについて、確率係数を取得していない場合は（ステップＳ６０８；ＮＯ）、未処理の（ｎ−１）グラムを注目（ｎ−１）グラムとして（ステップＳ６０９）、ステップＳ６０２から処理を繰り返す。
【０１０７】
一方、前後両方の（ｎ−１）グラムについて確率係数を取得し終えたと判別すると（ステップＳ６０８；ＹＥＳ）、次に区切パターン毎に確率係数を算出する処理（区切パターン毎算出処理２）を実行して（ステップＳ６０９）、確率係数算出処理２は終了する。
【０１０８】
ステップＳ６１０で実行される区切パターン毎算出処理２について、図１３を参照して説明する。区切パターン毎算出処理２では、まず注目部分列（注目トライグラム）から生成できる全ての区切パターンのうち、メニュー解析部３０から要求された確率係数を取得すべき区切パターンを生成する（ステップＳ７０１）。
【０１０９】
そして、ｋをカウンタ変数として、生成した区切パターンのｋ番目の区切パターンに注目する（ステップＳ７０２）。図１１（ａ）及び（ｂ）の例では、「０の１赤ワイン０煮１」が注目区切パターンである。図１１（ｃ）の（ｃ１）の例では、「０の１赤ワイン０」が注目区切パターンである。
【０１１０】
次に、図１１に示した注目区切パターンに対応する（ｎ−１）グラムの区切パターン（対応パターン）を、確率係数算出処理２（図１２）のステップＳ６０３、ステップＳ６０６又はステップＳ６０７で生成された（ｎ−１）グラムの区切パターンの中から抽出する（ステップＳ７０３）。図１１（ａ）又は（ｃ）の（ｃ２）の場合は、「０の１赤ワイン０」と「１赤ワイン０煮１」とが対応パターンである。また、図１１（ｂ）の場合は、「０の１赤ワイン０」と「０煮１」とが対応パターンである。また、図１１（ｃ）の（ｃ１）の例では、「０の１」と「赤ワイン０」とが対応区切パターンである。
【０１１１】
そして、抽出した対応パターンの確率係数から、図１１に示した算出方法で注目区切パターンの確率係数を算出する（ステップＳ７０４）。
【０１１２】
次に、ステップＳ７０１で生成された全区切パターンについて、確率係数を算出したか判別する（ステップＳ７０５）。未処理の区切パターンがある場合（ステップＳ７０５；ＮＯ）、ｋをインクリメントし（ステップＳ７０６）、次の区切パターンについてステップＳ７０２からの処理を繰り返す。
【０１１３】
一方、全ての区切パターンについて処理を終えている場合（ステップＳ７０５；ＹＥＳ）、区切パターン毎算出処理２を終了する。
【０１１４】
以上説明したように、本実施形態に係る確率係数出力装置４０によれば、注目するｎグラムを含む教師データが十分に得られない場合、前のｎ−１グラム（注目ｎ−１グラム）について得られる確率変数を、後ろのｎ−１グラムに振り分けてｎグラムにおける区切パターンの確率変数を算出する（あるいはその逆）。
即ち、（ｎ−１）グラム列で教師データを分割して、ある区切パターンの区切方を、その区切パターンの区切方で区切れるとした場合にあり得る次の区切パターンの確率に基づいて分配してｎグラムの確率係数を算出するため、より多くの情報に基づいて確率係数を算出することができる。そのため、算出精度が高い。
【０１１５】
また、（ｎ−１）グラムの一部について確率係数が得られない場合でも、得られる限りの（ｎ−１）グラムの確率係数を利用してｎグラムの確率係数を算出できるため、一律に（ｎ−２）グラム〜モノグラムの確率係数を用いる場合と比べて精度の劣化が少ない。
【０１１６】
（変形例）
以上、本願発明の実施形態について説明したが、本願の実施形態はこれに限られず、さまざまな変形が可能である。
例えば、上記実施形態１乃至２では、ｎグラムのデータ数が所定の閾値以下だった場合に、（ｎ−１）グラム〜モノグラムの確率係数から算出したが、本願発明の実施形態はこれに限らない。例えば、このような場合に（ｎ−１）グラム〜モノグラムの確率係数から算出し、さらに所定の閾値以下のデータ数からｎグラムの確率係数を求め、算出した値と加算した数値を加算平均として求める値としても良い。
【０１１７】
また、上記実施形態１乃至２では、教師データは教師データ記憶部４７３０に記憶されていたが、教師データは確率係数出力装置の内部ではなく、外部装置に記憶されているとしても良い。
このとき、確率係数出力装置は、通信部４０５を用いて外部装置にアクセスして教師データを取得する。
【０１１８】
また、区切パターンはすべての語間について一意に区切フラグを定義し、区切フラグを比較するにあたって完全に一致する場合のみを対応する区切パターンとした。しかし、区切パターンにおいて一部の区切フラグを未知数として定義し、区切フラグの比較にあたっては未知の部分を考慮しない、とする構成も可能である。
【０１１９】
また、上記実施形態１乃至２では、ｎグラムの区切パターンの確率係数を求めるにあたって、タグ付の文字列である教師データにおける区切パターンの出現確率を逐一求めていた。しかし、確率係数出力装置又は外部装置が区切パターンの確率係数を登録したパターン確率係数リストを記憶しており、このパターン確率係数リストを参照して確率係数を取得する構成も可能である。このようなパターン確率係数リストの例を、図１４を参照して説明する。図１４は、トライグラムと、区切フラグと、に対応する確率係数を登録したトライグラムパターン確率係数リストの例である。例えば、パターン「００１０」の列、「豚−バラ肉−の」の行、に数値０．０２が登録されていることは、区切パターン「０豚０バラ肉１の０」の確率係数が０．０２であることを示す。
【０１２０】
また、上記実施形態１乃至２では、解析対象となる単語列はメニューであったが、本発明はメニュー以外の任意のカテゴリの単語列について応用可能である。本発明の解析対象となる単語列は、現れる単語が限られていること、単語と単語との区切り方のルールが限定されていること、を特徴とするカテゴリの単語列であることが好ましい。このようなカテゴリの単語列の例として、メニューの他に住所、薬品の効能書き・説明書、等があげられる。
【０１２１】
また、上記実施形態１乃至２の確率係数出力装置は、メニュー解析部３０からｎ個の単語（ｎグラム）と、そのｎグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を伝達され、確率係数を必要とする区切パターンについて確率係数を算出して出力したが、本発明に係る確率係数出力装置が実行する処理はこれに限らない。例えば、確率係数出力装置は外部装置からｎグラムのみ伝達され、そのｎグラムについて定義できる全ての区切パターンを生成し、生成した全ての区切パターンの確率係数を算出して出力するとしても良い。
【０１２２】
また、情報処理部４０１、データ記憶部４０２、プログラム記憶部４０３、等から構成される確率係数出力装置のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで情報処理装置を構成してもよい。
【０１２３】
また、確率係数出力装置の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１２４】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板（ＢＢＳ：Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【０１２５】
また、実行する処理の一部を、確率係数出力装置とは独立したコンピュータを用いて実現しても良い。。
【０１２６】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１２７】
（付記１）
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする情報処理装置。
【０１２８】
（付記２）
前記教師単語列は、前記注目単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列であり、
前記抽出部が抽出した部分単語列を含む単語列を、前記区切確率係数を取得するための教師単語列として十分な数だけ取得できるか否か判別する判別部をさらに備え、
前記抽出部は、前記判別部が抽出した部分単語列を含む単語列が前記区切確率係数を取得するに十分な数だけ取得できないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする付記１に記載の情報処理装置。
【０１２９】
（付記３）
前記確率係数取得部は、前記部分単語列に対して定義できる区切パターンのうち、前記確率係数獲得部が獲得する注目単語列の区切パターンと対応する語間については同じ区切り方である区切パターンを取得する、
ことを特徴とする付記１又は２に記載の情報処理装置。
【０１３０】
（付記４）
前記確率係数獲得部が求める注目単語列の区切パターンの区切確率係数は、前記確率係数取得部が取得した区切確率係数の少なくとも一つが大きくなるにつれて大きくなる、
ことを特徴とする付記１乃至３の何れか一つに記載の情報処理装置。
【０１３１】
（付記５）
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする付記１乃至４の何れか一つに記載の情報処理装置。
【０１３２】
（付記６）
前記抽出部は、すくなくとも注目単語列の先頭の単語を含む部分単語列である前部分単語列と最後尾の単語を含む部分単語列である後部分単語列とを抽出し、
前記確率係数獲得部は、前記前部分単語列又は前記後部分単語列のいずれか一方である注目部分単語列から取得された前記区切パターンの区切確率係数を、当該注目部分単語列の区切パターンと対応する語間については同じ区切り方に対応する、前記前部分単語列又は後部分単語列のうち注目単語列でない方の部分単語列から取得された区切パターンの区切確率係数に基づいて割り振って、前記注目単語列の区切パターンの区切確率係数を求める、
ことを特徴とする付記１乃至３の何れか一つに記載の情報処理装置。
【０１３３】
（付記７）
前記注目単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする付記１乃至６の何れか１つに記載の情報処理装置。
【０１３４】
（付記８）
コンピュータに、
注目単語列を取得する処理、
前記取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する処理、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出した部分単語列それぞれについて取得する処理、
前記取得した区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する処理、
前記注目単語列の区切パターンの区切確率係数を、前記取得した区切確率係数に基づいて求める処理、
を実行させることを特徴とするプログラム。
【符号の説明】
【０１３５】
１…メニュー表示装置、１０…入力部、２０…ＯＣＲ、３０…メニュー解析部、４０…確率係数出力装置、５０…翻訳部、６０…表示部、７０…情報処理部、４０１…情報処理部、４０２…データ記憶部、４０３…プログラム記憶部、４０５…入出力部、４０５…通信部、４０６…内部バス、４０７…制御プログラム、４１０…単語列取得部、４２０…判別部、４３０…（ｎ−１）グラム生成部、４４０…確率係数取得部、４５０…確率係数算出部、４６０…出力部、４７０…記憶部、４７１０…ｎグラムリスト記憶部、４７２０…設定記憶部、４７３０…教師データ記憶部
【図１】
0005834772.tif 000002
【図２】
0005834772.tif 000003
【図３】
0005834772.tif 000004
【図４】
0005834772.tif 000005
【図５】
0005834772.tif 000006
【図６】
0005834772.tif 000007
【図７】
0005834772.tif 000008
【図８】
0005834772.tif 000009
【図９】
0005834772.tif 000010
【図１０】
0005834772.tif 000011
【図１１】
0005834772.tif 000012
【図１２】
0005834772.tif 000013
【図１３】
0005834772.tif 000014
【図１４】
0005834772.tif 000015