(57)【要約】食事名を含むレコードを格納したデータベースに接続された情報処理装置であって、食事名のうち処理の対象とする食事名を、対象食事名として語に分割し、当該分割した語のうちから選択した語を組み合せた組み合わせ語を生成する。そして当該組み合わせ語を正規化食事名として、所定処理に供する情報処理装置である。【選択図】図１
2017033870.tif 000002
【特許請求の範囲】
【請求項１】
食事名を含むレコードを格納したデータベースに接続された情報処理装置であって、
前記食事名のうち処理の対象とする食事名を、対象食事名として語に分割する手段と、
前記分割した語のうちから選択した語を組み合せた組み合わせ語を生成する生成手段と、
前記組み合わせ語を正規化食事名として、所定処理に供する手段と、
を含む情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記生成手段は、
前記対象食事名を分割して得られた語と、当該語の分割前の対象食事名中での出現順の情報、及び、
前記データベースに格納されている食事名のうち、前記対象食事名を分割して得られた語を含む食事名を参照食事名として、当該参照食事名を分割して得られる語と、当該語の食事名中での出現順の情報、
を用いて、前記分割した語のうちから選択した語を組み合せた組み合わせ語を生成する情報処理装置。
【請求項３】
請求項１または２記載の情報処理装置であって、
語と、当該語が、食材名を表す語であるか否か、及び、調理法を表す語であるか否かを表す情報とを関連付けて記録した辞書データベースに接続され、
前記生成手段は、
前記分割した語のうちから、食材名を表す語とされた語をＮ個（Ｎは１以上の既定の自然数）と、調理法を表す語とされた語をＭ個（Ｍは１以上の既定の自然数）との選択を試み、選択された場合に、当該選択された語を組み合せた組み合わせ語を生成する情報処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の情報処理装置であって、
前記所定処理は、共通する正規化食事名を有する食事名に関する統計演算処理を含む情報処理装置。
【請求項５】
食事名を含むレコードを格納したデータベースに接続された情報処理装置を、
前記食事名のうち処理の対象とする食事名を、対象食事名として語に分割する手段と、
前記分割した語のうちから選択した語を組み合せた組み合わせ語を生成する生成手段と、
前記組み合わせ語を正規化食事名として、所定処理に供する手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
利用者が日々、飲食した食事名や食事の画像を記録することで、利用者の食事傾向などを分析するソフトウエアが知られている。【０００３】
こうしたソフトウエアでは、例えば複数の利用者における食事名ごとの統計（出現頻度等の）情報を生成し、食事傾向の分析処理に利用することが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−０１６０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、食事名を自由入力形式とすると、利用者ごとに同じ食事であっても自由に食事名を付されてしまう場合がある。例えば同じ「肉野菜炒め」であっても、「豚肉と野菜の炒め物」、「肉と中華風の野菜の炒め物」、「肉野菜のおいしい炒めもの」などとばらつきが生じ得る。一方で選択入力形式としたのでは、利用者が適切と考える食事名が必ずしも選択肢に含まれない場合が生じる。【０００６】
本発明は上記実情に鑑みて為されたもので、利用者に対して自由な食事名の入力を許容しつつ、食事名に係る統計処理を可能とする情報処理装置を提供することを、その目的の一つとする。【０００７】
なお、特許文献１には、項目文字列をシソーラスを用いて統合する処理例について記載がある。
【課題を解決するための手段】
【０００８】
上記従来例の問題点を解決するための本発明は、食事名を含むレコードを格納したデータベースに接続された情報処理装置であって、前記食事名のうち処理の対象とする食事名を、対象食事名として語に分割する手段と、前記分割した語のうちから選択した語を組み合せた組み合わせ語を生成する生成手段と、前記組み合わせ語を正規化食事名として、所定処理に供する手段と、を含むこととしたものである。
【発明の効果】
【０００９】
本発明によると、利用者に対して自由な食事名の入力を許容しつつ、食事名に係る統計処理が可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理装置の構成例とその接続例とを表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置がアクセスする食事データベースの内容例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置が生成する語グラフの例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置の処理例を表すフローチャート図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、図１に例示するように、制御部１１と、記憶部１２と、通信部１３とを含んで構成される。またこの情報処理装置１は、インターネット等の通信手段を介して、利用者の端末２との間で通信可能に接続されている。
【００１２】
情報処理装置１の制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。本実施の形態では、この制御部１１は、利用者の端末２から受信する指示に従い、食事名や、食事の画像等を、食事データベースに記録する。またこの制御部１１は、利用者の端末２から受信する指示に従い、食事データベースに記録されている情報を、端末２へ送出する。
【００１３】
また本実施の形態においてこの制御部１１は、食事名を含むレコードを格納した食事データベースを参照し、当該食事データベースに記録されている食事名のうち処理の対象とする食事名を、対象食事名として、この対象食事名を語に分割する。制御部１１は、当該分割した語のうちから選択した語を組み合せた組み合わせ語を生成し、当該組み合わせ語を正規化食事名として、所定処理に供する。この制御部１１の具体的な処理の内容については後に述べる。
【００１４】
記憶部１２は、メモリデバイスやディスクデバイス等であり、制御部１１によって実行されるプログラムが格納される。このプログラムは例えばコンピュータ可読かつ非一時的（non-transitory）な記録媒体に格納されて提供され、この記憶部１２に格納される。また本実施の形態の一例では、この記憶部１２に、食事名や、食事の画像等を記録した食事データベースが格納される。この記憶部１２はさらに、制御部１１のワークメモリとしても動作する。
【００１５】
通信部１３は、ネットワークインタフェース等であり、端末２からネットワークを介して受信する情報を制御部１１に出力する。またこの通信部１３は、制御部１１から入力される指示に従って、端末２に対して情報を送出する。
【００１６】
端末２は、例えばスマートフォン等であり、利用者の操作を受け入れて、食事名の情報や、食事の画像（スマートフォンが備えるカメラ等で撮影されたものでよい）等の情報を、利用者を特定する情報とともに情報処理装置１に対して送出する。
【００１７】
次に本実施の形態の情報処理装置１の制御部１１の動作について説明する。本実施の形態の一例では、制御部１１は、図２に例示するように、機能的には、食事情報記録部３１と、食事名正規化部３２と、統計情報生成部３３とを含んで構成される。また食事名正規化部３２は、食事名分割部４１と、組み合わせ語生成部４２とを含んで構成される。
【００１８】
食事情報記録部３１は、端末２から利用者を特定する情報とともに食事名の情報や、食事の画像（スマートフォンが備えるカメラ等で撮影されたものでよい）等の情報を受け入れると、当該受け入れた日時の情報を図示しないカレンダーＩＣ等から取得する。そして食事情報記録部３１は、図３に例示するように、受け入れた、利用者を特定する情報と、食事名の情報や分量の情報等と、取得した日時の情報とを互いに関連付けたレコード（Ｒ）を、食事データベースに格納する。
【００１９】
食事名正規化部３２は、食事データベースに格納されている食事名の情報を参照して、正規化食事名を生成する。具体的に、この食事名正規化部３２の食事名分割部４１は、食事データベースに格納されている食事名のうち、未だ正規化食事名を生成していない食事名を処理の対象として選択する。ここで選択された食事名を、以下区別のため、対象食事名と呼ぶ。
【００２０】
そして食事名分割部４１は、対象食事名を語ごとに分割する。この分割は、例えば、予め用意された辞書を参照して、辞書にある語ごとに語の境界を解析する処理を用いて行うことができる。一例として京都テキスト解析ツールキットKyTeaを用いることができる。具体的な例として、この食事名分割部４１により、「豚肉と野菜の炒め物」、「肉と中華風の野菜の炒め物」、「肉野菜のおいしい炒めもの」は、それぞれ、
「豚肉」「と」「野菜」「の」「炒め」「物」、
「肉」「と」「中華風」「の」「野菜」「の」「炒め」「物」、
「肉」「野菜」「の」「おいしい」「炒め」「もの」
といったように分割される。ここでは分割により得られた語を引用符（かぎ括弧）で区別して示している。
【００２１】
組み合わせ語生成部４２は、食事名分割部４１により得られた分割された語のいずれかを含む食事名を、食事データベースから検索する。この検索で得られた食事名を、以下区別のため、参照食事名と呼ぶ。この参照食事名には、対象食事名そのものが含まれてもよい。なお、分割された語のうち、予め定めたストップワード（助詞等）は取り除き、ストップワードを除いた語をキーとして参照食事名の検索を行うこととしてもよい。
【００２２】
一例として対象食事名が「豚肉と野菜のおいしい炒め物」であり、この対象食事名が「豚肉」「と」「野菜」「の」「おいしい」「炒め」「物」に分割される場合、ストップワードである「と」、「の」を除く、「豚肉」，「野菜」，「おいしい」，「炒め」，「物」のいずれかを含む食事名を食事データベースから検索して、この検索により見出された食事名を参照食事名とする。
【００２３】
これにより例えば、
「豚肉と野菜のおいしい炒め物」（対象食事名自体）
「豚肉のソテー」（「豚肉」の語を含む）
「野菜炒め」（「野菜」，「炒め」の語を含む）
「豚肉と中華風の野菜の炒めもの」（「豚肉」、「野菜」、「炒め」の語を含む）
「おいしいプロテイン飲料」（「おいしい」の語を含む）
「肉野菜炒め」（「炒め」の語を含む）
…
等の食事名が参照食事名として見出される。
【００２４】
組み合わせ語生成部４２は、参照食事名を、対象食事名と同様に食事名分割部４１にて語に分割させる。また、組み合わせ語生成部４２は、参照食事名のそれぞれについて、分割された語（ストップワードは除いてもよい）の分割前の参照食事名中での出現順の情報を用いて組み合わせ語を生成する。
【００２５】
一例として組み合わせ語生成部４２は、参照食事名とのそれぞれについて、分割された語を、参照食事名中での出現順に、方向付きのエッジで連結した有向グラフ（先頭ノードＳと、終端ノードＥとを加えておく。以下、語グラフ（word graph）と呼ぶ）を生成する。上述の例であれば、対象食事名である参照食事名「豚肉と野菜のおいしい炒め物」について、
Ｓ→「豚肉」→「野菜」→「おいしい」→「炒め」→「物」→Ｅとの語グラフが生成され、また、対象食事名以外の参照食事名について、
「豚肉のソテー」：Ｓ→「豚肉」→「ソテー」→Ｅ
「野菜炒め」：Ｓ→「野菜」→「炒め」→Ｅ
「豚肉と中華風の野菜の炒めもの」：Ｓ→「豚肉」→「中華風」→「野菜」→「炒め」→「もの」→Ｅ
「おいしいプロテイン飲料」：Ｓ→「おいしい」→「プロテイン」→「飲料」→Ｅ
「肉野菜炒め」：Ｓ→「肉」→「野菜」→「炒め」→Ｅ
といった語グラフが生成される（図４）。
【００２６】
組み合わせ語生成部４２は、各食事名について生成したグラフに含まれるエッジごとに、当該エッジ（処理対象エッジと呼ぶ）のリンク元のノード（アウトリンクノードと呼ぶ）ｗiと、リンク先のノード（インリンクノードと呼ぶ）ｗjとを参照し、処理対象エッジの重み（コスト）を次のように演算する（K.Fillipova,"Multi-sentence compression: Finding shortest paths in word graphs", Progress of the 23rd International Conference on Computational Linguistics 2010の文短縮用コストを用いる）。
【数１】
2017033870.tif 000003
ここで、freq(w)は、ノードｗの出現頻度（各参照食事名からノードｗが見出された頻度）であり、diff(ｓ，ｗ1，ｗ2）は、出現順を考慮した語間距離を表し、具体的には次の（２）式で表される値となる：
【数２】
2017033870.tif 000004
ただしpos（ｓ，ｗ）は、食事名ｓにおけるノードｗの出現順位（先頭からリンクを辿って何番目にノードｗが出現するかを表す値）であり、Σ（和）は、すべての参照食事名における和を演算することを意味する。
【００２７】
上述に挙げた例では、
「豚肉」→「野菜」のエッジに注目した場合、「豚肉」の出現頻度（ｗi）が「３」、「野菜」の出現頻度（ｗj）が「４」、
「豚肉と野菜のおいしい炒め物」（対象食事名）でのdiff(ｓ，ｗ1，ｗ2）＝１
「豚肉のソテー」でのdiff(ｓ，ｗ1，ｗ2）＝０
「野菜炒め」でのdiff(ｓ，ｗ1，ｗ2）＝０
「豚肉と中華風の野菜の炒めもの」でのdiff(ｓ，ｗ1，ｗ2）＝２
「おいしいプロテイン飲料」でのdiff(ｓ，ｗ1，ｗ2）＝０
「肉野菜炒め」でのdiff(ｓ，ｗ1，ｗ2）＝０
であるので、このでのdiff(ｓ，ｗ1，ｗ2）の逆数の総和は、１＋１／２＝１．５となる。従って、「豚肉」→「野菜」のエッジの重み（コスト）は、
（３＋４）／（３×４×３／２）＝７／１８＝０．３９（小数点３桁を四捨五入）
となる。
【００２８】
そのほかも同様に、
「Ｓ」→「豚肉」のノードについて、（６＋３）／（６×３×３）＝０．１７
「野菜」→「おいしい」のノードについて、（４＋２）／（４×２×１）＝０．７５
「おいしい」→「炒め」のノードについて、（２＋４）／（２×４×１）＝０．７５
「野菜」→「炒め」のノード（「野菜炒め」等から得られる）について、（４＋４）／（４×４×５／２）＝０．２
…
などと演算される。
【００２９】
組み合わせ語生成部４２は、こうして演算したエッジの重みのうち、対象食事名に含まれる語のノードをリンクの順に辿ってできる組み合わせに係る重みの総和を求める。すなわち、
Ｓ→「豚肉」→「野菜」→「おいしい」→「炒め」→「物」→Ｅであれば、０．１７＋０．３９＋０．７５＋０．７５＋１．２５＋１．１７＝４．４８
Ｓ→「豚肉」→「おいしい」→「炒め」→Ｅであれば、０．１７＋１．６７＋０．７５＋０．１７＝２．７６
Ｓ→「豚肉」→「野菜」→「炒め」→Ｅであれば、０．１７＋０．３９＋０．２＋０．１７＝０．９３
…
というように演算する。組み合わせ語生成部４２は、演算にかかる各組み合わせのうち、重みの総和が最小となる組み合わせを見出す。上記の例の場合、Ｓ→「豚肉」→「野菜」→「炒め」→Ｅの組み合わせが最小となるので、この組合せを見出す。
【００３０】
そして組み合わせ語生成部４２は、ここで見出された組み合わせを、リンクの順に連接して組み合わせ語「豚肉野菜炒め」を正規化食事名として生成し、この正規化食事名を対象食事名に関連付けて食事データベースに格納する。
【００３１】
統計情報生成部３３は、正規化食事名を用いて統計処理を行う。具体的には正規化食事名を得る処理によって、例えば「豚肉と野菜のおいしい炒め物」や、「豚肉と野菜の炒め物」、「豚肉と季節の野菜の炒め物」などが、いずれも正規化食事名「豚肉野菜炒め」に関連付けられることとなれば、統計情報生成部３３は、「豚肉と野菜のおいしい炒め物」などではなく、正規化食事名「豚肉野菜炒め」をキーとして集計を行う。これにより、例えば利用者が「豚肉と野菜のおいしい炒め物」や、「豚肉と野菜の炒め物」、「豚肉と季節の野菜の炒め物」など、自由な名称で「豚肉と野菜の炒め物」という同じ料理を表現しても、いずれも正規化食事名「豚肉野菜炒め」をキーとして集計されるので、統計結果にこれらのレコードが反映されることとなる。
【００３２】
本実施の形態は、基本的に以上の構成を備えており、次のように動作する。以下の説明では、複数の利用者のそれぞれから少なくとも一度以上、飲食した食事についての食事名等の情報を受信し、これら受信した情報（利用者を特定する情報や食事名の情報を関連付けたレコード）が予め食事データベースに格納されているものとする。
【００３３】
本実施の形態の情報処理装置１は、図５に示すように、食事データベースに格納されている食事名のうち、正規化食事名に関連付けられていない食事名を順次、対象食事名として選択し（Ｓ１）、当該選択した対象食事名を語に分割する（Ｓ２）。そして当該分割して得た語（予め定めたストップワードを除いてもよい）を含む食事名（このうちに対象食事名自体を含んでもよい）を食事データベースから検索し、検索の結果を参照食事名として取り出す（Ｓ３）。
【００３４】
情報処理装置１は、取り出した参照食事名も語に分割する（Ｓ４）。そして情報処理装置１は、処理Ｓ２，Ｓ４にて得られた分割された語の出現順（参照食事名に含まれる順）により語グラフを生成し、当該語グラフのエッジの重みを（１），（２）式で定める（Ｓ５）。情報処理装置１は、こうして得られた語グラフに含まれるリンクのうち、当該リンクに含まれるノードの語がすべて対象食事名に含まれ、かつ、重みの和が最小となる、ノードＳからノードＥまでの経路（最小コストパス）を見出し（Ｓ６）、当該最小コストパスに含まれるリンクの順にノードの語を連接して組み合わせ語を生成し（Ｓ７）、当該組み合わせ語を正規化食事名として、対象食事名に関連付けて（対象食事名を含むレコードに含めて）食事データベースに記録する（Ｓ８）。
【００３５】
なお、ここでは対象食事名や参照食事名を処理Ｓ２，Ｓ４の実行時に語に分割することとしているが、食事名の入力を受けた時点で食事名を語に分割して、食事データベースに格納しておき、処理Ｓ２や処理Ｓ４では対象食事名、または参照食事名となった食事名に関連付けて記録されている、分割された語を読み出すこととしてもよい。
【００３６】
また情報処理装置１は、対象食事名として選択していない食事名が食事データベース内にあるか否かを判断し（Ｓ９）、もしあれば処理Ｓ１に戻って未選択の食事名を対象食事名として選択して処理を続ける。また、処理Ｓ９において、対象食事名として選択していない食事名が食事データベース内になければ、処理を終了する。
【００３７】
以下、情報処理装置１は、正規化食事名を用いて統計処理等の所定処理を実行する。一例として、情報処理装置１は、同じ利用者を特定する情報に関連付けられている正規化食事名ごとの出現頻度の情報や、食事データベース中のすべての正規化食事名ごとの出現頻度の情報等を生成する。
【００３８】
［参照食事名の数］
ここまでの説明では、対象食事名を分割して得た語を含む参照食事名を検索する際に、その数を限らなかったが、本実施形態の一例では、参照食事名を例えば対象食事名により類似する順にあるいはランダムに、指定された数ｋ個だけ検索してもよい。ここで類似する順に選択する場合は、対象食事名を分割して得た語と、参照食事名を分割して得た語とを比較し、共通している語の数をカウントし、共通している語の数が多い順にｋ個（ｋ種類）取り出せばよい。
【００３９】
例えば、対象食事名「豚肉と野菜のおいしい炒め物」を分割して得られた語が上述のように「豚肉」「野菜」「おいしい」「炒め」「物」である場合に、類似する順にｋ＝３個（３種類）取り出すこととする場合、
「豚肉と野菜のおいしい炒め物」（対象食事名自体）：共通している語の数＝５
「豚肉と中華風の野菜の炒めもの」（「豚肉」「中華風」「野菜」「炒め」「もの」に分解される）：共通している語の数＝３
「肉野菜炒め」（「肉」「野菜」「炒め」に分解される）：共通している語の数＝２
「野菜炒め」（「野菜」「炒め」に分解される）：共通している語の数＝２
「豚肉のソテー」（「豚肉」「ソテー」に分解される）：共通している語の数＝１
「おいしいプロテイン飲料」（「おいしい」「プロテイン」「飲料」に分解される）：共通している語の数＝１
となるので、共通している語の数が多い順にｋ＝３種類を取り出して、例えば、「豚肉と野菜のおいしい炒め物」（対象食事名自体）、「豚肉と中華風の野菜の炒めもの」、「肉野菜炒め」を参照食事名とする。
【００４０】
なお、例えば食事データベース中に、「豚肉と中華風の野菜の炒めもの」を含むレコードの数が複数ある場合も、類似する順にｋ＝３種類を取り出すので、「豚肉と野菜のおいしい炒め物」、「豚肉と中華風の野菜の炒めもの」（複数のレコードがあっても１種類とカウントされる）、「肉野菜炒め」が参照食事名とされる。
【００４１】
さらに、ここでは共通している語の数が「２」である食事名が２つある例とし、これらのうち「肉野菜炒め」を参照食事名とする例としたが、このようにｋ種類を取り出すときに、共通している語の数の上位ｋ位までの食事名を候補として選択したときに、候補がｋを超えているとき（同順位の食事名が複数ある場合）は、そのうち最も短い食事名、あるいは最も長い食事名を選択するものとしてもよいし、ランダムに選択してもよい。また、同順位の食事名が複数ある場合は、そのうち当該食事名を含むレコードの数が多いものを選択することとしてもよい。この例では例えば「肉野菜炒め」を含むレコードが１０、「野菜炒め」を含むレコードが２０あれば、「野菜炒め」を選択することとなる。
【００４２】
またここで選択する参照食事名の数ｋは、経験的に、あるいは実験的に定める。
【００４３】
［語の種類を考慮した組み合わせ語の生成］
また食事名は一般的に、食材を表す語１，２個、及び調理法を表す語１個を含むことが一般的であることに鑑み、次のような処理を行ってもよい。この例では、食事名正規化部３２の食事名分割部４１が、対象食事名や参照食事名を分割する際に参照する辞書に、語と、当該語が食材名を表す語であるか否かを表す情報、及び、調理法を表す語であるか否かを表す情報とを関連付けて記録しておく。具体的には、「豚肉」に対して食材名であることを表す情報を関連付けて記録し、「炒め」には調理法であることを表す情報を関連付けて記録する。また、「おいしい」など、食材でも調理法でもない語に対しては、食材名であることを表す情報や調理法であることを表す情報を関連付けないようにする。
【００４４】
そして食事名分割部４１は、食材名を分割して得た語に対し、食材名を表す語であるか否かを表す情報、及び、調理法を表す語であるか否かを表す情報を関連付けて出力する。具体的に「豚肉と野菜のおいしい炒めもの」の食材名を分割したときには、
「豚肉」：食材名
「と」：−
「野菜」：食材名
「の」：−
「おいしい」：−
「炒め」：調理法
「もの」：−
といったように語を分割しつつ、食材名を表す語であるか否かを表す情報、及び、調理法を表す語であるか否かを表す情報を関連付ける。なお、「−」としたのは、これら食材名を表す語であるか否かを表す情報、及び、調理法を表す語であるか否かを表す情報のいずれも関連付けられていないことを示す。
【００４５】
またこの例において、組み合わせ語生成部４２は、参照食事名に基づいて語グラフを生成し、各エッジの重みを演算した後、対象食事名に含まれる語であって、Ｎ＝１，２個の食材名を表す語のノードと、Ｍ＝１個の調理法を表す語を含むノードとを、リンクの順に辿ってできる組み合わせに係る重みの総和を求める。なお、食材名を表す語が１つもない場合、あるいは調理法を表す語が一つもない場合は、既に説明したのと同様に、対象食事名に含まれる語のノード（食材名であるか調理法であるかを問わない）をリンクの順に辿ってできる組み合わせに係る重みの総和を求めることとする。
【００４６】
具体的に、対象食事名が「季節野菜を添えたごぼうと牛肉の炒め煮」であり、食事名分割部４１により、
「季節野菜」：食材名
「添えた」：−
「ごぼう」：食材名
「牛肉」：食材名
「炒め煮」：調理法
と分割されているとき（ストップワードは省いている）、組み合わせ語生成部４２は、参照食事名に基づいて生成した語グラフから、
「季節野菜」→「ごぼう」→「炒め煮」
「季節野菜」→「牛肉」→「炒め煮」
「ごぼう」→「牛肉」→「炒め煮」
「季節野菜」→「炒め煮」
「ごぼう」→「炒め煮」
「牛肉」→「炒め煮」
のノードをそれぞれ辿ったときの重みの総和を演算する。そして組み合わせ語生成部４２は、演算にかかる各組み合わせのうち、重みの総和が最小となる組み合わせを見出す。
【００４７】
そして組み合わせ語生成部４２は、ここで見出された組み合わせを、リンクの順に連接して組み合わせ語「豚肉野菜炒め」を正規化食事名として生成し、この正規化食事名を対象食事名に関連付けて食事データベースに格納する。本実施の形態のこの例によると、食材名を１，２語、調理法を１語含んだ、比較的一般的な食品名を再構成できる。
【００４８】
なお、ここでの例は一例であり、例えば出現した食材名は必ずすべて含むようにノードを選択してもよいし、食材名を必ず２語含むようにノードを選択してもよい（この場合も食材名が１語以下しかない場合は、食材名であるか調理法であるかを問わずにノードを選択することとすればよい）。このように、食材名の語数Ｎや、調理法の語数Ｍは経験的に定めればよい。なお、Ｎ，Ｍはいずれも１つの自然数（１以上の自然数）に限られず、Ｎ＝２または３のように複数の自然数を含んでもよい。
【００４９】
［条件として設定されるストップワード］
ここまでの説明において、ストップワードは、助詞等、予め定められた文字列ないし、予め定められた品詞として分析される語であるものとしていた。しかしながら、本実施の形態においてストップワードはこれに限られない。例えばストップワードには、記号（括弧等）を含んでもよい。またストップワードとして、所定の条件を満足する語としてもよい。ここでの条件は例えば正規表現として記述すればよい。一例として、「\d」が任意の１字以上の数字（漢数字を含む）に一致するものであれば、
\d人前（「一人前」、「２人前」等に一致する）
\dグラム（「１００グラム」等に一致する）
等としてストップワードを定めてもよい。
【００５０】
この例によると、例えば
「チーズ入りハンバーグ（１５０グラム）」
などの食事名から、「（１５０グラム）」の部分がストップワードとして除かれ、
「チーズ」「入り」「ハンバーグ」
の語に分割されて処理されることとなる。
【００５１】
また、場所の名称等をストップワードとして設定しておくこととしてもよい。例えば、「（Ｚ食堂）」，「（レストランＡ）」等の名称そのものをストップワードとして設定してもよいし、正規表現を用いて（「*」が任意の１字以上の文字に一致するものとして）
「（*食堂）」（「（Ｚ食堂）」や、「（中央食堂）」等に一致する）
「（レストラン*）」（「（レストランＡ）」や「（レストランＢにて）」等に一致する）
等としてストップワードを定めてもよい。
【００５２】
この例によると、例えば
「天ぷら定食（Ｚ食堂）」
などの食事名から、「（Ｚ食堂）」の部分がストップワードとして除かれ、
「天ぷら」「定食」
の語に分割されて処理されることとなる。
【００５３】
［処理の別の例］
また、正規化食事名を利用する処理の例として、さらに、正規化食品名ごとの出現頻度（出現頻度順）が互いに類似している利用者の情報（例えば利用者に病歴情報等を入力してもらっている場合等はその情報）を参照して、飲食している食品の傾向と、生活習慣病の傾向との相関分析等を行うなどの処理を行ってもよい。
【００５４】
さらに、正規化食品名ごとの出現頻度（出現頻度順）が自己のものと類似している他の利用者の情報を提供することで、類似の嗜好を持つ他者の情報を得たり、あるいは、当該他の利用者の病歴情報を提供する処理を行ってもよい。
【００５５】
［実施形態の効果］
本実施の形態によると、利用者が自由に入力した食事名が正規化食事名として集約されるので、利用者に対して自由な食事名の入力を許容しつつ、食事名に係る統計処理が可能となる。
【符号の説明】
【００５６】
１  情報処理装置、２  端末、１１  制御部、１２  記憶部、１３  通信部、３１  食事情報記録部、３２  食事名正規化部、３３  統計情報生成部、４１  食事名分割部、４２  組み合わせ語生成部。
【図１】
2017033870.tif 000005
【図２】
2017033870.tif 000006
【図３】
2017033870.tif 000007
【図４】
2017033870.tif 000008
【図５】
2017033870.tif 000009
【国際調査報告】
2017033870.tif 000010
2017033870.tif 000011
2017033870.tif 000012
2017033870.tif 000013