情報処理装置及びプログラム
【課題】解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データ量が少ない情報処理装置及びプログラムを提供する。
【解決手段】単語列取得部410が解析対象となる単語列を取得すると、判別部420が教師データ記憶部4730にその単語列を含む教師データが十分に記憶されているか否か判別する。そして、教師データが十分でないと判別すると、(n−1)グラム生成部430が、単語列の部分列である(n−1)グラムを生成する。(n−1)グラム生成部430が生成した部分列のそれぞれについて、確率係数取得部440がその単語列の単語と単語との間である語間のそれぞれで、単語列が区切れる確からしさを示す確率係数を取得し、取得した確率係数から確率係数算出部450が単語列の確率係数を算出する。
【解決手段】単語列取得部410が解析対象となる単語列を取得すると、判別部420が教師データ記憶部4730にその単語列を含む教師データが十分に記憶されているか否か判別する。そして、教師データが十分でないと判別すると、(n−1)グラム生成部430が、単語列の部分列である(n−1)グラムを生成する。(n−1)グラム生成部430が生成した部分列のそれぞれについて、確率係数取得部440がその単語列の単語と単語との間である語間のそれぞれで、単語列が区切れる確からしさを示す確率係数を取得し、取得した確率係数から確率係数算出部450が単語列の確率係数を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
複数の単語を含む単語列(原文)を他の言語に翻訳する翻訳装置が知られている。このような翻訳装置は、原文を翻訳するにあたって、原文がどの単語と単語との間(語間)で区切れるか推測して翻訳処理を実行する。
【0003】
文書や単語列の区切り方を推測する方法に関連して、特許文献1は予め文書が属する言語の文法規則をプログラミングした構文解析器を用いて文書の区切れ方を推測する技術を提案している。
また、特許文献2は、分かち書きされていない文字列を単語毎に分割する技術を提案している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平6−309310号公報
【特許文献2】特開平10−254874号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、原文がどの単語と単語との間で区切れるかを推測するために、原文が属する言語の文法規則をプログラミングした構文解析器を用いる。そのため、原文の属する言語毎に構文解析器を多くの開発費用・日数を費やして作成しなくてはならなかった。また、特許文献2は、分かち書きされていない文字列を単語毎に分割する技術を開示しているが、文字列がどの単語と単語との間で区切れているか判別する方法を開示していない。
【0006】
構文解析器を用いずに文字列がどの単語と単語との間で区切れるかを推測するための技術として、原文と同じカテゴリの単語列がどのように区切られているかを示す教師データから単語と単語との間で区切れる確からしさを求める方法が考えられる。
【0007】
しかし、原文に含まれるn個の単語(nグラム)について単語がどのように区切れるかを、教師データを用いて推測するためには、原文に含まれる全てのnグラムについて、十分な数の教師データが必要となる。そのため膨大な量の教師データを収集して処理するための手間・計算量が膨大になってしまうという問題点があった。
【0008】
本発明は上記事情に鑑みてなされたもので、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データの量が少ない情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本願発明に係る情報処理装置は、
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データ量が少ない情報処理装置及びプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態1に係るメニュー表示装置の構成を示すブロック図である。
【図2】(a)は実施形態1に係る文字列と教師データの関係を、(b)は単語列と区切フラグとトライグラムと区切パターンとの関係を示す図である。
【図3】実施形態1に係る確率係数出力装置の構成を示すブロック図であり、(a)は物理構成を、(b)は機能構成を、それぞれ示す。
【図4】実施形態1に係るnグラムリストの例を示す図であり、(a)はトライグラムリストを、(b)はバイグラムリストを、(c)はモノグラムリストを、それぞれ示す。
【図5】実施形態1に係る確率係数算出処理の概要を示す図であり、(a)はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(b)はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図6】実施形態1に係るメニュー表示処理を示すフローチャートである。
【図7】実施形態1に係るメニュー分割処理を示すフローチャートである。
【図8】実施形態1に係る確率係数取得処理を示すフローチャートである。
【図9】実施形態1に係る確率係数算出処理を示すフローチャートである。
【図10】実施形態1に係る区切パターン毎算出処理を示すフローチャートである。
【図11】本発明の実施形態2に係る確率係数算出処理の概要を示す図であり、(a)はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(b)はモノグラムとバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(c)はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図12】実施形態2に係る確率係数算出処理を示すフローチャートである。
【図13】実施形態2に係る区切パターン毎算出処理を示すフローチャートである。
【図14】本発明のその他の実施形態に係るnグラム(トライグラム)パターン確率係数リストを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態に係るメニュー表示装置及び確率係数出力装置(情報処理装置)を、図を参照しながら説明する。なお、図中同一又は相当する部分には同一符号を付す。
【0013】
(実施形態1)
実施形態1に係る確率係数出力装置40は、図1に示すメニュー表示装置1に搭載されている。メニュー表示装置1は、i)解析対象となる特定のカテゴリに属する文字列(メニュー、献立等)を記載した紙等を撮影する撮影機能、ii)撮影した画像から解析対象となる文字列を認識して抽出する機能、iii)抽出した文字列を解析して単語列に変換する機能、iv)文字列の所定部分(単語間)でメニューが区切れる確率を示す係数(区切確率係数)を出力する機能、v)区切確率係数に基づいて単語列を区切る機能、vi)区切った単語列をそれぞれ翻訳する機能、vii)翻訳結果を表示する機能、等を備える。確率係数出力装置40は、これらの機能のうち、文字列の所定部分(単語間)でメニューが区切れる確率を示す係数(確率係数)を出力する機能を担当する。
【0014】
メニュー表示装置1は入力部10と、OCR(Optical Character Reader)20とメニュー解析部30と翻訳部50とを含む情報処理部70と、確率係数出力装置40と、表示部60と、を備える。
【0015】
入力部10は、カメラと画像処理部とから構成され、このような物理構成によりメニューを撮影した画像を取得する。入力部10は、取得した画像をOCR20に伝達する。
【0016】
情報処理部70は、画像処理用DSP(Digital Signal Processor)、作業用領域として用いられるRAM(Random Access Memory)、文字認識プログラム及び言語処理プログラムを記憶するEPROM(Erasable Programmable Read Only Memory)等から構成される。情報処理部70は、このような物理構成により、OCR20と、メニュー解析部30と、翻訳部50と、として機能する。
【0017】
OCR20は、入力部10から伝達された画像の文字を認識し、メニューに記された文字列(料理名等)を取得する。OCR20は、取得した文字列をメニュー解析部30に伝達する。
【0018】
メニュー解析部30は、OCR20から伝達された文字列を単語に分割して単語列に変換する。
メニュー解析部30は、単語列に現れるn個の単語からなる部分単語列(nグラム)を抽出する。さらに、nグラムから後述する区切パターンを生成し、そのうち確率係数を取得する必要のある区切パターンを選択する。
【0019】
ここで、本実施形態に係る解析対象となる文字列(メニュー)と、教師データと、nグラムと、区切パターンと、について、図2を参照して説明する。
本実施形態で解析対象となる文字列は、図2(a)の上に示されるようなメニューを示す文字列である。図2に示すメニュー「豚バラ肉の赤ワイン煮温野菜添え」にタグを付し、単語毎・固まり毎に分割したデータが教師データ(図2(a)下)である。図2(a)の例では、教師データは「<m><c><s><w>豚</w>バラ肉</w><w>の</w></s><s><w>赤ワイン</w><w>煮</w></s><s><w></c>温野菜</w><w>添え</w></s></m>」である。
【0020】
この教師データでは、メニューが単語を示すタグ<w></w>によって、「豚」、「バラ肉」、…、「添え」、の7つの単語に分割されている。さらに、材料名、料理方法、等等の単位に分割するタグ<s></s>により、「豚バラ肉の」、「赤ワイン煮」、「温野菜添え」、という三つに分割されている。また、材料名と料理方法とその他の修飾語(例えば「プロバンス風」、「特選」、等)を含む一つの料理の単位に分割するタグ<c><c/>により、「豚バラ肉の赤ワイン煮」と「温野菜添え」との二つに分割されている。タグ<m></m>は文字列を一つのメニュー(献立)ごとに区切るタグである。ここで、教師データは文字列をタグ<w>、<s>、<c>、<m>で区切っているが、教師データの形式はこれに限られない。教師データは所定のカテゴリに含まれる文字列を、単語単位に区切るユニークなマーク(半角スペースでも可)と、さらに単語以外の少なくとも一つの区切り方で区切るユニークなマークと、を含む任意の文字列であってよい。教師データは、予め特定の言語(ここでは日本語)の特定のカテゴリ(ここでは献立や料理名)に属する文字列を収集して、人手でタグ付けされたデータである。なお、教師データをタグ付けする方法は人手に限らず、構文解析器等の既知の任意のタグ付け方法であって良い。
【0021】
教師データと、nグラムと、区切パターンの関係を図2(b)に示す。教師データの単語列から、最初の単語からn個目の単語、2つの目の単語からn+1個目の単語、…のようにn個の単語を含む単語列の集合を抽出したものがnグラム列である。nグラム列を構成するそれぞれのn個の単語を含む単語列をnグラムと呼ぶ。さらに、n=3のnグラムをトライグラム、n=2のnグラムをバイグラム、n=1のnグラムをモノグラム、と呼ぶ。
【0022】
「豚バラ肉の赤ワイン煮温野菜添え」から、トライグラム「豚バラ肉の」、「バラ肉の赤ワイン」、…、「煮温野菜添え」、から構成されるトライグラム列を得ることが出来る(図2(b))。メニューの単語列は図2(b)の上部に示すように、タグ構造によってツリー状に区切られる。そして、システムの設計上定められたツリーの所定の高さ(教師データの所定のタグに対応)で、単語と単語との間のどこで区切れるか、その区切り方を定めることが出来る。
【0023】
図2(b)上のツリーの例では、タグ<m>又は</m>がある部位、タグ<s>及び</s>がある部位、タグ<c>及び</c>がある部位、のそれぞれ(区切ライン)でメニューが区切れている。単語列の語間のそれぞれで、区切れている場合に1、区切れていない場合を0で示した情報を区切フラグと呼ぶ。
なお、どのタグがある部分で区切れていると判断するかの判断基準は、自由に設定可能である。例えば、<s></s>タグがある部分のみで区切れていると判断して区切フラグを配置する設定等の任意の設定が可能である。
【0024】
トライグラム(nグラム)について、そのnグラムの語間のそれぞれで教師データが区切れているか否かを、単語と区切フラグを並べて定義したパターンを区切パターンという。
例えば、トライグラムを構成する3つの単語(単語A、単語B、単語C)について、単語Aの前、単語Cの後ろを含むいずれの語間でも教師データが区切れて居ない場合に対応する区切パターンは「0A0B0C0」、全ての語間で区切れている場合に対応する区切パターンは「1A1B1C1」、である。
【0025】
図2(b)の例では、トライグラム「豚バラ肉の」について、構成する単語「豚」の前、「豚」と「バラ肉」の間、「バラ肉」と「の」の間、「の」の後、の4つの語間で、それぞれメニューが区切れる場合を1、区切れない場合を0として区切パターンが2^4=16個定義できる。教師データに対応する区切パターンは「1豚0バラ肉0の1」である。
【0026】
以下、その言語(例えば日本語)に属するメニュー・料理名から教師データを十分量作成する。そして、あるnグラムを含む教師データであって、ある区切パターンで教師データが区切れている確率を示す係数を、その区切パターンの確率係数(区切確率係数)と呼ぶ。また、あるnグラムに対応する区切パターンの確率係数を、そのnグラムの確率係数と呼ぶ。
【0027】
メニュー解析部30は、確率係数出力装置40から取得した確率係数を用いて、単語列がどのように区切れているか推定し、単語列を推定結果と対応づけて翻訳部50に出力する。メニュー解析部30が実行する具体的な処理については後述する。
【0028】
メニュー解析部30は、n個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を確率係数出力装置40に伝達し、確率係数出力装置40から区切パターンの確率係数を取得する。
【0029】
確率係数出力装置40は、メニュー解析部30からn個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報とを伝達されると、教師データから取得したその区切パターンでメニューが区切れている確からしさを示す確率係数をメニュー解析部30に伝達する。
確率係数出力装置40が実行する具体的な処理とその構成については後述する。
【0030】
翻訳部50は、メニュー解析部30から伝達された単語列を、その単語列の分割パターンが示す分割方法で分割してユーザが所望する言語に翻訳する。
翻訳部50が翻訳する方法は既知の任意の翻訳方法であってよいが、ここでは分割された単語列に含まれる単語を、辞書データによって逐次翻訳することとする。
翻訳部50は、翻訳結果を表示部60に伝達する。
【0031】
表示部60は、液晶ディスプレイ等から構成され、翻訳部50から伝達された情報を表示する。
【0032】
次に、確率係数出力装置40の構成を、図3を参照して説明する。
確率係数出力装置40は、物理的には、図3(a)に示すように情報処理部401と、データ記憶部402と、プログラム記憶部403と、入出力部404と、通信部405と、内部バス406と、から構成される。
【0033】
情報処理部401は、CPU(Central Processing Unit)、DSP(Digital Signal Processing)、等から構成され、プログラム記憶部403に記憶されている制御プログラム407に従って、後述する確率係数出力装置40が実行する処理を実行する。
【0034】
データ記憶部402は、RAM(Random−Access Memory)等から構成され、情報処理部401の作業領域として用いられる。
【0035】
プログラム記憶部403は、フラッシュメモリ、ハードディスク、等の不揮発性メモリから構成され、情報処理部401の動作を制御する制御プログラム407と、下記に示す処理を実行するためのデータを記憶する。
【0036】
通信部405は、LAN(Local Area Network)デバイス、モデム等から構成され、LAN回線や通信回線を介して接続された外部機器に情報処理部401の処理結果を送信する。また、外部機器から情報を受信して、情報処理部401に伝達する。
なお、情報処理部401と、データ記憶部402と、プログラム記憶部403と、入出力部404と、は内部バス406によってそれぞれ接続され、情報の送信が可能である。
【0037】
入出力部404は、USB(Universal Serial Bus)やシリアルポートによって確率係数出力装置40に接続された外部機器との情報の入出力を制御するI/O部である。
【0038】
確率係数出力装置40は、上記物理構成により、図3(b)に示すように、単語列取得部410、判別部420、(n−1)グラム生成部430、確率係数取得部440、確率係数算出部450、出力部460、記憶部470、として機能する。
【0039】
単語列取得部410は、メニュー解析部30からメニューに含まれるnグラム(注目単語列)と、nグラムから生成された区切パターン(確率係数を取得する必要のある区切パターン)を示す情報を取得する。単語列取得部410は、取得したnグラムと情報とを判別部420に伝達する。
【0040】
判別部420は、単語列取得部410から伝達されたnグラムの区切パターンについて、その区切れ方でメニューが区切れる確からしさを示す確率係数が取得できるか否か判別する。判別部420は、判別処理にあたって、記憶部470のnグラムリスト記憶部4710に記憶されたnグラムリストを参照する。nグラムリスト及び判別部420が実行する判別処理の具体的な内容については後述する。
本実施形態では、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列(メニュー)も区切れるとの仮定の下、メニューのnグラムの区切パターンでメニューが区切れる確からしさを、(n−1)グラム〜モノグラムの教師データから推測する。
【0041】
判別部420は、nグラムの確率係数が取得できると判別すると、確率係数取得部440にnグラムを伝達する。
一方、nグラムの確率係数が取得できないと判別すると、(n−1)グラム生成部430にnグラムを伝達する。
【0042】
(n−1)グラム生成部430は、判別部420からnグラムを伝達されると、nグラムを構成する最初の単語からn−1個目の単語から構成される(n−1)グラム(前(n−1)グラム)と、構成する2つ目の単語からn個目の単語から構成されるn−1グラム(後(n−1)グラム)と、を生成する。
(n−1)グラム生成部430は、生成した2つの(n−1)グラムを、判別部420に伝達する。
【0043】
判別部420は、(n−1)グラム生成部430から2つの(n−1)グラムを伝達されると、2つの(n−1)グラムのそれぞれについて確率係数が取得できるか否か判別する。2つの(n−1)グラムのどちらかについて確率係数が取得できない場合は、(n−1)グラム生成部430に3つの(n−2)グラムを生成させ、以下モノグラムになるまで同様に判別処理を繰り返す。判別部420と(n−1)グラム生成部430が実行する処理の具体的な内容については後述する。
判別部420は、(n−1)グラム生成部430からモノグラムを伝達されると、判別処理を実行せずに確率係数取得部440にそのモノグラムを伝達する。
【0044】
確率係数取得部440は、判別部420から単語列として単語列取得部410が取得したnグラムを伝達されると、区切パターンのうち単語列取得部410が取得した情報が示す区切パターンの確率係数を取得して、出力部460に伝達する。
一方、単語列としてn−1グラム〜モノグラム(ここではjグラムとする)を伝達されると、伝達された全てのjグラムについて、単語列取得部410が取得した情報が示す区切パターンの確率係数を取得するために必要な区切パターンを生成し、それぞれの区切パターンについて確率係数を取得する。
そして、伝達された全てのjグラムと、生成した区切パターンと、その確率係数と、を確率係数算出部450に伝達する。
確率係数取得部440は、確率係数を取得する処理で教師データ記憶部4730に記憶された教師データを参照する。確率係数取得部440がどのように確率係数を取得するか、その具体的な処理内容については後述する。
【0045】
確率係数算出部450は確率係数取得部440から、伝達された全てのjグラムから生成された区切パターンと、その確率係数を伝達されると、伝達された情報からnグラムの区切パターンの確率係数を算出する。確率係数算出部450がどのようにnグラムの区切パターンの確率係数を算出するかは後述する。
確率係数算出部450は、nグラムの区切パターンの確率係数を算出すると、そのうち単語列取得部410が取得した、確率係数が必要な区切パターンとその確率係数を抽出して、出力部460に伝達する。
【0046】
出力部460は、確率係数算出部450から伝達された区切パターンとその確率係数をメニュー解析部30に出力する。
【0047】
記憶部470は、確率係数出力装置40の記憶部470を除く各部から情報を伝達され、伝達された情報を記憶する。また、確率係数出力装置40の記憶部470を除く各部からのコマンドに応答して、記憶する情報を出力する。
【0048】
記憶部470は、nグラムリストを記憶するnグラムリスト記憶部4710、確率係数出力装置40が下記する処理を実行するための設定パラメータを記憶する設定記憶部4720、教師データを記憶する教師データ記憶部4730、を含む。
【0049】
nグラムリストは、教師データ記憶部4730に記憶された教師データに現れる全てのnグラムを登録したリストである。
nグラムリスト記憶部4710が記憶するnグラムリストの例を、図4を参照して説明する。図4の例では、nグラム記憶部4710は、トライグラムリスト(図4(a))、バイグラムリスト(図4(b))、モノグラムリスト(図4(c))、をそれぞれ記憶する。
トライグラムリストは、教師データに現れる全てのトライグラムを、そのトライグラムを含む教師データが幾つあるかを示すデータ数と関連付けて記憶している。バイグラムリスト、モノグラムリストについても同様である。
【0050】
次に、確率係数算出部450が、jグラムの区切パターン及びその確率係数を用いて、nグラムの区切パターンの確率係数を算出する処理について、図5を参照して説明する。
【0051】
図5は、トライグラムリスト(図4(a))に、あるトライグラム(ここでは「の赤ワイン煮」)が登録されていない、あるいは十分な数(所定の閾値以上)が登録されていない場合に、確率係数算出部450はバイグラムやモノグラムの区切パターンの確率係数からトライグラムの区切パターンの確率係数を算出する。
【0052】
トライグラム「の赤ワイン煮」の注目区切パターン「0の1赤ワイン0煮1」を算出する場合の算出方法を、図5(a)を参照して説明する。ここで、トライグラムの、前半のバイグラム(前バイグラム)は「の赤ワイン」、後半のバイグラム(後バイグラム)は「赤ワイン煮」である。そして、注目区切パターンに対応するバイグラムの区切パターン(対応区切パターン)は、対応する語間の区切フラグが共通する「0の1赤ワイン0」と「1赤ワイン0煮1」とである。
【0053】
確率係数算出部450はこの対応するバイグラム(jグラム)の区切パターンとその確率係数を確率係数取得部440から伝達されると、区切フラグを比較して対応区切パターンを抽出する。そして、対応区切パターンの確率係数を加算平均して、注目区切パターンの確率係数とする(図5(a))。
【0054】
同様に、対応するモノグラムの区切パターンとその確率係数を確率係数取得部440から取得すると、前・中央・最後尾の各モノグラムから対応区切パターンを抽出し、各対応区切パターンの確率係数を加算平均して注目区切パターンの確率係数とする(図5(b))。
【0055】
続いて、メニュー表示装置1が実行する処理について、フローチャート(図6〜図10)を参照して説明する。メニュー表示装置1の情報処理部70は、ユーザがメニューを撮影するための操作を実行すると、図6に示すメニュー表示処理を実行する。
【0056】
メニュー表示処理では、まず入力部10を用いてメニューが印刷された画像を取得する(ステップS101)。
そして、取得した画像から、OCR20が文字を認識して文字列を取得する(ステップS102)。
【0057】
OCR20が文字列を取得してメニュー解析部30に伝達すると、まずメニュー解析部30が、文字列を単語単位に分割する分かち書き処理を実行して、文字列を単語列に変換する。(ステップS103)。
ここで、メニュー解析部30は文字列から単語を抽出する任意の既知の方法を用いて上記分かち書き処理を実行してよいが、ここでは特許文献2が例示する方法を用いて分かち書き処理を実行することとする。
なお、メニュー解析部30は、解析対象となるメニューが英語やフランス語等の単語毎にスペースで区切られる言語であった場合は、スペースを認識して上記分かち書き処理を実行する。
【0058】
そして、メニュー解析部30は、メニューが単語列のどの部位で区切れるか推測し、メニューを分割する処理(メニュー分割処理)を実行する(ステップS104)。
【0059】
ステップS104で実行されるメニュー分割処理について、図7を参照して説明する。
メニュー分割処理が開始されると、まずメニュー解析部30は単語列からnグラム列を生成する(ステップS201)。nグラム列に含まれる各nグラムは、単語列の部分列である。
なお、ここでnの値は任意に定められたデフォルト値であるってよいが、ここではn=3とする。
【0060】
そして、カウンタ変数i=1とし、nグラム列の先頭(1番目)のnグラム(トライグラム)を注目部分列(注目トライグラム)とする(ステップS202)。
【0061】
そして、メニュー解析部30が先頭のトライグラム(注目部分列)について、確率係数出力装置40に16種のうち、先頭の区切フラグが1であるすべての区切パターン(8個)について確率係数を求めるコマンドを確率係数出力装置40に送信して、確率係数取得処理が開始される(ステップS203)。
【0062】
ステップS203で実行される確率係数取得処理について、図8を参照して説明する。
ステップS203に至り、メニュー解析部30からnグラムと、確率係数を算出すべき区切パターンについてのコマンドを単語列取得部410が受信すると、確率係数出力装置40は確率係数取得処理を開始する。
確率係数取得処理では、まず判別部420がnグラムリスト記憶部4710に記憶されているトライグラムリストを参照して、注目トライグラムを含む教師データのデータ数を取得する(ステップS301)。
【0063】
そして、注目トライグラムの確率係数を求めるのに十分な数の教師データが存在しているか否か、設定記憶部4720に記憶されたトライグラム用の閾値と注目部分列のデータ数とを比較して判別する。
【0064】
注目部分列のデータ数が閾値以上である場合(ステップS302;YES)、十分な数の教師データが存在していると判断できるため、現在の注目部分列(nグラム)をそのまま用いて区切パターンの確率係数を取得する(ステップS303〜304)。
【0065】
まず、確率係数取得部440がメニュー解析部30から伝達された区切パターンを生成し(ステップS303)、その確率係数を取得する(ステップS304)。具体的には、教師データ記憶部4730に記憶された教師データであって注目部分列を含む教師データを抽出する。このとき抽出されたデータ数をn1とする。抽出された教師データの対応部分の区切フラグと、区切パターンの区切フラグとを比較し、同一の区切れ方をしている教師データを抽出する。このとき抽出されたデータ数をn2とする。確率係数pは、n1とn2の比で求められる。
すなわち、p=n2/n1である。
なお、pを求める方法はこれに限らず、pの値が、n2が大きければ大きいほど大きくなり、n1が大きければ大きいほど小さくなる任意の式(例えばp=n2^2/n1^2)で求めることが出来る。
【0066】
一方、注目部分列のデータ数が閾値より小さいか、トライグラムリストに登録されていない場合(ステップS302;NO)、十分な数の教師データが記憶されていないと判断できるため、n−1グラム(バイグラム)〜モノグラムを用いて確率係数を算出する処理(確率係数算出処理、ここでは確率係数算出処理1)を実行する(ステップS305)。
【0067】
ステップS305で実行される確率係数算出処理1について、図9を参照して説明する。
確率係数算出処理1では、まず(n−1)グラム生成部430が注目文字列(nグラム)の部分列である(n−1)グラムを二つ(ここでは図5(a)の前バイグラムと後バイグラム)を生成する。
【0068】
そして、判別部420が、二つの前バイグラムと後バイグラムとの両方について、確率係数が取得可能であるか、確率係数取得処理(図8)のステップS302と同様にnグラムリスト記憶部4710に記憶されたバイグラムリストを比較して判別する。具体的には、対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数とを比較する(ステップS402)。ここで、nグラム用の閾値はそれぞれ任意に設定可能であるが、好ましくはnが大きいほど閾値が大きい。nグラムから定義できる区切パターンの数は2^n個であり、nが大きくなるにつれてその数は大きくなる。大きな数の区切パターンのそれぞれの確率係数を取得するために十分な教師データの数は、それだけ大きくなるからである。
【0069】
全てのバイグラムのデータ数が閾値以上である場合(ステップS402;YES)は、その(n−1)グラム(バイグラム)全てについて確率係数を取得できると判断できるので、バイグラムを用いて確率係数を算出する(図5(a))ためにステップS406に移行する。
【0070】
何れかのバイグラムのデータ数が閾値より小さい場合(ステップS402;NO)は、何れかのバイグラムについて確率係数を取得できないと判断できるので、モノグラムを用いて確率係数を算出する(図5(b))。
即ち、現在のn−1が1でないか判別し(ステップS403)、1で無い場合は(ステップS403;NO)、nを1減算して2とし(ステップS404)、ステップS401にもどって(n−1)グラム(ここではモノグラム)を生成する。
【0071】
一方、n−1が1である場合(ステップS403;YES)、さらにnを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成し、その確率係数をデフォルト値(ここでは0.5)とする(ステップS405)。
【0072】
そして、ステップS401〜ステップS405で全ての確率係数を取得できる(n−1)の値を決定すると、次にその(n−1)グラムの全てについて、メニュー解析部30から伝達された区切パターンと対応する語間で共通する区切フラグをもつ区切パターンを生成する(ステップS406)。そして、生成した区切パターンについて、確率係数取得処理(図8)のステップS304と同様に確率係数を取得する(ステップS407)。
【0073】
そして、注目部分列(トライグラム)の区切パターン毎に確率係数を算出する処理(区切パターン毎算出処理1)を実行して(ステップS408)、確率係数算出処理1は終了する。
【0074】
ステップS408で実行される区切パターン毎算出処理1について、図10を参照して説明する。区切パターン毎算出処理1では、まず注目部分列(注目トライグラム)から生成できる全ての区切パターンのうち、メニュー解析部30から要求された確率係数を取得すべき区切パターンを生成する(ステップS501)。
【0075】
そして、kをカウンタ変数として、生成した区切パターンのk番目の区切パターンに注目する(ステップS502)。図5の例では、「0の1赤ワイン0煮1」が注目区切パターンである。
【0076】
次に、ステップS406で生成された注目区切パターンに対応する(n−1)グラムの区切パターン(対応区切パターン、対応する語間の区切フラグが同一)について、ステップS407で取得した確率係数を注目区切パターンの確率係数に加算する(ステップS503)。
【0077】
次に、ステップS501で生成された全区切パターンを処理したか(全区切パターンの確率係数を算出して加算したか)判別する(ステップS504)。
未処理の区切パターンがある場合(ステップS504;NO)、kをインクリメントし(ステップS505)、次の区切パターンについてステップS502からの処理を繰り返す。
【0078】
一方、全ての区切パターンについて処理を終えている場合(ステップS504;YES)、これまでの処理で(n−1)グラムの確率係数を加算した注目区切パターンの確率係数を加算した数(現時点のn)で割ってその値を加算平均値とし、区切パターン毎算出処理1を終了する。
【0079】
図8にもどって、ステップS304又はステップS305で確率係数を取得すると、出力部460が取得した確率係数をメニュー解析部30に出力して(ステップS306)、確率係数取得処理は終了する。
【0080】
図7にもどって、確率係数取得処理(ステップS203)が終わると、先頭の区切フラグが1であるすべての区切パターンのうち、確率係数がもっとも高いパターン(最尤パターン)を選択する(ステップS204)。
【0081】
次に、未処理のnグラムがあるか否かを判別する(ステップS205)。i番目のnグラムが、解析対象となる単語列の最後のnグラムでなかった場合、未処理のnグラムがあると判別され(ステップS205;YES)、iがインクリメントされる(ステップS206)。
【0082】
そして、ステップS202にもどって、次のループが開始される。2回目以降のループのステップS203では、i番目のnグラムの16種の区切パターンのうち、最後以外の区切フラグが前回のループのステップS204で選択されたパターンと共通である2つの区切パターンについて確率係数を求めるコマンドを送信する。
即ち、前回のループまでで選択されたパターンと共通の区切フラグを持つ2つのうち、i番目のnグラムの最後の単語の後ろで区切れるか否かが、2回目以降のループのステップS202からステップS204で決定される。
【0083】
一方、i番目のnグラムが、解析対象となる単語列の最後のnグラムであった場合、未処理のnグラムは無いと判別される(ステップS205;NO)。そして、これまでのループのステップS204で選択された区切パターンにおける区切フラグが1の部位で単語列を分割し(ステップS207)、メニュー分割処理は終了する。
【0084】
図6にもどって、メニュー分割処理が終わると、翻訳部50が分割された単語列に含まれる単語それぞれを、翻訳辞書を用いて翻訳する(ステップS105)。
【0085】
そして、表示部60が翻訳結果を表示し(ステップS106)、メニュー表示処理は終了する。
【0086】
以上説明したように、本実施形態に係る確率係数出力装置40によれば、注目するnグラムを含む教師データが十分に得られない場合、あるいは無い場合であっても、そのnグラムの部分列から区切り方に係るデータを取得して、区切パターンの確率係数を求めることが出来る。
即ち、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列(メニュー)も区切れるとの仮定の下、メニューのnグラムの区切パターンでメニューが区切れる確からしさを、(n−1)グラム〜モノグラムの教師データから推測して求めることができる。
そのため、nグラムそのものを含む教師データのみから区切パターンの確率係数を取得してメニューの区切位置を推定するよりも必要な教師データの数が少なくてすむ。
【0087】
また、本実施形態ではnグラムの区切パターンの確率係数を、区切フラグが一致するn−1グラム〜モノグラムの区切パターンの確率係数に基づいて算出する。そのため、単語の共通性のみを用いて算出に使用する係数を抽出する場合に比べて、より算出結果の精度が高い。
【0088】
さらに、nグラムの部分列である(n−1)グラム〜モノグラム(jグラム)のすべてについて信頼できる確率係数を取得できると判別できるjの値を定め、単語数の区切パターンから確率係数を算出する。そのため、確率係数を算出するにあたって、前のjグラムの情報量と後ろのjグラムの情報量に偏りが無い。そのため、どちらかのjグラムの確率係数がより強く算出結果に影響を与える、といった偏り無くnグラムの確率係数を算出することが出来る。
【0089】
また、本実施形態に係る確率係数出力装置40によれば、教師データが所定のカテゴリの文字列(ここではメニュー)から生成されているため、広範なカテゴリ(例えば日本語全体)の教師データを用いて区切パターンの確率係数を求めた場合よりも、カテゴリに合致した確率係数を求めることが出来る。
そのため、確率係数出力装置40を含むメニュー表示装置1を用いてメニューを分割すると、メニューを分割する精度が高い。
【0090】
なお、上記説明ではnグラムの確率係数を抽出した部分列(jグラム)の対応パターンの確率係数を加算平均して求めるとしたが、nグラムの確率係数を求める方法はこれに限らない。
nグラムの確率係数は、jグラムの対応パターンの少なくとも一つが大きくなるにつれて、nグラムの確率係数も大きくなるような任意の計算式で代替可能である。例えば、対応パターンの確率係数のうち、最も前に位置する対応パターンの確率係数の影響が大きくなるように重み付けして加算する式、各対応パターンの確率係数を累乗平均する式、等に置換することができる。
また、nグラムの確率係数は所定の最大値(たとえば0.8)をもち、算出値が最大値以上であれば最大値を算出結果としてもよい。
さらに、対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部470に記憶し、算出式によらずこのテーブルを参照してnグラムの確率係数を求めても良い。
【0091】
(実施形態2)
次に、本願発明の実施形態2に係るメニュー表示装置1及び確率係数出力装置40について説明する。
【0092】
本実施形態のメニュー表示装置1及び確率係数出力装置40は、実施形態1に係るメニュー表示装置1及び確率係数出力装置40と同様の構成を持つ(図1、図3)。
【0093】
本実施形態の確率係数出力装置40は、実施形態1に係る確率係数出力装置40と確率係数の算出方法が異なる。
ここで、本実施形態の確率係数出力装置40の確率係数の算出方法について、図11を参照して説明する。
【0094】
本実施形態の確率係数出力装置40が、トライグラムの区切パターンを算出するに当たって、前バイグラムと後バイグラムの確率係数を用いて算出する方法を、図11(a)を参照して説明する。
【0095】
このとき、トライグラムの区切パターン(ここでは「0の1赤ワイン0煮1」)の確率係数を算出するにあたって、まず共通する区切フラグを持つ前バイグラム(「0の1赤ワイン0」、確率係数p1=0.31)を対応パターンとして抽出する。そして、後バイグラムにおける対応パターンとして、前バイグラムにおける対応パターンと共通する区切フラグをもつ二つのバイグラムである「1赤ワイン0煮1」(確率係数p2=0.45)と「1赤ワイン0煮0」(確率係数p3=0.11)とを抽出する。
【0096】
そして、前バイグラムの対応パターンの確率係数を、後バイグラムにおける対応パターンの確率係数に基づいて振り分けて、トライグラムの確率係数を算出する。即ち、トライグラムの区切パターンの確率係数を、「0の1赤ワイン0」の次に「1赤ワイン0煮1」が来る場合の確率paとして、p1・(p2/(p2+p3))として算出する。同様に、「0の1赤ワイン0」の次に「1赤ワイン0煮0」が来る確立pbはp1・(p3/(p2+p3))として算出できる。
なお、この算出式は、前(n−1)グラムにおける対応パターンの確率係数p1を後(n−1)グラムにおける対応パターンの確率係数で振り分ける任意の式(例えばpa=p1^2・(p2^2/(p2+p3)^2)に置き換えることができる。
なお、ここでは前の(n−1)グラムにおける対応パターンの確率係数p1を後ろの(n−1)グラムにおける対応パターンの確率係数で振り分けたが、処理の順序は前後逆でも良い。以下同じである。
また、前後それぞれの(n−1)グラムの対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部470に記憶し、算出式によらずこのテーブルを参照してnグラムの確率係数を求めても良い。
【0097】
同様に、トライグラムの区切パターンを算出するに当たって、前バイグラムと後モノグラムの確率係数を用いて算出する場合は、前のバイグラムの対応パターンの確率係数を、後ろのモノグラムにおける対応パターンの確率係数に基づいて振り分ける(図11(b))。
【0098】
また、トライグラムの区切パターンを、モノグラムの確率係数のみを用いて算出する方法を図11(c)を参照して説明する。このとき、まず前モノグラムにおける対応パターンの確率係数p7を後モノグラムにおける対応パターンの確率係数p8とp9に振り分けて、前バイグラムの確率係数p10を求める(c1)。そして、(c1)で求めた前バイグラムにおける確率係数p10を用いて、図11(b)と同様にトライグラムの確率係数を算出する。
【0099】
本実施形態の確率係数出力装置40が実行する図11に示す算出処理を、フローチャート(図12〜図13)を用いて具体的に説明する。
【0100】
本実施形態のメニュー表示装置1及び確率係数出力装置40は、ユーザがメニューを撮影するための操作を実行すると、実施形態1と同様に、図6のメニュー表示処理と、図7のメニュー分割処理と、図8の確率係数取得処理を実行する。
本実施形態の確率係数出力装置40は、確率係数取得処理(図8)のステップS305で、確率係数算出処理2(図12)を実行する。
【0101】
確率係数算出処理2では、まず(n−1)グラム生成部430が注目文字列(nグラム)の部分列である(n−1)グラムを二つ(ここでは図11(a)の前バイグラムと後バイグラム)を生成して、何れかのバイグラム(ここでは前バイグラム)に注目する(ステップS601)。
【0102】
次に、判別部420が、注目バイグラム(前バイグラム)について、確率係数が取得可能であるか、確率係数取得処理(図8)のステップS302と同様にnグラムリスト記憶部4710に記憶されたバイグラムリストの対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数と、を比較して判別する(ステップS602)。
【0103】
前バイグラムのデータ数がバイグラムの閾値以上である場合(ステップS602;YES)は、前バイグラムについて確率係数を取得できると判断できるので、注目バイグラム(前バイグラム)について対応パターンを特定し、その確率係数を取得する(ステップS603)。
【0104】
前バイグラムのデータ数が閾値より小さい場合(ステップS602;NO)は、前バイグラムについて確率係数を取得できないと判断できるので、図11(c)の(c1)のようにモノグラムを用いて前バイグラムの確率係数を算出する。即ち、現在のn−1が1でないか判別し(ステップS604)、1で無い場合は(ステップS603;NO)、nを1減算して2とし(ステップS605)、減算したnで前バイグラムを注目部分列として確率係数算出処理2を再帰的に実行して、区切パターンを生成し、その確率係数を取得する(ステップS606)。
【0105】
一方、n−1が1である場合(ステップS604;YES)、さらにnを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成しその確率係数をデフォルト値(ここでは0.5)とする(ステップS607)。
【0106】
次に、前後両方の(n−1)グラムについて処理が終了したか判別する(ステップS608)。前後どちらかの(n−1)グラムについて、確率係数を取得していない場合は(ステップS608;NO)、未処理の(n−1)グラムを注目(n−1)グラムとして(ステップS609)、ステップS602から処理を繰り返す。
【0107】
一方、前後両方の(n−1)グラムについて確率係数を取得し終えたと判別すると(ステップS608;YES)、次に区切パターン毎に確率係数を算出する処理(区切パターン毎算出処理2)を実行して(ステップS609)、確率係数算出処理2は終了する。
【0108】
ステップS610で実行される区切パターン毎算出処理2について、図13を参照して説明する。区切パターン毎算出処理2では、まず注目部分列(注目トライグラム)から生成できる全ての区切パターンのうち、メニュー解析部30から要求された確率係数を取得すべき区切パターンを生成する(ステップS701)。
【0109】
そして、kをカウンタ変数として、生成した区切パターンのk番目の区切パターンに注目する(ステップS702)。図11(a)及び(b)の例では、「0の1赤ワイン0煮1」が注目区切パターンである。図11(c)の(c1)の例では、「0の1赤ワイン0」が注目区切パターンである。
【0110】
次に、図11に示した注目区切パターンに対応する(n−1)グラムの区切パターン(対応パターン)を、確率係数算出処理2(図12)のステップS603、ステップS606又はステップS607で生成された(n−1)グラムの区切パターンの中から抽出する(ステップS703)。図11(a)又は(c)の(c2)の場合は、「0の1赤ワイン0」と「1赤ワイン0煮1」とが対応パターンである。また、図11(b)の場合は、「0の1赤ワイン0」と「0煮1」とが対応パターンである。また、図11(c)の(c1)の例では、「0の1」と「赤ワイン0」とが対応区切パターンである。
【0111】
そして、抽出した対応パターンの確率係数から、図11に示した算出方法で注目区切パターンの確率係数を算出する(ステップS704)。
【0112】
次に、ステップS701で生成された全区切パターンについて、確率係数を算出したか判別する(ステップS705)。未処理の区切パターンがある場合(ステップS705;NO)、kをインクリメントし(ステップS706)、次の区切パターンについてステップS702からの処理を繰り返す。
【0113】
一方、全ての区切パターンについて処理を終えている場合(ステップS705;YES)、区切パターン毎算出処理2を終了する。
【0114】
以上説明したように、本実施形態に係る確率係数出力装置40によれば、注目するnグラムを含む教師データが十分に得られない場合、前のn−1グラム(注目n−1グラム)について得られる確率変数を、後ろのn−1グラムに振り分けてnグラムにおける区切パターンの確率変数を算出する(あるいはその逆)。
即ち、(n−1)グラム列で教師データを分割して、ある区切パターンの区切方を、その区切パターンの区切方で区切れるとした場合にあり得る次の区切パターンの確率に基づいて分配してnグラムの確率係数を算出するため、より多くの情報に基づいて確率係数を算出することができる。そのため、算出精度が高い。
【0115】
また、(n−1)グラムの一部について確率係数が得られない場合でも、得られる限りの(n−1)グラムの確率係数を利用してnグラムの確率係数を算出できるため、一律に(n−2)グラム〜モノグラムの確率係数を用いる場合と比べて精度の劣化が少ない。
【0116】
(変形例)
以上、本願発明の実施形態について説明したが、本願の実施形態はこれに限られず、さまざまな変形が可能である。
例えば、上記実施形態1乃至2では、nグラムのデータ数が所定の閾値以下だった場合に、(n−1)グラム〜モノグラムの確率係数から算出したが、本願発明の実施形態はこれに限らない。例えば、このような場合に(n−1)グラム〜モノグラムの確率係数から算出し、さらに所定の閾値以下のデータ数からnグラムの確率係数を求め、算出した値と加算した数値を加算平均として求める値としても良い。
【0117】
また、上記実施形態1乃至2では、教師データは教師データ記憶部4730に記憶されていたが、教師データは確率係数出力装置の内部ではなく、外部装置に記憶されているとしても良い。
このとき、確率係数出力装置は、通信部405を用いて外部装置にアクセスして教師データを取得する。
【0118】
また、区切パターンはすべての語間について一意に区切フラグを定義し、区切フラグを比較するにあたって完全に一致する場合のみを対応する区切パターンとした。しかし、区切パターンにおいて一部の区切フラグを未知数として定義し、区切フラグの比較にあたっては未知の部分を考慮しない、とする構成も可能である。
【0119】
また、上記実施形態1乃至2では、nグラムの区切パターンの確率係数を求めるにあたって、タグ付の文字列である教師データにおける区切パターンの出現確率を逐一求めていた。しかし、確率係数出力装置又は外部装置が区切パターンの確率係数を登録したパターン確率係数リストを記憶しており、このパターン確率係数リストを参照して確率係数を取得する構成も可能である。このようなパターン確率係数リストの例を、図14を参照して説明する。図14は、トライグラムと、区切フラグと、に対応する確率係数を登録したトライグラムパターン確率係数リストの例である。例えば、パターン「0010」の列、「豚−バラ肉−の」の行、に数値0.02が登録されていることは、区切パターン「0豚0バラ肉1の0」の確率係数が0.02であることを示す。
【0120】
また、上記実施形態1乃至2では、解析対象となる単語列はメニューであったが、本発明はメニュー以外の任意のカテゴリの単語列について応用可能である。本発明の解析対象となる単語列は、現れる単語が限られていること、単語と単語との区切り方のルールが限定されていること、を特徴とするカテゴリの単語列であることが好ましい。このようなカテゴリの単語列の例として、メニューの他に住所、薬品の効能書き・説明書、等があげられる。
【0121】
また、上記実施形態1乃至2の確率係数出力装置は、メニュー解析部30からn個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を伝達され、確率係数を必要とする区切パターンについて確率係数を算出して出力したが、本発明に係る確率係数出力装置が実行する処理はこれに限らない。例えば、確率係数出力装置は外部装置からnグラムのみ伝達され、そのnグラムについて定義できる全ての区切パターンを生成し、生成した全ての区切パターンの確率係数を算出して出力するとしても良い。
【0122】
また、情報処理部401、データ記憶部402、プログラム記憶部403、等から構成される確率係数出力装置のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで情報処理装置を構成してもよい。
【0123】
また、確率係数出力装置の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0124】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0125】
また、実行する処理の一部を、確率係数出力装置とは独立したコンピュータを用いて実現しても良い。。
【0126】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0127】
(付記1)
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする情報処理装置。
【0128】
(付記2)
前記教師単語列は、前記注目単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列であり、
前記抽出部が抽出した部分単語列を含む単語列を、前記区切確率係数を取得するための教師単語列として十分な数だけ取得できるか否か判別する判別部をさらに備え、
前記抽出部は、前記判別部が抽出した部分単語列を含む単語列が前記区切確率係数を取得するに十分な数だけ取得できないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする付記1に記載の情報処理装置。
【0129】
(付記3)
前記確率係数取得部は、前記部分単語列に対して定義できる区切パターンのうち、前記確率係数獲得部が獲得する注目単語列の区切パターンと対応する語間については同じ区切り方である区切パターンを取得する、
ことを特徴とする付記1又は2に記載の情報処理装置。
【0130】
(付記4)
前記確率係数獲得部が求める注目単語列の区切パターンの区切確率係数は、前記確率係数取得部が取得した区切確率係数の少なくとも一つが大きくなるにつれて大きくなる、
ことを特徴とする付記1乃至3の何れか一つに記載の情報処理装置。
【0131】
(付記5)
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする付記1乃至4の何れか一つに記載の情報処理装置。
【0132】
(付記6)
前記抽出部は、すくなくとも注目単語列の先頭の単語を含む部分単語列である前部分単語列と最後尾の単語を含む部分単語列である後部分単語列とを抽出し、
前記確率係数獲得部は、前記前部分単語列又は前記後部分単語列のいずれか一方である注目部分単語列から取得された前記区切パターンの区切確率係数を、当該注目部分単語列の区切パターンと対応する語間については同じ区切り方に対応する、前記前部分単語列又は後部分単語列のうち注目単語列でない方の部分単語列から取得された区切パターンの区切確率係数に基づいて割り振って、前記注目単語列の区切パターンの区切確率係数を求める、
ことを特徴とする付記1乃至3の何れか一つに記載の情報処理装置。
【0133】
(付記7)
前記注目単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする付記1乃至6の何れか1つに記載の情報処理装置。
【0134】
(付記8)
コンピュータに、
注目単語列を取得する処理、
前記取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する処理、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出した部分単語列それぞれについて取得する処理、
前記取得した区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する処理、
前記注目単語列の区切パターンの区切確率係数を、前記取得した区切確率係数に基づいて求める処理、
を実行させることを特徴とするプログラム。
【符号の説明】
【0135】
1…メニュー表示装置、10…入力部、20…OCR、30…メニュー解析部、40…確率係数出力装置、50…翻訳部、60…表示部、70…情報処理部、401…情報処理部、402…データ記憶部、403…プログラム記憶部、405…入出力部、405…通信部、406…内部バス、407…制御プログラム、410…単語列取得部、420…判別部、430…(n−1)グラム生成部、440…確率係数取得部、450…確率係数算出部、460…出力部、470…記憶部、4710…nグラムリスト記憶部、4720…設定記憶部、4730…教師データ記憶部
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
複数の単語を含む単語列(原文)を他の言語に翻訳する翻訳装置が知られている。このような翻訳装置は、原文を翻訳するにあたって、原文がどの単語と単語との間(語間)で区切れるか推測して翻訳処理を実行する。
【0003】
文書や単語列の区切り方を推測する方法に関連して、特許文献1は予め文書が属する言語の文法規則をプログラミングした構文解析器を用いて文書の区切れ方を推測する技術を提案している。
また、特許文献2は、分かち書きされていない文字列を単語毎に分割する技術を提案している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平6−309310号公報
【特許文献2】特開平10−254874号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、原文がどの単語と単語との間で区切れるかを推測するために、原文が属する言語の文法規則をプログラミングした構文解析器を用いる。そのため、原文の属する言語毎に構文解析器を多くの開発費用・日数を費やして作成しなくてはならなかった。また、特許文献2は、分かち書きされていない文字列を単語毎に分割する技術を開示しているが、文字列がどの単語と単語との間で区切れているか判別する方法を開示していない。
【0006】
構文解析器を用いずに文字列がどの単語と単語との間で区切れるかを推測するための技術として、原文と同じカテゴリの単語列がどのように区切られているかを示す教師データから単語と単語との間で区切れる確からしさを求める方法が考えられる。
【0007】
しかし、原文に含まれるn個の単語(nグラム)について単語がどのように区切れるかを、教師データを用いて推測するためには、原文に含まれる全てのnグラムについて、十分な数の教師データが必要となる。そのため膨大な量の教師データを収集して処理するための手間・計算量が膨大になってしまうという問題点があった。
【0008】
本発明は上記事情に鑑みてなされたもので、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データの量が少ない情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本願発明に係る情報処理装置は、
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、解析対象となる単語列において、ある単語と単語との間で単語列が区切れる確からしさを求めるために必要な教師データ量が少ない情報処理装置及びプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態1に係るメニュー表示装置の構成を示すブロック図である。
【図2】(a)は実施形態1に係る文字列と教師データの関係を、(b)は単語列と区切フラグとトライグラムと区切パターンとの関係を示す図である。
【図3】実施形態1に係る確率係数出力装置の構成を示すブロック図であり、(a)は物理構成を、(b)は機能構成を、それぞれ示す。
【図4】実施形態1に係るnグラムリストの例を示す図であり、(a)はトライグラムリストを、(b)はバイグラムリストを、(c)はモノグラムリストを、それぞれ示す。
【図5】実施形態1に係る確率係数算出処理の概要を示す図であり、(a)はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(b)はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図6】実施形態1に係るメニュー表示処理を示すフローチャートである。
【図7】実施形態1に係るメニュー分割処理を示すフローチャートである。
【図8】実施形態1に係る確率係数取得処理を示すフローチャートである。
【図9】実施形態1に係る確率係数算出処理を示すフローチャートである。
【図10】実施形態1に係る区切パターン毎算出処理を示すフローチャートである。
【図11】本発明の実施形態2に係る確率係数算出処理の概要を示す図であり、(a)はバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(b)はモノグラムとバイグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、(c)はモノグラムの区切確率係数からトライグラムの区切確率係数を算出する処理の例を、それぞれ示す。
【図12】実施形態2に係る確率係数算出処理を示すフローチャートである。
【図13】実施形態2に係る区切パターン毎算出処理を示すフローチャートである。
【図14】本発明のその他の実施形態に係るnグラム(トライグラム)パターン確率係数リストを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態に係るメニュー表示装置及び確率係数出力装置(情報処理装置)を、図を参照しながら説明する。なお、図中同一又は相当する部分には同一符号を付す。
【0013】
(実施形態1)
実施形態1に係る確率係数出力装置40は、図1に示すメニュー表示装置1に搭載されている。メニュー表示装置1は、i)解析対象となる特定のカテゴリに属する文字列(メニュー、献立等)を記載した紙等を撮影する撮影機能、ii)撮影した画像から解析対象となる文字列を認識して抽出する機能、iii)抽出した文字列を解析して単語列に変換する機能、iv)文字列の所定部分(単語間)でメニューが区切れる確率を示す係数(区切確率係数)を出力する機能、v)区切確率係数に基づいて単語列を区切る機能、vi)区切った単語列をそれぞれ翻訳する機能、vii)翻訳結果を表示する機能、等を備える。確率係数出力装置40は、これらの機能のうち、文字列の所定部分(単語間)でメニューが区切れる確率を示す係数(確率係数)を出力する機能を担当する。
【0014】
メニュー表示装置1は入力部10と、OCR(Optical Character Reader)20とメニュー解析部30と翻訳部50とを含む情報処理部70と、確率係数出力装置40と、表示部60と、を備える。
【0015】
入力部10は、カメラと画像処理部とから構成され、このような物理構成によりメニューを撮影した画像を取得する。入力部10は、取得した画像をOCR20に伝達する。
【0016】
情報処理部70は、画像処理用DSP(Digital Signal Processor)、作業用領域として用いられるRAM(Random Access Memory)、文字認識プログラム及び言語処理プログラムを記憶するEPROM(Erasable Programmable Read Only Memory)等から構成される。情報処理部70は、このような物理構成により、OCR20と、メニュー解析部30と、翻訳部50と、として機能する。
【0017】
OCR20は、入力部10から伝達された画像の文字を認識し、メニューに記された文字列(料理名等)を取得する。OCR20は、取得した文字列をメニュー解析部30に伝達する。
【0018】
メニュー解析部30は、OCR20から伝達された文字列を単語に分割して単語列に変換する。
メニュー解析部30は、単語列に現れるn個の単語からなる部分単語列(nグラム)を抽出する。さらに、nグラムから後述する区切パターンを生成し、そのうち確率係数を取得する必要のある区切パターンを選択する。
【0019】
ここで、本実施形態に係る解析対象となる文字列(メニュー)と、教師データと、nグラムと、区切パターンと、について、図2を参照して説明する。
本実施形態で解析対象となる文字列は、図2(a)の上に示されるようなメニューを示す文字列である。図2に示すメニュー「豚バラ肉の赤ワイン煮温野菜添え」にタグを付し、単語毎・固まり毎に分割したデータが教師データ(図2(a)下)である。図2(a)の例では、教師データは「<m><c><s><w>豚</w>バラ肉</w><w>の</w></s><s><w>赤ワイン</w><w>煮</w></s><s><w></c>温野菜</w><w>添え</w></s></m>」である。
【0020】
この教師データでは、メニューが単語を示すタグ<w></w>によって、「豚」、「バラ肉」、…、「添え」、の7つの単語に分割されている。さらに、材料名、料理方法、等等の単位に分割するタグ<s></s>により、「豚バラ肉の」、「赤ワイン煮」、「温野菜添え」、という三つに分割されている。また、材料名と料理方法とその他の修飾語(例えば「プロバンス風」、「特選」、等)を含む一つの料理の単位に分割するタグ<c><c/>により、「豚バラ肉の赤ワイン煮」と「温野菜添え」との二つに分割されている。タグ<m></m>は文字列を一つのメニュー(献立)ごとに区切るタグである。ここで、教師データは文字列をタグ<w>、<s>、<c>、<m>で区切っているが、教師データの形式はこれに限られない。教師データは所定のカテゴリに含まれる文字列を、単語単位に区切るユニークなマーク(半角スペースでも可)と、さらに単語以外の少なくとも一つの区切り方で区切るユニークなマークと、を含む任意の文字列であってよい。教師データは、予め特定の言語(ここでは日本語)の特定のカテゴリ(ここでは献立や料理名)に属する文字列を収集して、人手でタグ付けされたデータである。なお、教師データをタグ付けする方法は人手に限らず、構文解析器等の既知の任意のタグ付け方法であって良い。
【0021】
教師データと、nグラムと、区切パターンの関係を図2(b)に示す。教師データの単語列から、最初の単語からn個目の単語、2つの目の単語からn+1個目の単語、…のようにn個の単語を含む単語列の集合を抽出したものがnグラム列である。nグラム列を構成するそれぞれのn個の単語を含む単語列をnグラムと呼ぶ。さらに、n=3のnグラムをトライグラム、n=2のnグラムをバイグラム、n=1のnグラムをモノグラム、と呼ぶ。
【0022】
「豚バラ肉の赤ワイン煮温野菜添え」から、トライグラム「豚バラ肉の」、「バラ肉の赤ワイン」、…、「煮温野菜添え」、から構成されるトライグラム列を得ることが出来る(図2(b))。メニューの単語列は図2(b)の上部に示すように、タグ構造によってツリー状に区切られる。そして、システムの設計上定められたツリーの所定の高さ(教師データの所定のタグに対応)で、単語と単語との間のどこで区切れるか、その区切り方を定めることが出来る。
【0023】
図2(b)上のツリーの例では、タグ<m>又は</m>がある部位、タグ<s>及び</s>がある部位、タグ<c>及び</c>がある部位、のそれぞれ(区切ライン)でメニューが区切れている。単語列の語間のそれぞれで、区切れている場合に1、区切れていない場合を0で示した情報を区切フラグと呼ぶ。
なお、どのタグがある部分で区切れていると判断するかの判断基準は、自由に設定可能である。例えば、<s></s>タグがある部分のみで区切れていると判断して区切フラグを配置する設定等の任意の設定が可能である。
【0024】
トライグラム(nグラム)について、そのnグラムの語間のそれぞれで教師データが区切れているか否かを、単語と区切フラグを並べて定義したパターンを区切パターンという。
例えば、トライグラムを構成する3つの単語(単語A、単語B、単語C)について、単語Aの前、単語Cの後ろを含むいずれの語間でも教師データが区切れて居ない場合に対応する区切パターンは「0A0B0C0」、全ての語間で区切れている場合に対応する区切パターンは「1A1B1C1」、である。
【0025】
図2(b)の例では、トライグラム「豚バラ肉の」について、構成する単語「豚」の前、「豚」と「バラ肉」の間、「バラ肉」と「の」の間、「の」の後、の4つの語間で、それぞれメニューが区切れる場合を1、区切れない場合を0として区切パターンが2^4=16個定義できる。教師データに対応する区切パターンは「1豚0バラ肉0の1」である。
【0026】
以下、その言語(例えば日本語)に属するメニュー・料理名から教師データを十分量作成する。そして、あるnグラムを含む教師データであって、ある区切パターンで教師データが区切れている確率を示す係数を、その区切パターンの確率係数(区切確率係数)と呼ぶ。また、あるnグラムに対応する区切パターンの確率係数を、そのnグラムの確率係数と呼ぶ。
【0027】
メニュー解析部30は、確率係数出力装置40から取得した確率係数を用いて、単語列がどのように区切れているか推定し、単語列を推定結果と対応づけて翻訳部50に出力する。メニュー解析部30が実行する具体的な処理については後述する。
【0028】
メニュー解析部30は、n個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を確率係数出力装置40に伝達し、確率係数出力装置40から区切パターンの確率係数を取得する。
【0029】
確率係数出力装置40は、メニュー解析部30からn個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報とを伝達されると、教師データから取得したその区切パターンでメニューが区切れている確からしさを示す確率係数をメニュー解析部30に伝達する。
確率係数出力装置40が実行する具体的な処理とその構成については後述する。
【0030】
翻訳部50は、メニュー解析部30から伝達された単語列を、その単語列の分割パターンが示す分割方法で分割してユーザが所望する言語に翻訳する。
翻訳部50が翻訳する方法は既知の任意の翻訳方法であってよいが、ここでは分割された単語列に含まれる単語を、辞書データによって逐次翻訳することとする。
翻訳部50は、翻訳結果を表示部60に伝達する。
【0031】
表示部60は、液晶ディスプレイ等から構成され、翻訳部50から伝達された情報を表示する。
【0032】
次に、確率係数出力装置40の構成を、図3を参照して説明する。
確率係数出力装置40は、物理的には、図3(a)に示すように情報処理部401と、データ記憶部402と、プログラム記憶部403と、入出力部404と、通信部405と、内部バス406と、から構成される。
【0033】
情報処理部401は、CPU(Central Processing Unit)、DSP(Digital Signal Processing)、等から構成され、プログラム記憶部403に記憶されている制御プログラム407に従って、後述する確率係数出力装置40が実行する処理を実行する。
【0034】
データ記憶部402は、RAM(Random−Access Memory)等から構成され、情報処理部401の作業領域として用いられる。
【0035】
プログラム記憶部403は、フラッシュメモリ、ハードディスク、等の不揮発性メモリから構成され、情報処理部401の動作を制御する制御プログラム407と、下記に示す処理を実行するためのデータを記憶する。
【0036】
通信部405は、LAN(Local Area Network)デバイス、モデム等から構成され、LAN回線や通信回線を介して接続された外部機器に情報処理部401の処理結果を送信する。また、外部機器から情報を受信して、情報処理部401に伝達する。
なお、情報処理部401と、データ記憶部402と、プログラム記憶部403と、入出力部404と、は内部バス406によってそれぞれ接続され、情報の送信が可能である。
【0037】
入出力部404は、USB(Universal Serial Bus)やシリアルポートによって確率係数出力装置40に接続された外部機器との情報の入出力を制御するI/O部である。
【0038】
確率係数出力装置40は、上記物理構成により、図3(b)に示すように、単語列取得部410、判別部420、(n−1)グラム生成部430、確率係数取得部440、確率係数算出部450、出力部460、記憶部470、として機能する。
【0039】
単語列取得部410は、メニュー解析部30からメニューに含まれるnグラム(注目単語列)と、nグラムから生成された区切パターン(確率係数を取得する必要のある区切パターン)を示す情報を取得する。単語列取得部410は、取得したnグラムと情報とを判別部420に伝達する。
【0040】
判別部420は、単語列取得部410から伝達されたnグラムの区切パターンについて、その区切れ方でメニューが区切れる確からしさを示す確率係数が取得できるか否か判別する。判別部420は、判別処理にあたって、記憶部470のnグラムリスト記憶部4710に記憶されたnグラムリストを参照する。nグラムリスト及び判別部420が実行する判別処理の具体的な内容については後述する。
本実施形態では、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列(メニュー)も区切れるとの仮定の下、メニューのnグラムの区切パターンでメニューが区切れる確からしさを、(n−1)グラム〜モノグラムの教師データから推測する。
【0041】
判別部420は、nグラムの確率係数が取得できると判別すると、確率係数取得部440にnグラムを伝達する。
一方、nグラムの確率係数が取得できないと判別すると、(n−1)グラム生成部430にnグラムを伝達する。
【0042】
(n−1)グラム生成部430は、判別部420からnグラムを伝達されると、nグラムを構成する最初の単語からn−1個目の単語から構成される(n−1)グラム(前(n−1)グラム)と、構成する2つ目の単語からn個目の単語から構成されるn−1グラム(後(n−1)グラム)と、を生成する。
(n−1)グラム生成部430は、生成した2つの(n−1)グラムを、判別部420に伝達する。
【0043】
判別部420は、(n−1)グラム生成部430から2つの(n−1)グラムを伝達されると、2つの(n−1)グラムのそれぞれについて確率係数が取得できるか否か判別する。2つの(n−1)グラムのどちらかについて確率係数が取得できない場合は、(n−1)グラム生成部430に3つの(n−2)グラムを生成させ、以下モノグラムになるまで同様に判別処理を繰り返す。判別部420と(n−1)グラム生成部430が実行する処理の具体的な内容については後述する。
判別部420は、(n−1)グラム生成部430からモノグラムを伝達されると、判別処理を実行せずに確率係数取得部440にそのモノグラムを伝達する。
【0044】
確率係数取得部440は、判別部420から単語列として単語列取得部410が取得したnグラムを伝達されると、区切パターンのうち単語列取得部410が取得した情報が示す区切パターンの確率係数を取得して、出力部460に伝達する。
一方、単語列としてn−1グラム〜モノグラム(ここではjグラムとする)を伝達されると、伝達された全てのjグラムについて、単語列取得部410が取得した情報が示す区切パターンの確率係数を取得するために必要な区切パターンを生成し、それぞれの区切パターンについて確率係数を取得する。
そして、伝達された全てのjグラムと、生成した区切パターンと、その確率係数と、を確率係数算出部450に伝達する。
確率係数取得部440は、確率係数を取得する処理で教師データ記憶部4730に記憶された教師データを参照する。確率係数取得部440がどのように確率係数を取得するか、その具体的な処理内容については後述する。
【0045】
確率係数算出部450は確率係数取得部440から、伝達された全てのjグラムから生成された区切パターンと、その確率係数を伝達されると、伝達された情報からnグラムの区切パターンの確率係数を算出する。確率係数算出部450がどのようにnグラムの区切パターンの確率係数を算出するかは後述する。
確率係数算出部450は、nグラムの区切パターンの確率係数を算出すると、そのうち単語列取得部410が取得した、確率係数が必要な区切パターンとその確率係数を抽出して、出力部460に伝達する。
【0046】
出力部460は、確率係数算出部450から伝達された区切パターンとその確率係数をメニュー解析部30に出力する。
【0047】
記憶部470は、確率係数出力装置40の記憶部470を除く各部から情報を伝達され、伝達された情報を記憶する。また、確率係数出力装置40の記憶部470を除く各部からのコマンドに応答して、記憶する情報を出力する。
【0048】
記憶部470は、nグラムリストを記憶するnグラムリスト記憶部4710、確率係数出力装置40が下記する処理を実行するための設定パラメータを記憶する設定記憶部4720、教師データを記憶する教師データ記憶部4730、を含む。
【0049】
nグラムリストは、教師データ記憶部4730に記憶された教師データに現れる全てのnグラムを登録したリストである。
nグラムリスト記憶部4710が記憶するnグラムリストの例を、図4を参照して説明する。図4の例では、nグラム記憶部4710は、トライグラムリスト(図4(a))、バイグラムリスト(図4(b))、モノグラムリスト(図4(c))、をそれぞれ記憶する。
トライグラムリストは、教師データに現れる全てのトライグラムを、そのトライグラムを含む教師データが幾つあるかを示すデータ数と関連付けて記憶している。バイグラムリスト、モノグラムリストについても同様である。
【0050】
次に、確率係数算出部450が、jグラムの区切パターン及びその確率係数を用いて、nグラムの区切パターンの確率係数を算出する処理について、図5を参照して説明する。
【0051】
図5は、トライグラムリスト(図4(a))に、あるトライグラム(ここでは「の赤ワイン煮」)が登録されていない、あるいは十分な数(所定の閾値以上)が登録されていない場合に、確率係数算出部450はバイグラムやモノグラムの区切パターンの確率係数からトライグラムの区切パターンの確率係数を算出する。
【0052】
トライグラム「の赤ワイン煮」の注目区切パターン「0の1赤ワイン0煮1」を算出する場合の算出方法を、図5(a)を参照して説明する。ここで、トライグラムの、前半のバイグラム(前バイグラム)は「の赤ワイン」、後半のバイグラム(後バイグラム)は「赤ワイン煮」である。そして、注目区切パターンに対応するバイグラムの区切パターン(対応区切パターン)は、対応する語間の区切フラグが共通する「0の1赤ワイン0」と「1赤ワイン0煮1」とである。
【0053】
確率係数算出部450はこの対応するバイグラム(jグラム)の区切パターンとその確率係数を確率係数取得部440から伝達されると、区切フラグを比較して対応区切パターンを抽出する。そして、対応区切パターンの確率係数を加算平均して、注目区切パターンの確率係数とする(図5(a))。
【0054】
同様に、対応するモノグラムの区切パターンとその確率係数を確率係数取得部440から取得すると、前・中央・最後尾の各モノグラムから対応区切パターンを抽出し、各対応区切パターンの確率係数を加算平均して注目区切パターンの確率係数とする(図5(b))。
【0055】
続いて、メニュー表示装置1が実行する処理について、フローチャート(図6〜図10)を参照して説明する。メニュー表示装置1の情報処理部70は、ユーザがメニューを撮影するための操作を実行すると、図6に示すメニュー表示処理を実行する。
【0056】
メニュー表示処理では、まず入力部10を用いてメニューが印刷された画像を取得する(ステップS101)。
そして、取得した画像から、OCR20が文字を認識して文字列を取得する(ステップS102)。
【0057】
OCR20が文字列を取得してメニュー解析部30に伝達すると、まずメニュー解析部30が、文字列を単語単位に分割する分かち書き処理を実行して、文字列を単語列に変換する。(ステップS103)。
ここで、メニュー解析部30は文字列から単語を抽出する任意の既知の方法を用いて上記分かち書き処理を実行してよいが、ここでは特許文献2が例示する方法を用いて分かち書き処理を実行することとする。
なお、メニュー解析部30は、解析対象となるメニューが英語やフランス語等の単語毎にスペースで区切られる言語であった場合は、スペースを認識して上記分かち書き処理を実行する。
【0058】
そして、メニュー解析部30は、メニューが単語列のどの部位で区切れるか推測し、メニューを分割する処理(メニュー分割処理)を実行する(ステップS104)。
【0059】
ステップS104で実行されるメニュー分割処理について、図7を参照して説明する。
メニュー分割処理が開始されると、まずメニュー解析部30は単語列からnグラム列を生成する(ステップS201)。nグラム列に含まれる各nグラムは、単語列の部分列である。
なお、ここでnの値は任意に定められたデフォルト値であるってよいが、ここではn=3とする。
【0060】
そして、カウンタ変数i=1とし、nグラム列の先頭(1番目)のnグラム(トライグラム)を注目部分列(注目トライグラム)とする(ステップS202)。
【0061】
そして、メニュー解析部30が先頭のトライグラム(注目部分列)について、確率係数出力装置40に16種のうち、先頭の区切フラグが1であるすべての区切パターン(8個)について確率係数を求めるコマンドを確率係数出力装置40に送信して、確率係数取得処理が開始される(ステップS203)。
【0062】
ステップS203で実行される確率係数取得処理について、図8を参照して説明する。
ステップS203に至り、メニュー解析部30からnグラムと、確率係数を算出すべき区切パターンについてのコマンドを単語列取得部410が受信すると、確率係数出力装置40は確率係数取得処理を開始する。
確率係数取得処理では、まず判別部420がnグラムリスト記憶部4710に記憶されているトライグラムリストを参照して、注目トライグラムを含む教師データのデータ数を取得する(ステップS301)。
【0063】
そして、注目トライグラムの確率係数を求めるのに十分な数の教師データが存在しているか否か、設定記憶部4720に記憶されたトライグラム用の閾値と注目部分列のデータ数とを比較して判別する。
【0064】
注目部分列のデータ数が閾値以上である場合(ステップS302;YES)、十分な数の教師データが存在していると判断できるため、現在の注目部分列(nグラム)をそのまま用いて区切パターンの確率係数を取得する(ステップS303〜304)。
【0065】
まず、確率係数取得部440がメニュー解析部30から伝達された区切パターンを生成し(ステップS303)、その確率係数を取得する(ステップS304)。具体的には、教師データ記憶部4730に記憶された教師データであって注目部分列を含む教師データを抽出する。このとき抽出されたデータ数をn1とする。抽出された教師データの対応部分の区切フラグと、区切パターンの区切フラグとを比較し、同一の区切れ方をしている教師データを抽出する。このとき抽出されたデータ数をn2とする。確率係数pは、n1とn2の比で求められる。
すなわち、p=n2/n1である。
なお、pを求める方法はこれに限らず、pの値が、n2が大きければ大きいほど大きくなり、n1が大きければ大きいほど小さくなる任意の式(例えばp=n2^2/n1^2)で求めることが出来る。
【0066】
一方、注目部分列のデータ数が閾値より小さいか、トライグラムリストに登録されていない場合(ステップS302;NO)、十分な数の教師データが記憶されていないと判断できるため、n−1グラム(バイグラム)〜モノグラムを用いて確率係数を算出する処理(確率係数算出処理、ここでは確率係数算出処理1)を実行する(ステップS305)。
【0067】
ステップS305で実行される確率係数算出処理1について、図9を参照して説明する。
確率係数算出処理1では、まず(n−1)グラム生成部430が注目文字列(nグラム)の部分列である(n−1)グラムを二つ(ここでは図5(a)の前バイグラムと後バイグラム)を生成する。
【0068】
そして、判別部420が、二つの前バイグラムと後バイグラムとの両方について、確率係数が取得可能であるか、確率係数取得処理(図8)のステップS302と同様にnグラムリスト記憶部4710に記憶されたバイグラムリストを比較して判別する。具体的には、対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数とを比較する(ステップS402)。ここで、nグラム用の閾値はそれぞれ任意に設定可能であるが、好ましくはnが大きいほど閾値が大きい。nグラムから定義できる区切パターンの数は2^n個であり、nが大きくなるにつれてその数は大きくなる。大きな数の区切パターンのそれぞれの確率係数を取得するために十分な教師データの数は、それだけ大きくなるからである。
【0069】
全てのバイグラムのデータ数が閾値以上である場合(ステップS402;YES)は、その(n−1)グラム(バイグラム)全てについて確率係数を取得できると判断できるので、バイグラムを用いて確率係数を算出する(図5(a))ためにステップS406に移行する。
【0070】
何れかのバイグラムのデータ数が閾値より小さい場合(ステップS402;NO)は、何れかのバイグラムについて確率係数を取得できないと判断できるので、モノグラムを用いて確率係数を算出する(図5(b))。
即ち、現在のn−1が1でないか判別し(ステップS403)、1で無い場合は(ステップS403;NO)、nを1減算して2とし(ステップS404)、ステップS401にもどって(n−1)グラム(ここではモノグラム)を生成する。
【0071】
一方、n−1が1である場合(ステップS403;YES)、さらにnを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成し、その確率係数をデフォルト値(ここでは0.5)とする(ステップS405)。
【0072】
そして、ステップS401〜ステップS405で全ての確率係数を取得できる(n−1)の値を決定すると、次にその(n−1)グラムの全てについて、メニュー解析部30から伝達された区切パターンと対応する語間で共通する区切フラグをもつ区切パターンを生成する(ステップS406)。そして、生成した区切パターンについて、確率係数取得処理(図8)のステップS304と同様に確率係数を取得する(ステップS407)。
【0073】
そして、注目部分列(トライグラム)の区切パターン毎に確率係数を算出する処理(区切パターン毎算出処理1)を実行して(ステップS408)、確率係数算出処理1は終了する。
【0074】
ステップS408で実行される区切パターン毎算出処理1について、図10を参照して説明する。区切パターン毎算出処理1では、まず注目部分列(注目トライグラム)から生成できる全ての区切パターンのうち、メニュー解析部30から要求された確率係数を取得すべき区切パターンを生成する(ステップS501)。
【0075】
そして、kをカウンタ変数として、生成した区切パターンのk番目の区切パターンに注目する(ステップS502)。図5の例では、「0の1赤ワイン0煮1」が注目区切パターンである。
【0076】
次に、ステップS406で生成された注目区切パターンに対応する(n−1)グラムの区切パターン(対応区切パターン、対応する語間の区切フラグが同一)について、ステップS407で取得した確率係数を注目区切パターンの確率係数に加算する(ステップS503)。
【0077】
次に、ステップS501で生成された全区切パターンを処理したか(全区切パターンの確率係数を算出して加算したか)判別する(ステップS504)。
未処理の区切パターンがある場合(ステップS504;NO)、kをインクリメントし(ステップS505)、次の区切パターンについてステップS502からの処理を繰り返す。
【0078】
一方、全ての区切パターンについて処理を終えている場合(ステップS504;YES)、これまでの処理で(n−1)グラムの確率係数を加算した注目区切パターンの確率係数を加算した数(現時点のn)で割ってその値を加算平均値とし、区切パターン毎算出処理1を終了する。
【0079】
図8にもどって、ステップS304又はステップS305で確率係数を取得すると、出力部460が取得した確率係数をメニュー解析部30に出力して(ステップS306)、確率係数取得処理は終了する。
【0080】
図7にもどって、確率係数取得処理(ステップS203)が終わると、先頭の区切フラグが1であるすべての区切パターンのうち、確率係数がもっとも高いパターン(最尤パターン)を選択する(ステップS204)。
【0081】
次に、未処理のnグラムがあるか否かを判別する(ステップS205)。i番目のnグラムが、解析対象となる単語列の最後のnグラムでなかった場合、未処理のnグラムがあると判別され(ステップS205;YES)、iがインクリメントされる(ステップS206)。
【0082】
そして、ステップS202にもどって、次のループが開始される。2回目以降のループのステップS203では、i番目のnグラムの16種の区切パターンのうち、最後以外の区切フラグが前回のループのステップS204で選択されたパターンと共通である2つの区切パターンについて確率係数を求めるコマンドを送信する。
即ち、前回のループまでで選択されたパターンと共通の区切フラグを持つ2つのうち、i番目のnグラムの最後の単語の後ろで区切れるか否かが、2回目以降のループのステップS202からステップS204で決定される。
【0083】
一方、i番目のnグラムが、解析対象となる単語列の最後のnグラムであった場合、未処理のnグラムは無いと判別される(ステップS205;NO)。そして、これまでのループのステップS204で選択された区切パターンにおける区切フラグが1の部位で単語列を分割し(ステップS207)、メニュー分割処理は終了する。
【0084】
図6にもどって、メニュー分割処理が終わると、翻訳部50が分割された単語列に含まれる単語それぞれを、翻訳辞書を用いて翻訳する(ステップS105)。
【0085】
そして、表示部60が翻訳結果を表示し(ステップS106)、メニュー表示処理は終了する。
【0086】
以上説明したように、本実施形態に係る確率係数出力装置40によれば、注目するnグラムを含む教師データが十分に得られない場合、あるいは無い場合であっても、そのnグラムの部分列から区切り方に係るデータを取得して、区切パターンの確率係数を求めることが出来る。
即ち、教師学習がある区切パターンで区切れる確率で、解析対象となる単語列(メニュー)も区切れるとの仮定の下、メニューのnグラムの区切パターンでメニューが区切れる確からしさを、(n−1)グラム〜モノグラムの教師データから推測して求めることができる。
そのため、nグラムそのものを含む教師データのみから区切パターンの確率係数を取得してメニューの区切位置を推定するよりも必要な教師データの数が少なくてすむ。
【0087】
また、本実施形態ではnグラムの区切パターンの確率係数を、区切フラグが一致するn−1グラム〜モノグラムの区切パターンの確率係数に基づいて算出する。そのため、単語の共通性のみを用いて算出に使用する係数を抽出する場合に比べて、より算出結果の精度が高い。
【0088】
さらに、nグラムの部分列である(n−1)グラム〜モノグラム(jグラム)のすべてについて信頼できる確率係数を取得できると判別できるjの値を定め、単語数の区切パターンから確率係数を算出する。そのため、確率係数を算出するにあたって、前のjグラムの情報量と後ろのjグラムの情報量に偏りが無い。そのため、どちらかのjグラムの確率係数がより強く算出結果に影響を与える、といった偏り無くnグラムの確率係数を算出することが出来る。
【0089】
また、本実施形態に係る確率係数出力装置40によれば、教師データが所定のカテゴリの文字列(ここではメニュー)から生成されているため、広範なカテゴリ(例えば日本語全体)の教師データを用いて区切パターンの確率係数を求めた場合よりも、カテゴリに合致した確率係数を求めることが出来る。
そのため、確率係数出力装置40を含むメニュー表示装置1を用いてメニューを分割すると、メニューを分割する精度が高い。
【0090】
なお、上記説明ではnグラムの確率係数を抽出した部分列(jグラム)の対応パターンの確率係数を加算平均して求めるとしたが、nグラムの確率係数を求める方法はこれに限らない。
nグラムの確率係数は、jグラムの対応パターンの少なくとも一つが大きくなるにつれて、nグラムの確率係数も大きくなるような任意の計算式で代替可能である。例えば、対応パターンの確率係数のうち、最も前に位置する対応パターンの確率係数の影響が大きくなるように重み付けして加算する式、各対応パターンの確率係数を累乗平均する式、等に置換することができる。
また、nグラムの確率係数は所定の最大値(たとえば0.8)をもち、算出値が最大値以上であれば最大値を算出結果としてもよい。
さらに、対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部470に記憶し、算出式によらずこのテーブルを参照してnグラムの確率係数を求めても良い。
【0091】
(実施形態2)
次に、本願発明の実施形態2に係るメニュー表示装置1及び確率係数出力装置40について説明する。
【0092】
本実施形態のメニュー表示装置1及び確率係数出力装置40は、実施形態1に係るメニュー表示装置1及び確率係数出力装置40と同様の構成を持つ(図1、図3)。
【0093】
本実施形態の確率係数出力装置40は、実施形態1に係る確率係数出力装置40と確率係数の算出方法が異なる。
ここで、本実施形態の確率係数出力装置40の確率係数の算出方法について、図11を参照して説明する。
【0094】
本実施形態の確率係数出力装置40が、トライグラムの区切パターンを算出するに当たって、前バイグラムと後バイグラムの確率係数を用いて算出する方法を、図11(a)を参照して説明する。
【0095】
このとき、トライグラムの区切パターン(ここでは「0の1赤ワイン0煮1」)の確率係数を算出するにあたって、まず共通する区切フラグを持つ前バイグラム(「0の1赤ワイン0」、確率係数p1=0.31)を対応パターンとして抽出する。そして、後バイグラムにおける対応パターンとして、前バイグラムにおける対応パターンと共通する区切フラグをもつ二つのバイグラムである「1赤ワイン0煮1」(確率係数p2=0.45)と「1赤ワイン0煮0」(確率係数p3=0.11)とを抽出する。
【0096】
そして、前バイグラムの対応パターンの確率係数を、後バイグラムにおける対応パターンの確率係数に基づいて振り分けて、トライグラムの確率係数を算出する。即ち、トライグラムの区切パターンの確率係数を、「0の1赤ワイン0」の次に「1赤ワイン0煮1」が来る場合の確率paとして、p1・(p2/(p2+p3))として算出する。同様に、「0の1赤ワイン0」の次に「1赤ワイン0煮0」が来る確立pbはp1・(p3/(p2+p3))として算出できる。
なお、この算出式は、前(n−1)グラムにおける対応パターンの確率係数p1を後(n−1)グラムにおける対応パターンの確率係数で振り分ける任意の式(例えばpa=p1^2・(p2^2/(p2+p3)^2)に置き換えることができる。
なお、ここでは前の(n−1)グラムにおける対応パターンの確率係数p1を後ろの(n−1)グラムにおける対応パターンの確率係数で振り分けたが、処理の順序は前後逆でも良い。以下同じである。
また、前後それぞれの(n−1)グラムの対応パターンの確率係数と算出値とを対応づけて記憶するテーブルを記憶部470に記憶し、算出式によらずこのテーブルを参照してnグラムの確率係数を求めても良い。
【0097】
同様に、トライグラムの区切パターンを算出するに当たって、前バイグラムと後モノグラムの確率係数を用いて算出する場合は、前のバイグラムの対応パターンの確率係数を、後ろのモノグラムにおける対応パターンの確率係数に基づいて振り分ける(図11(b))。
【0098】
また、トライグラムの区切パターンを、モノグラムの確率係数のみを用いて算出する方法を図11(c)を参照して説明する。このとき、まず前モノグラムにおける対応パターンの確率係数p7を後モノグラムにおける対応パターンの確率係数p8とp9に振り分けて、前バイグラムの確率係数p10を求める(c1)。そして、(c1)で求めた前バイグラムにおける確率係数p10を用いて、図11(b)と同様にトライグラムの確率係数を算出する。
【0099】
本実施形態の確率係数出力装置40が実行する図11に示す算出処理を、フローチャート(図12〜図13)を用いて具体的に説明する。
【0100】
本実施形態のメニュー表示装置1及び確率係数出力装置40は、ユーザがメニューを撮影するための操作を実行すると、実施形態1と同様に、図6のメニュー表示処理と、図7のメニュー分割処理と、図8の確率係数取得処理を実行する。
本実施形態の確率係数出力装置40は、確率係数取得処理(図8)のステップS305で、確率係数算出処理2(図12)を実行する。
【0101】
確率係数算出処理2では、まず(n−1)グラム生成部430が注目文字列(nグラム)の部分列である(n−1)グラムを二つ(ここでは図11(a)の前バイグラムと後バイグラム)を生成して、何れかのバイグラム(ここでは前バイグラム)に注目する(ステップS601)。
【0102】
次に、判別部420が、注目バイグラム(前バイグラム)について、確率係数が取得可能であるか、確率係数取得処理(図8)のステップS302と同様にnグラムリスト記憶部4710に記憶されたバイグラムリストの対応するバイグラムのデータ数と、所定のバイグラム用の閾値の数と、を比較して判別する(ステップS602)。
【0103】
前バイグラムのデータ数がバイグラムの閾値以上である場合(ステップS602;YES)は、前バイグラムについて確率係数を取得できると判断できるので、注目バイグラム(前バイグラム)について対応パターンを特定し、その確率係数を取得する(ステップS603)。
【0104】
前バイグラムのデータ数が閾値より小さい場合(ステップS602;NO)は、前バイグラムについて確率係数を取得できないと判断できるので、図11(c)の(c1)のようにモノグラムを用いて前バイグラムの確率係数を算出する。即ち、現在のn−1が1でないか判別し(ステップS604)、1で無い場合は(ステップS603;NO)、nを1減算して2とし(ステップS605)、減算したnで前バイグラムを注目部分列として確率係数算出処理2を再帰的に実行して、区切パターンを生成し、その確率係数を取得する(ステップS606)。
【0105】
一方、n−1が1である場合(ステップS604;YES)、さらにnを減少させることが出来ないため、確率係数が取得不能なモノグラムについて、区切パターンを生成しその確率係数をデフォルト値(ここでは0.5)とする(ステップS607)。
【0106】
次に、前後両方の(n−1)グラムについて処理が終了したか判別する(ステップS608)。前後どちらかの(n−1)グラムについて、確率係数を取得していない場合は(ステップS608;NO)、未処理の(n−1)グラムを注目(n−1)グラムとして(ステップS609)、ステップS602から処理を繰り返す。
【0107】
一方、前後両方の(n−1)グラムについて確率係数を取得し終えたと判別すると(ステップS608;YES)、次に区切パターン毎に確率係数を算出する処理(区切パターン毎算出処理2)を実行して(ステップS609)、確率係数算出処理2は終了する。
【0108】
ステップS610で実行される区切パターン毎算出処理2について、図13を参照して説明する。区切パターン毎算出処理2では、まず注目部分列(注目トライグラム)から生成できる全ての区切パターンのうち、メニュー解析部30から要求された確率係数を取得すべき区切パターンを生成する(ステップS701)。
【0109】
そして、kをカウンタ変数として、生成した区切パターンのk番目の区切パターンに注目する(ステップS702)。図11(a)及び(b)の例では、「0の1赤ワイン0煮1」が注目区切パターンである。図11(c)の(c1)の例では、「0の1赤ワイン0」が注目区切パターンである。
【0110】
次に、図11に示した注目区切パターンに対応する(n−1)グラムの区切パターン(対応パターン)を、確率係数算出処理2(図12)のステップS603、ステップS606又はステップS607で生成された(n−1)グラムの区切パターンの中から抽出する(ステップS703)。図11(a)又は(c)の(c2)の場合は、「0の1赤ワイン0」と「1赤ワイン0煮1」とが対応パターンである。また、図11(b)の場合は、「0の1赤ワイン0」と「0煮1」とが対応パターンである。また、図11(c)の(c1)の例では、「0の1」と「赤ワイン0」とが対応区切パターンである。
【0111】
そして、抽出した対応パターンの確率係数から、図11に示した算出方法で注目区切パターンの確率係数を算出する(ステップS704)。
【0112】
次に、ステップS701で生成された全区切パターンについて、確率係数を算出したか判別する(ステップS705)。未処理の区切パターンがある場合(ステップS705;NO)、kをインクリメントし(ステップS706)、次の区切パターンについてステップS702からの処理を繰り返す。
【0113】
一方、全ての区切パターンについて処理を終えている場合(ステップS705;YES)、区切パターン毎算出処理2を終了する。
【0114】
以上説明したように、本実施形態に係る確率係数出力装置40によれば、注目するnグラムを含む教師データが十分に得られない場合、前のn−1グラム(注目n−1グラム)について得られる確率変数を、後ろのn−1グラムに振り分けてnグラムにおける区切パターンの確率変数を算出する(あるいはその逆)。
即ち、(n−1)グラム列で教師データを分割して、ある区切パターンの区切方を、その区切パターンの区切方で区切れるとした場合にあり得る次の区切パターンの確率に基づいて分配してnグラムの確率係数を算出するため、より多くの情報に基づいて確率係数を算出することができる。そのため、算出精度が高い。
【0115】
また、(n−1)グラムの一部について確率係数が得られない場合でも、得られる限りの(n−1)グラムの確率係数を利用してnグラムの確率係数を算出できるため、一律に(n−2)グラム〜モノグラムの確率係数を用いる場合と比べて精度の劣化が少ない。
【0116】
(変形例)
以上、本願発明の実施形態について説明したが、本願の実施形態はこれに限られず、さまざまな変形が可能である。
例えば、上記実施形態1乃至2では、nグラムのデータ数が所定の閾値以下だった場合に、(n−1)グラム〜モノグラムの確率係数から算出したが、本願発明の実施形態はこれに限らない。例えば、このような場合に(n−1)グラム〜モノグラムの確率係数から算出し、さらに所定の閾値以下のデータ数からnグラムの確率係数を求め、算出した値と加算した数値を加算平均として求める値としても良い。
【0117】
また、上記実施形態1乃至2では、教師データは教師データ記憶部4730に記憶されていたが、教師データは確率係数出力装置の内部ではなく、外部装置に記憶されているとしても良い。
このとき、確率係数出力装置は、通信部405を用いて外部装置にアクセスして教師データを取得する。
【0118】
また、区切パターンはすべての語間について一意に区切フラグを定義し、区切フラグを比較するにあたって完全に一致する場合のみを対応する区切パターンとした。しかし、区切パターンにおいて一部の区切フラグを未知数として定義し、区切フラグの比較にあたっては未知の部分を考慮しない、とする構成も可能である。
【0119】
また、上記実施形態1乃至2では、nグラムの区切パターンの確率係数を求めるにあたって、タグ付の文字列である教師データにおける区切パターンの出現確率を逐一求めていた。しかし、確率係数出力装置又は外部装置が区切パターンの確率係数を登録したパターン確率係数リストを記憶しており、このパターン確率係数リストを参照して確率係数を取得する構成も可能である。このようなパターン確率係数リストの例を、図14を参照して説明する。図14は、トライグラムと、区切フラグと、に対応する確率係数を登録したトライグラムパターン確率係数リストの例である。例えば、パターン「0010」の列、「豚−バラ肉−の」の行、に数値0.02が登録されていることは、区切パターン「0豚0バラ肉1の0」の確率係数が0.02であることを示す。
【0120】
また、上記実施形態1乃至2では、解析対象となる単語列はメニューであったが、本発明はメニュー以外の任意のカテゴリの単語列について応用可能である。本発明の解析対象となる単語列は、現れる単語が限られていること、単語と単語との区切り方のルールが限定されていること、を特徴とするカテゴリの単語列であることが好ましい。このようなカテゴリの単語列の例として、メニューの他に住所、薬品の効能書き・説明書、等があげられる。
【0121】
また、上記実施形態1乃至2の確率係数出力装置は、メニュー解析部30からn個の単語(nグラム)と、そのnグラムの区切パターンのうち確率係数を必要とする区切パターンを示す情報を伝達され、確率係数を必要とする区切パターンについて確率係数を算出して出力したが、本発明に係る確率係数出力装置が実行する処理はこれに限らない。例えば、確率係数出力装置は外部装置からnグラムのみ伝達され、そのnグラムについて定義できる全ての区切パターンを生成し、生成した全ての区切パターンの確率係数を算出して出力するとしても良い。
【0122】
また、情報処理部401、データ記憶部402、プログラム記憶部403、等から構成される確率係数出力装置のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで情報処理装置を構成してもよい。
【0123】
また、確率係数出力装置の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0124】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0125】
また、実行する処理の一部を、確率係数出力装置とは独立したコンピュータを用いて実現しても良い。。
【0126】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0127】
(付記1)
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする情報処理装置。
【0128】
(付記2)
前記教師単語列は、前記注目単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列であり、
前記抽出部が抽出した部分単語列を含む単語列を、前記区切確率係数を取得するための教師単語列として十分な数だけ取得できるか否か判別する判別部をさらに備え、
前記抽出部は、前記判別部が抽出した部分単語列を含む単語列が前記区切確率係数を取得するに十分な数だけ取得できないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする付記1に記載の情報処理装置。
【0129】
(付記3)
前記確率係数取得部は、前記部分単語列に対して定義できる区切パターンのうち、前記確率係数獲得部が獲得する注目単語列の区切パターンと対応する語間については同じ区切り方である区切パターンを取得する、
ことを特徴とする付記1又は2に記載の情報処理装置。
【0130】
(付記4)
前記確率係数獲得部が求める注目単語列の区切パターンの区切確率係数は、前記確率係数取得部が取得した区切確率係数の少なくとも一つが大きくなるにつれて大きくなる、
ことを特徴とする付記1乃至3の何れか一つに記載の情報処理装置。
【0131】
(付記5)
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする付記1乃至4の何れか一つに記載の情報処理装置。
【0132】
(付記6)
前記抽出部は、すくなくとも注目単語列の先頭の単語を含む部分単語列である前部分単語列と最後尾の単語を含む部分単語列である後部分単語列とを抽出し、
前記確率係数獲得部は、前記前部分単語列又は前記後部分単語列のいずれか一方である注目部分単語列から取得された前記区切パターンの区切確率係数を、当該注目部分単語列の区切パターンと対応する語間については同じ区切り方に対応する、前記前部分単語列又は後部分単語列のうち注目単語列でない方の部分単語列から取得された区切パターンの区切確率係数に基づいて割り振って、前記注目単語列の区切パターンの区切確率係数を求める、
ことを特徴とする付記1乃至3の何れか一つに記載の情報処理装置。
【0133】
(付記7)
前記注目単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする付記1乃至6の何れか1つに記載の情報処理装置。
【0134】
(付記8)
コンピュータに、
注目単語列を取得する処理、
前記取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する処理、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出した部分単語列それぞれについて取得する処理、
前記取得した区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する処理、
前記注目単語列の区切パターンの区切確率係数を、前記取得した区切確率係数に基づいて求める処理、
を実行させることを特徴とするプログラム。
【符号の説明】
【0135】
1…メニュー表示装置、10…入力部、20…OCR、30…メニュー解析部、40…確率係数出力装置、50…翻訳部、60…表示部、70…情報処理部、401…情報処理部、402…データ記憶部、403…プログラム記憶部、405…入出力部、405…通信部、406…内部バス、407…制御プログラム、410…単語列取得部、420…判別部、430…(n−1)グラム生成部、440…確率係数取得部、450…確率係数算出部、460…出力部、470…記憶部、4710…nグラムリスト記憶部、4720…設定記憶部、4730…教師データ記憶部
【特許請求の範囲】
【請求項1】
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記教師単語列は、前記注目単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列であり、
前記抽出部が抽出した部分単語列を含む単語列を、前記区切確率係数を取得するための教師単語列として十分な数だけ取得できるか否か判別する判別部をさらに備え、
前記抽出部は、前記判別部が抽出した部分単語列を含む単語列が前記区切確率係数を取得するに十分な数だけ取得できないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記確率係数取得部は、前記部分単語列に対して定義できる区切パターンのうち、前記確率係数獲得部が獲得する注目単語列の区切パターンと対応する語間については同じ区切り方である区切パターンを取得する、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記確率係数獲得部が求める注目単語列の区切パターンの区切確率係数は、前記確率係数取得部が取得した区切確率係数の少なくとも一つが大きくなるにつれて大きくなる、
ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。
【請求項6】
前記抽出部は、すくなくとも注目単語列の先頭の単語を含む部分単語列である前部分単語列と最後尾の単語を含む部分単語列である後部分単語列とを抽出し、
前記確率係数獲得部は、前記前部分単語列又は前記後部分単語列のいずれか一方である注目部分単語列から取得された前記区切パターンの区切確率係数を、当該注目部分単語列の区切パターンと対応する語間については同じ区切り方に対応する、前記前部分単語列又は後部分単語列のうち注目単語列でない方の部分単語列から取得された区切パターンの区切確率係数に基づいて割り振って、前記注目単語列の区切パターンの区切確率係数を求める、
ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項7】
前記注目単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする請求項1乃至6の何れか一項に記載の情報処理装置。
【請求項8】
コンピュータに、
注目単語列を取得する処理、
前記取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する処理、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出した部分単語列それぞれについて取得する処理、
前記取得した区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する処理、
前記注目単語列の区切パターンの区切確率係数を、前記取得した区切確率係数に基づいて求める処理、
を実行させることを特徴とするプログラム。
【請求項1】
注目単語列を取得する単語列取得部と、
前記単語列取得部が取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する抽出部と、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出部が抽出した部分単語列それぞれについて取得し、当該区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する確率係数取得部と、
前記注目単語列の区切パターンの区切確率係数を、前記確率係数取得部が取得した区切確率係数に基づいて求める確率係数獲得部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記教師単語列は、前記注目単語列と同一カテゴリに属する単語列であって、当該単語列の語間のそれぞれで単語列が区切れるか否かを定義した単語列であり、
前記抽出部が抽出した部分単語列を含む単語列を、前記区切確率係数を取得するための教師単語列として十分な数だけ取得できるか否か判別する判別部をさらに備え、
前記抽出部は、前記判別部が抽出した部分単語列を含む単語列が前記区切確率係数を取得するに十分な数だけ取得できないと判別すると、当該抽出した部分単語列の部分単語列をさらに抽出する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記確率係数取得部は、前記部分単語列に対して定義できる区切パターンのうち、前記確率係数獲得部が獲得する注目単語列の区切パターンと対応する語間については同じ区切り方である区切パターンを取得する、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記確率係数獲得部が求める注目単語列の区切パターンの区切確率係数は、前記確率係数取得部が取得した区切確率係数の少なくとも一つが大きくなるにつれて大きくなる、
ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
前記抽出部が抽出する部分単語列がそれぞれ同一数の単語から構成される、
ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。
【請求項6】
前記抽出部は、すくなくとも注目単語列の先頭の単語を含む部分単語列である前部分単語列と最後尾の単語を含む部分単語列である後部分単語列とを抽出し、
前記確率係数獲得部は、前記前部分単語列又は前記後部分単語列のいずれか一方である注目部分単語列から取得された前記区切パターンの区切確率係数を、当該注目部分単語列の区切パターンと対応する語間については同じ区切り方に対応する、前記前部分単語列又は後部分単語列のうち注目単語列でない方の部分単語列から取得された区切パターンの区切確率係数に基づいて割り振って、前記注目単語列の区切パターンの区切確率係数を求める、
ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項7】
前記注目単語列と前記教師単語列とが献立を表現する単語列である、
ことを特徴とする請求項1乃至6の何れか一項に記載の情報処理装置。
【請求項8】
コンピュータに、
注目単語列を取得する処理、
前記取得した注目単語列に含まれる一又は複数の単語を含む部分単語列を複数抽出する処理、
単語列を構成する単語と単語との間である語間それぞれで単語列が区切れる場合と区切れない場合とのそれぞれの区切り方に対応する区切パターンを、前記抽出した部分単語列それぞれについて取得する処理、
前記取得した区切パターンに対応する区切り方で当該部分単語列を含む教師単語列が区切れる確からしさを示す区切確率係数を、当該抽出した区切パターンそれぞれについて取得する処理、
前記注目単語列の区切パターンの区切確率係数を、前記取得した区切確率係数に基づいて求める処理、
を実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−97395(P2013−97395A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−236417(P2011−236417)
【出願日】平成23年10月27日(2011.10.27)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願日】平成23年10月27日(2011.10.27)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]