DEIM Forum 2014 F8-5

誕生・使用事由によるレシピ検索〜生い立ちレシピサーチ〜
門脇拓也†

山肩 洋子††

森信介†††

田中 克己††† 京都大学工学部情報学科 〒 606-8501 京都府京都市左京区吉田本町†† 京都大学大学院情報学研究科 〒 606-8501 京都府京都市左京区吉田本町††† 京都大学学術情報メディアセンター 〒 606–8501 京都府京都市左京区吉田本町
E-mail: †,††{kadowaki,yamakata,tanaka}@dl.kuis.kyoto-u.ac.jp, † † †mori@ar.media.kyoto-u.ac.jp
あらまし その日何を作るかといった献立を決めることは，多くの主婦がストレスに感じる事柄の一つである [1]．料理を作る漠然とした事由はあっても，その事由に合った具体的な料理を思いつくのは難しい．そこで本研究は，このような事由からレシピを検索できるシステムを提案する．Web 上には，レシピと併せて，なぜそのレシピが誕生したのか，なぜそのレシピを使用したのかといった，そのレシピの “生い立ち” に相当する情報が書かれている『ブログ型レシピ』が数多く存在している．そこで，ブログ型レシピからレシピの誕生・使用事由を，『材料・料理がある』『季節・気候に合う』などのカテゴリごとに抽出する．また，ユーザにその日の気分や出来事などの日記を入力させ，そこからそのユーザが料理を決める事由となるようなキーワードを抽出する．さらに，これらを対応付けることにより，その日のユーザに適したレシピをユーザに提示する．
キーワード

ブログ, レシピ, 料理, 周辺情報の抽出

1. は じ め に

ブログ型レシピには，レシピと併せてその日の生活の記録を書いたブログ型レシピが数多く存在しており，そのレシピが誕生

一般的な情報検索サービスの多くは，ユーザに検索対象であ

した事由あるいはそれを使用した事由が記載されていることがるオブジェクトの性質を表す単語集合をクエリとして入力させ，多い．しかしながら，レシピに直接的には無関係な事柄も数多

クエリに合致するオブジェクトを検索するものである．しかしく記載されているため，どれがレシピの誕生・使用事由に当たながら，ユーザは漠然とした検索意図はあるが，その検索意図

る文かを特定する必要がある．そこでまず，誕生・使用事由がに合致するオブジェクトが具体的にどのようなものなのかわか

どのようなものかを調査するため，レシピブログからランダム

らないことも多い．一方で，検索対象の Web ページには，オに 1,000 ブログを抽出し，そこからレシピの誕生・使用事由にブジェクトの情報に加え，なぜそのオブジェクトが誕生したか，

相当する文 1,808 文を抽出して手動で分類した結果，計 18 カ

あるいはそれを使用したかといった誕生・使用事由が書かれてテゴリに分類された．同じカテゴリに分類された文集合についいることがあり，これが今ユーザが抱えている検索意図に対応て，単語の出現傾向を分析したところ，ブログ記事の中から各する情報であると考えた．そこで本研究は，ユーザのそのときカテゴリに合致する事由文を検出するためには，構成する単語の思いや状況といったコンテキストをクエリとして入力させ，の種類を見ただけでは不十分であることが分かってきた．

そのコンテキストに合致した誕生・使用事由を持つオブジェク

そこでまず，ブログから日記部分だけを取り出すことを考えトを検索することで，ユーザの意図にあったオブジェクトを発た．ブログ型レシピにおけるレシピの記述形式は，COOKPAD

見することを目標にする．本研究では具体的な検索タスクとしなどの一般的なレシピポータルサイトにおける表記とほぼ一致て，ユーザ数が多く，ニーズも高い料理レシピを対象にする．

しており，特徴的である．そこで，COOKPAD のレシピ集合

レシピは，潜在的な検索要求はあるものの，オブジェクトので学習した言語モデル [3, 4] と COOKPAD の材料リストから

具体的なイメージを持つことが難しい検索タスクである．
「肉構築した辞書を用いて，ブログ記事からレシピを除外する．

じゃが」といった料理名や，「ゴーヤ」といった材料名が決まっ

次に，事由文かそうでないか，また各カテゴリの事由文かをていれば，現在 Web で提供されているサービスで十分解決可判断するための素性として，文を構成する単語の種類だけでな能である．しかし，「残業で疲れたときに元気が出るレシピを探く 4 種類の素性を考案し，それらを組み合わせた学習データをしたい」というように，レシピに対する漠然とした要求はあっ

もとに SVM による識別器を構築して各カテゴリの事由抽出精ても，具体的な料理を思いつくのは難しいことも多い．よって，度を評価する．この結果をもとに，各カテゴリの事由を，ブロ

そのときの状況をクエリとして，ユーザの要求にあったレシピ

ガーがブログにどのような形で表記するのかといった表現モデを発見できる検索サービスは有用であると考える．

ルについて議論を行う．

本研究では，このような検索サービスを実現するため，ブロ

最後に，被検者実験により，本手法で提案するアプリケー

グ型レシピを検索対象とする．レシピブログ [2] に代表されるションの有効性を評価する．事由文の誤抽出による評価の低下

を避けるため，事由文抽出は手動で行った結果を利用する．シ
ステムを利用するユーザのシナリオを 3 種類設定し，被験者に対して種類ごとにそのユーザの状況を説明する．さらに，レシピに対する AND 検索による結果と，提案手法によるレシピ検
索結果を比較し，その満足度を 5 件法により評価する．
以下，第 2 章で関連研究について紹介し，第 3 章で提案シス

図 1 レシピを選ぼうとするときの 4 つの要因

テムのコンセプトおよびユーザシナリオについて述べる．第 4章でレシピブログにおける誕生・使用事由の分析について述べ，
第 5 章でその分析結果を用いた手法を提案する．第 6 章で提案手法を評価するための実験計画について説明し，その結果を考察する．最後に，第 7 章でまとめと今後の課題について述べる．

2. 関 連 研 究
2. 1 レシピ検索
Web 上でレシピを検索できるサービスは数多く存在する．

図2

誕生・使用事由によるレシピ検索 全体の処理

ユーザ投稿型レシピを取り扱った代表的なサービスとして，Web ページに，必ずしもそれらの印象語が書かれているわけで

COOKPAD [5] や楽天レシピ [6] が挙げられる．このようなレはないため，それらの印象語を使って検索することができない

シピ検索サイトでは，食材名や料理名のような，レシピに記載という問題を，ウェブコミュニケーションデータに含まれるリされている情報を使ってレシピを検索するのが一般的である．

アクションを用いることによって解決している．また，食べロ

COOKPAD に登録されているレシピには，「このレシピの生いグ [11] では，「口コミ」や「評価」といったオブジェクトの周辺立ち」という，そのレシピを考案するに至った理由を記入する

情報も検索の対象とすることで，ユーザのニッチなニーズに適項目があるが，そこに書かれているのは「鱈を簡単に美味しくしたレストランを検索できるサービスを提供している．このよ食べたかったので」といった極めてシンプルな理由に限られ，

うなレストラン検索サイトでの「口コミ」や「評価」は，一般

そのレシピ制作者がどのような環境で何を思って作ったのかとユーザによる評価のため，必ずしも信頼できるとは限らないが，いったリアルな状況を窺い知ることは難しい．

大島ら [12] は，東京の寿司屋に対する一般ユーザによるオンラ

2. 2 レシピ検索・推薦

インレビュー情報に対し，HITS アルゴリズムを基にしたアル

食材名や料理名のようなレシピに記載されている情報からでゴリズムを適用することによって，専門家による評価情報と似はなく，レシピ検索者の嗜好や気分，食材の残り具合からレシ
ピ検索を可能とする研究も数多くある．上田ら [7] は，食材に対する好き嫌いが食事に対する嗜好の一部を構成していると考たような寿司屋のランキングを行う手法を提案している．

3. 誕生・使用事由によるレシピ検索

え，ユーザのレシピ閲覧および調理履歴から，好きな食材・嫌本章では，ブログ型レシピを用いた誕生・使用事由によるレいな食材を推定し，それらを基にレシピに対して得点付けを行

シピ検索のコンセプトおよびユーザシナリオについて述べる．

うことで，レシピを推薦する手法を提案している．森下ら [8]3. 1 誕生・使用事由によるレシピ検索のコンセプト

は，生活者の気分に合わせて献立を提案し購入すべき食材の決

調理者がレシピを選ぶ事由には，図 1 で示した 4 つの要因が定を支援するシステム「気分による献立検索システム」を研究あると考える．

開発し，「時間」「味」といった 6 つの気分検索軸の重要度を評価（ 1 ） 料理時の環境している．また，一回の料理で使い切れない材料を効率よく活用するため，木原ら [9] は，「一週間」など一定期間内に食材を使い切ることができるようなレシピ群を推薦する手法を提案している．しかしながら，これらのようなレシピ検索・推薦シス
テムは，献立を決める際の嗜好・気分・食材の残り具合という事由それぞれについては解決できるが，献立を決める事由はこれ以外にもあり，かつ，その事由は一つではなく複合的である．

2. 3 オブジェクトの周辺情報による検索
本研究は，なぜそのレシピが誕生したのか，なぜそのレシピを使用したのかといった，レシピにまつわる周辺情報を使った食材の有無，調理器具の有無，時間的な余裕の有無など（ 2 ） 調理者の内的欲求
生理的な欲求（体調の良し悪し），嗜好など（ 3 ） 経験
他者から得た情報（うわさ，ニュース），自分の経験など（ 4 ） 他者からの報酬
料理を食べる人からの報酬（子供が喜ぶ），第三者からの報酬（レシピコンテスト）など
これらの要因は，ブログ型レシピから誕生・使用事由を抽出する際の判断基準となるものである．

レシピ検索を可能とすることを目的とするが，このように検ブログ型レシピのブロガーは，ブログにレシピを載せる際，索対象のオブジェクトにまつわる周辺情報によりオブジェクト

それと併せて図 1 に示すような要因を日記部分に記しているこを検索する手法は他の分野で様々なものが提案されている．莊

とが多い．一方でレシピを検索したいユーザも，図 1 のような司ら [10] は，「面白い」や「泣ける」といった印象語に適した要因を持っており，よってユーザにコンテキスト情報を入力させれば，その中に要因が記されることが期待される．そこで図2 に示す提案手法により，ブログの日記部分と，レシピ検索のユーザに入力させたコンテキスト情報から，それぞれ要因を表していると思われる文を自動抽出し，カテゴリごとに対応付けることにより，その日のユーザが持つ漠然とした要因に適したレシピを検索できる手法を提案する．

3. 2 ユーザシナリオ
以下のようなユーザがいるとする．
就職して半年，初めて一人暮らしをしたユーザは，料理や洗濯，掃除などをほとんどしたことがなく，まだ慣れない．接客業をしているユーザは，クリスマス前のため忙しく，ここ最近休みなく働き通しである．22時頃帰宅したユーザは晩ごはんをまだ食べていない．
普段から出費を抑えているユーザは．疲れていても簡単に料理でき，かつ元気が出るような料理を知りたい．

図 3 各事由カテゴリの出現率（図中の英字は表 1 の ID に対応）

このような状況を説明したコンテキスト情報を提案手法によるレシピ検索システムに入力すると，システムは「疲れている」

図 4 1 つのブログ中に含まれる事由数別のブログの割合「普段から出費を抑えている」「簡単に作れる」「元気が出る」
といったレシピ使用の事由となる情報を自動抽出する．システ
ムは，ユーザのレシピ使用事由と同様の事由を持つレシピを，
そのレシピの誕生・使用事由文とともにユーザに返す．ユーザ
はレシピだけでなく，そのレシピの誕生・使用事由文も見ることができ，その事由は今のユーザの状況と同様のものであるため，そのレシピに対して親近感がわき，「今の自分と同様の状況であった人が作ったあるいは使ったレシピなら自分も作ってみ
ようかな」とユーザは思うと考える．

（ 3 ） 各事由が表 1 の中のどのカテゴリに属するか選択する（複数選択可）4. 3 分 析 結 果
各事由カテゴリの出現率は図 3 のとおりである．最も多いのは「材料・料理がある」であり，全体のおよそ 2 割を占める．
また，上位 4 つのカテゴリが全体の 6 割以上を占めており，これらのカテゴリが特に重要であると考えられる．
また，1 つのブログ中にいくつの事由が含まれるか調べた結果を図 4 に示す．この図によると，全体の半分以上はレシピの4. レシピブログにおける誕生・使用事由の分析
本章では，ブログ型レシピにおける誕生・使用事由の出現傾向を分析する．

4. 1 データセット
日々の料理を主題としたブログが数多く登録されているポータルサイト「レシピブログ」を対象とする．ブログ内でレシピを紹介しているページの内，2012 年 11 月 1 日から 2013 年 10月 31 日までの 1 年間に投稿されたアメーバブログ （注 1） 記事

52,369 件をデータセットとする．
4. 2 分 析 方 法

誕生・使用事由を 1 つも含まないことがわかる．これは，各文が誕生・使用事由かどうかを考慮せずに，単にレシピに併記された日記に対して検索を行うだけでは，全く無関係なレシピが見つかってしまう可能性が高いことを示唆している．
さらに，各文にいくつの事由カテゴリが当てはまったか調べたところ，1 つ 92.8%，2 つ 6.86%，3 つ 0.387%，4 つ以上なしという結果であった．9 割以上は文によって排他的にカテゴ
リが対応付けられたことから，このようなカテゴリ分類は妥当であると言える．

5. 誕生・使用事由によるレシピ検索手法

無作為に選んだ 20 件のブログ記事からレシピの誕生・使用事由を含む文を抜き出し，それらを図 1 の 4 つの要因に従って，できるだけ詳細に手動でクラスタリングした結果，表 1 で示す

18 種類のカテゴリが得られた．
そこで，別途無作為に選んだ 2,074 件のブログ記事の内，レシピの誕生・使用事由を 1 つ以上含むブログ記事 1,000 件を 9
名の評価者に渡し，各ブログ記事に対して，以下の要領でカテゴライズしてもらった．
（ 1 ） 食材リストおよび調理手順から構成される「レシピ」部
分とそれ以外の「日記」部分に各文を分ける（ 2 ）「日記」部分から「レシピ」の誕生・使用事由を含む文を見つける（複数選択可）

本章では，提案システムを実現するための手法を述べる．

5. 1 処理の概要
本節では，誕生・使用事由によるレシピ検索を実現するための処理の概要を述べる．全体の処理の流れは図 2 に示したとおりである．

Step1: ブログ記事からの日記文抽出
ブログ文書に対し，COOKPAD [5] から収集したレシピの手順説明文から構築した言語モデル [3, 4]，および材料情報から構築した辞書を用いて，日記部分のテキストの抽出を行う．

Step2: 誕生・使用事由の抽出とカテゴリ分類
識別器を用いて，Step1 で得た日記文から事由カテゴリごとに事由文を自動抽出する．また，ユーザが入力したコンテキ（注 1）：http://ameblo.jp/

ストに対しても同様にして事由文を抽出する．

要因

ID
a
b
c
d
料理時の環境efghi
調理者の内的欲求
j
k
l
経験
m
n
o
p
他者からの報酬qr

表 1 誕生・使用事由のカテゴリ一覧
カテゴリ名
事由の実例文材料・料理がある「我が家にカボチャがゴロゴロとたくさん」
材料・料理がない「あいにく、いつもストックしてある、デミグラスソースがなかった」
調理器具がある「新しくキッチングッズを買って、早く試してみたくて」
調理器具がない「うち、それ用のケーキスタンドがないんです！
（汗）」
時間的な余裕がある「子どもたちがいないので作れるのかも（笑）」
時間的な余裕がない「そんなわけで、バタバタしていたため、」
季節・気候に合う「朝は寒くて布団から出るのがつらい。」
イベントがある「これは先日友達が来てくれた時にちゃちゃっと作った」
調理者の嗜好・欲求に合う「お餅が食べたくなっちゃったワン♪」
調理者の気分・体調に合う「なんとな〜くやる気が出ない時」
調理者の体験・経験から「母がよく蒸しパンを作ってくれました」
食べる人の体験・経験から「「レタスでサラダを包むと美味しいね〜」と。。。」
材料と材料の相性が良い「やっぱり、トマトソースに、なすはあいます」
材料と料理の相性が良い「新タマ、サラダにバッチリ！」
料理と料理の相性が良い「そんなとん平焼きを今回はトーストの上に乗っけちゃいました。」
食べる人の嗜好・欲求に合う 「娘に夏からずっとせがまれていた」
食べる人の気分・体調に合う 「主人も娘も風邪気味です」
モニター・レシピコンテスト 「すき家の牛丼の具をモニターとして頂きました。」

Step3: ユーザのコンテキストに適合する事由を持つレシピのら抽出した 390,427 種類の材料名から材料名辞書を構築す

Step2 で得た，各ブログから抽出した事由文集合と，ユーザる．この辞書では，例えば「にんじん」「ニンジン」「人参」の日記から抽出した事由文集合に対し，カテゴリが同じで，「☆人参」などを全て区別している．以降，この材料名辞

かつ事由文が類似しているものを見つける．その数が多いブ

書を ingr dict と表す．もし文を構成する単語のほとんどログほど，ユーザのコンテキストに合致したレシピであるとがこの辞書に登録されたものであるならば，その文は材料考える（本研究ではこれを適合度と呼ぶことにする）．適合部分である可能性が高いと考えられる．

度が高いもののうち上位 K 件を検索結果として出力する．

••

材料部分の文特徴を表すモデル：名詞・補助記号・全角ス

5. 2 ブログ記事からの日記文抽出

ペースの現れやすさ

ブログ型レシピの本文は，以下のように分類できる．

材料部分には，「玉ねぎ」「人参」のような材料名だけでな

レシピ部分 (recipe)

く，「☆砂糖，☆醤油」というように材料の集合を補助記号– 材料部分 (ingr)・
・・レシピで使用する材料のリストがで参照したり，「玉ねぎ １玉」というように全角スペース

書かれた部分•COOKPAD [5] に掲載されている 422,150 件のレシピか検索を間に挟んだりすることが多いという特徴がある．
『名詞・– 手順部分 (proc)・
・・レシピの調理手順が書かれた部分

補助記号・全角スペース』の 3 種類の品詞を ingr class，

日記部分 (diary)・
・・レシピ部分以外

それ以外の品詞を not ingr class と表す．

レシピの誕生・使用事由が書かれているのは日記部分であり，以上の 3 種類のモデルを用いて，以下で述べる 2 段階の処理

レシピ部分に現れることはない．よって，もし高い精度で日記により日記部分を抽出する．

部分とレシピ部分を切り分けることができるなら，レシピ部分

第 1 段階：文単位の判定から誤って事由文を誤抽出することがない．そこでブログ型レ

ブログ記事中の各文を，レシピの手順部分，レシピの材料

シピから事由文を抽出するための前処理として，日記部分とレ

部分，日記部分のいずれかに分類し，レシピの手順部分とレ

シピ部分の切り分けを行う．

シピの材料部分にはラベル recipe を，日記部分にはラベル

まず，日記部分の抽出を行う前準備として，レシピ部分の特徴を表すモデルを以下のようにして構築した．

•

日記部分にレシピの説明を書く際に材料名を書くこともあ

手順部分の文特徴を表すモデル：3-gram 言語モデル

るため，文中に出現する単語が材料名辞書に存在することが

COOKPAD [5] に掲載されている 100,000 件のレシピかわかっただけでは，その文がレシピの材料部分であるとは言ら抽出した 497,536 文の調理手順文に対し，形態素解析器

い切れない．そこで，材料部分の文特徴に合致するかどうか

kytea [13] を使って単語分割したうえで構築された 3-gramも判定することで，この問題を解決する．

言語モデル [3, 4] を用いた．以降，この言語モデルを LM（ 1 ） 各文 s に LM を適用してエントロピー HLM (s) を計で表す．この LM により，文の相対エントロピーを算出す
ると，COOKPAD と似た記述形式である手順部分は言語モデルによく適合するためエントロピーが低くなり，エントロピーの大きさによって，その文が手順文らしいかどう•

diary をそれぞれ付与する．

算する．
（ 2 ） HLM (s) が 閾 値 proc threshold 以 下 の 文 に ラ ベ ル

recipe を付与する．
（ 3 ） HLM (s) > proc threshold であった文 s を形態素解かを判定することが可能であると考えられる．

析し，単語列 w1 , ..., wn , ..., wN ，およびそれに対応す

材料部分の文特徴を表すモデル：材料名辞書

る品詞列を得る．ここで，N は文 s を形態素解析した

結果得られた単語数を表す．以降で行う繰り返し処理

分類可能であると想定する．
事由文は，そのカテゴリにかかわらず，そうでない文とではのため，test = w1 ，i = 1 と初期化する．
（ 4 ） 材料名辞書 ingr dict 中に test が存在するか調べる．

言語的な特徴が異なるならば，すべてのカテゴリの事由文をま（5） •材料名辞書に存在する場合

とめて識別器を構築した方が，多くの学習データを用意でき，

文 s に つ い て ，ingr class に 含 ま れ る 品 詞

より高い精度で事由文を抽出できると考えた．そこで，第 1 段の数を ingr class num，not ingr class に含ま階で事由かどうかを判別する識別器を用いて事由文を抽出した

れ る 品 詞 の 数 を not ingr class num と す る ．

あと，第 2 段階で抽出された事由文がどの事由カテゴリに属す

ingr class num/not ingr class num の 値 が 閾るか分類する識別器を適用する．

値 ingr threshold 以 上 な ら ば ，文 s に ラ ベ ル••

事由かどうかを判別する識別器

recipe を付与する．

第 4 章で行った分析により得た事由文を正例，それ以外の材料名辞書に存在しない場合

日記文を負例とした 2 値分類器を構築する．正例は 1,808

もし i が N に等しければ，(6) へ進む．そうでな文であるのに対し，負例の文数は，正例の数よりも非常

ければ i に 1 を加えて test の末尾に wi を追加し，に多いため，これらすべてを使って識別器を構築すると(4) に戻る．

データ不均衡による偏りが生じる．よって負例のデータ数
が 1,808 文になるようアンダーサンプリングした．識別器（ 6 ） ラベルが recipe でない文全てに対してラベル diary

は SVM(Support Vector Machine [14]) を用いた．これをを付与する．
第 2 段階：連続文に対する判定

is reason svm とする．

レシピ部分は，その間に日記文を挟むことなく，ひとつづ•事由カテゴリに分類する識別器

きにつなげて記述するのが一般的である．よって，周辺の文学習データが少ないと，識別器の識別性能は大きく低下すのラベルが recipe なら，その文のラベルも recipe である可る．そこで，本研究では，表 1 の 18 カテゴリの内，第 4

能性が高い．そこで，第 1 段階で文単位で得た判定結果をも章で行った分析により得たデータ数が 100 文以上あったカとに，文のつながりやすさを考慮して日記部分を抽出する．

テゴリ a,g,h,i,k,m,p,r の 8 カテゴリと，それ以外の全カテ

以降，ブログ記事 B に書かれている各文を si (1 <
=i<
= M)

ゴリ (データ数が 100 文未満のカテゴリ b,c,d,e,f,j,l,n,o,q)とし，第 1 段階で得た文 si のラベルを labeli とする．ここをまとめたもの，の計 9 種類のいずれかに分類する 9 値分

で，M はブログ記事 B に含まれる文の数である．

類器を構築する．データ数が 100 文以上あったカテゴリの関数 is recipe()，is diary() を次のように定義する．
{
1 (labeli が recipe ならば)is recipe(labeli ) =0 (上記以外){
1 (labeli が diary ならば)is diary(labeli ) =0 (上記以外)（ 1 ） 各文 si に対して，その直前直後の BA N U M 文を含む文集合について，recipe とラベル付けされた文の数 recipe numi ，diary とラベル付けされた文の数

diary numi をそれぞれ次のように算出する．
recipe numi =

NUM
BA∑

diary numi =たことから，各分類のデータ数はそれぞれ 108 文になるようアンダーサンプリングする．9 値分類器には SVM を用いた．これを categorize svm と表す．

•

アルゴリズム（ 1 ） 5. 2 節 で 日 記 部 分 と 判 別 さ れ た 各 文 を 識 別 器

is reason svm に入力し，レシピの誕生・使用事
由に相当する文かどうか判別する．
（ 2 ） (1) で 事 由 文 と 判 別 さ れ た 文 を 9 値 分 類 器

categorize svm に入力し，上で述べた 9 種類の事
由カテゴリのうちどれに属するかを分類する．

is recipe(labeli+j )5. 4 ユーザのコンテキストに適合する事由を持つレシピのis diary(labeli+j )本節では，ブログ記事と，ユーザのコンテキスト情報に対し

j=−BA N U M
BA∑
NUM

中で最も文数が少なかったカテゴリの文数は 108 文であっ検索

j=−BA N U Mて，5. 3 節で述べた手法によりカテゴリごとの事由文を抽出し（ 2 ） もし，diary numi > recipe numi ならば，文 si はたあと，各ブログ記事が，ユーザのコンテキスト情報から抽出

レシピ部分よりも日記部分に多く囲まれていることかした事由文にどの程度合致するかを表す適合度を算出することら，日記部分として抽出する．

により，ユーザのそのときのコンテキストに合ったレシピを検

5. 3 誕生・使用事由の抽出とカテゴリ分類

索する手法を述べる．

本節では，5. 2 節で日記部分として抽出されたブログ記事中

5. 3 節で述べた手法により，ユーザの日記から X 個の事由文の文と本検索システムのユーザが入力したコンテキストのそれが抽出されたとし，その各事由文を rx ，そのカテゴリを cx とぞれに対して，レシピの誕生・使用事由に相当する文をカテゴする（ただし 1 <=x<= X ）．また，同じく 5. 3 節の手法によリ別に抽出する処理について述べる．なお，4. 3 節で行った調りブログ記事 B の日記部分から Y 個の事由文が抽出されたと査によれば，事由文の 92.8%はカテゴリを 1 つしか持たないこし，その各事由文を RyB ，そのカテゴリを CyB と表す（ただしとから，ここでは事由文はいずれか 1 つのカテゴリに排他的に

1<=y<= Y ）．

各事由文 rx および RyB に対して，その文を構成する単語とその頻度による行列から文書ベクトルを生成する．これをそれ
ぞれ r x ，RBy とする．
アルゴリズム

表 2 TP, TN, FP, FN の定義

正解データ
日記 レシピ
自動判別 日記
TPFP
結果
レシピ FNTN（ 1 ） 一致度 scoreBx,y を以下のようにして計算する．

 r x · RBy
(cx と CyB が等しいとき)
B
B
scorex,y =
|r
||R
x
y |


 0
(上記以外)
ただし，| · | はベクトルの大きさを表す．
（ 2 ） ブログ記事 B のユーザのコンテキストに対する適合度スコア BScoreB を以下のようにして計算する．
X ∑Y∑

BScoreB =scoreBx,yx=1 y=1score non zero numB

た だ し ，score non zero numB は ，1 <
= x <
= X，
B
1 <
= y <
= Y について，scorex,y の値が 0 でないものの数を表す．
（ 3 ） BScoreN が高い順から上位 K 件のブログ記事と，そのブログから抽出された事由文およびそのカテゴリを，検索結果としてユーザに提示する．

6. 実験と考察

図 5 日記抽出結果の F 値の変化

す．この図によると，BA N U M = 4．proc threshold = 3.6，

ingr threshold = 2.1 のとき，F 値が最も高く 0.897 であった．また，このとき適合率は 0.908，再現率は 0.887，正解率は0.876 であった．BA N U M の値が 0 のとき，注目している文だけでレシピ部分か日記部分かを判別することになるが，その結果よりも，1 以上のときの方が F 値が高いことから，ブログ
記事中においてレシピはまとまって記述されることが多く，文の連続性を考慮した方が精度が向上することがわかる．
次に，誤判定された文にはどのようなものがあるか分析した．
文例 A「（３）刻んだ甘納豆を混ぜて出来上がり。」はレシピ

本章では，第 5 章で述べたアルゴリズムの精度評価，および第 3 章で述べたレシピ検索システムの評価を行う．データセッ
トは第 4 章で行った分析で収集したものを用いる．

6. 1 ブログ記事からの日記文抽出処理の精度評価
第 4 章で分析に用いた，事由文を一文でも含むブログ記事

1,000 件，計 50,298 文の各文に対し，5. 2 節で述べたアルゴリズ
ムを用いて日記部分かレシピ部分かを自動判別した結果を，評価者によって手動で判別された結果を正解データとして評価した．同時に，5. 2 節で述べた 3 つのパラメータ (proc threshold，

ingr threshold，BA N U M ) についても，最適な値を探索した．この処理の目的は，ブログから日記部分を抽出することである．そこで，自動判別結果と正解データの組み合わせに対して，True Positive(TP), True Negative(TN), False Posi-tive(FP), False Negative(FN) を表 2 のように定義し，そこから日記抽出についての適合率 (P recision)，再現率 (Recall)，F 値 (F -measure)，および全体の正解率 (Accuracy) を以下に示す式に従って計算した．

TP
TP
P recision =Recall =TP + FPTP + FN
2 · P recision · Recall
F -measure =P recision + Recall
TP + TN
Accuracy =TP + FP + TN + FNの手順部分と判断されるべき文である．しかしながら，言語モデルの構築に用いた COOKPAD の手順文は，「１）」「（１）」「１．
」のような手順番号がレシピの整形フォームにより与えられていたため，学習に用いた文集合には付いていなかった．そのため，文例 A のように手順番号が文頭に付いた文は誤判定される傾向があったと考える．また，文例 B「生クリームがなくても、卵の良さを感じるカルボナーラです。」はブログ記事中に載せるレシピの特徴を述べるために書かれた文で，日記部分と判断されるべき文である．しかしながら，このような記述は

COOKPAD のようなユーザ投稿型レシピでは，手順部分に載せられることもあり，そのような文集合で学習した言語モデル
が誤ってレシピの手順部分であるとみなしたと考えられる．文
例 A のような問題に対しては，文頭に付いた手順番号を予め除去するといった手段により改善可能であると考えている．また，文例 B のような問題に対しては，5. 2 節で述べた連続文に対する判定を行うアルゴリズムを改良することにより改善可能であると考えており，これらは今後の課題である．

6. 2 誕生・使用事由抽出処理とカテゴリ分類処理の精度評価
本節では，5. 3 節で述べたように，入力文が事由文かどうかを判別する識別器 (is reason svm)，事由カテゴリに分類する
識別器 (categorize svm) についてそれぞれ 10 分割交差検定
を行い，F 値，適合率，再現率，正解率を算出することで精度評価は以下のように行った．BA N U M を 0 から 7 まで 1 刻を評価する．識別器は，LIBSVM [15] による SVM(Support

みで変え，そのそれぞれの BA N U M に対して日記抽出結果

Vector Machine) を用い，カーネルには線形カーネルを，パラの F 値が最も高くなるときの proc threshold，ingr threshold

メータには LIBSVM のデフォルト値（C-SVC のパラメータ C

を 0 から 5 まで 0.1 刻みで調べた．その評価結果を図 5 に示の値は 1）を用いる．

事由文かそうでないかの判別，および事由カテゴリの分類には，その文を構成する単語の組み合わせが重要であると考えた．

表3

入力文が事由文かどうかの判別に用いる素性 1〜4 の有効性
素性条件

有効数 (最大値 8)

素性 1：各単語を原形に戻し，原形が同じ単語を同一と扱う

8

そこで，学習用データに出現する全単語の種類について，種類

素性 2：同じ単語でも品詞が異なるものは異なる単語として扱う

7

別の出現数からなる文書ベクトルを生成し，さらに以下に示す

素性 3：レシピの固有表現の出現数3

素性 4：理由を表す語の出現有無情報を付加する

6

4 つの素性を考案した．
素性 1：各単語を原形に戻し，原形が同じ単語を同一と扱う•

例）「使って」→「使う」

例えば，「使わ (ない)」「使い (ます)」「使っ(て)」「使う」「使
え (ば)」「使おう」などの活用形の違いは，いずれも本研究で扱うカテゴリ分類における事由文の意味を表現する上で大きな差はないと考えた．これらは原形に変形すると全て「使う」になり，同一に扱えるようになる．よって形態素解析器

表 4 事由カテゴリに分類する識別器について各カテゴリにおいて重みが大きな語
ID
a
g
h
i
k
m
p
r

カテゴリ名
材料・料理がある
季節・気候に合うイベントがある
調理者の嗜好・欲求に合う
調理者の体験・経験から
材料と材料の相性が良い
食べる人の嗜好・欲求に合う
モニター・レシピコンテスト

重みの値が大きな語の例
頂く，余る，届く，リメイク，たくさんだ
旬，夏，菜の花，寒い，季節，梅，今，梅雨
ハロウィン，誕生日，金曜日，パーティー，お萩
大好きだ，（し）たい，めっちゃ，私，気に入る
くれる，店，知る，作れる，母組み合わせる，相性，合う，と，加える
リクエスト，すぎる，旦那，娘，大好きだモニター，さん，アレンジ，コンテスト，レシピ

JUMAN [16] を使って単語を原形に戻し，その種類別出現数

るため，事由文についての F 値をもとに比較実験を行った．そからなる文書ベクトルを素性とする．なお，この素性 1 を用の結果を表 3 に示す．事由文かどうかを判別する上でいずれのいない場合は，単語をもとの表記のままで生成した文書ベク

素性が有効であったかを調べるために，素性 n の有効数を計算

トルを素性とする．
素性 2：同じ単語でも品詞が異なるものは異なる単語として扱う•

例）「楽しみ」→「楽しみ名詞」

した．ここで，素性 n の有効数は，素性 n を適用したときの方が適用しなかったときよりも F 値が大きくなるパターンの数と定義する．単語の活用形を原形に戻す素性 1 の有効数が高い「楽しみ」という単語は，名詞の場合は『たのしいと感じるこことから，各単語を原形に戻した方が，原文のまま使うよりもと．また，たのしむ物事．趣味や娯楽．
』という意味だが，形有効であると言える．これは，単語の活用形が異なっていても，

容動詞の場合は『たのしいこととして期待すること．また，そ事由文かそうでないかを判別するという目的においては，違いのさま．
』というように品詞が変わると意味も変わる．このよがないことを意味している．また，表記と品詞を組み合わせて

うに，単語が表す意味は異なるにもかかわらず，表記は同じ単語を表す素性 2 の有効数が高いことから，表記は同じであっであるといったことがある．事由カテゴリを判別する上では，てもその単語が表す意味は異なるようなものがあり，品詞の違意味の違いは重要であるため，形態素解析器 JUMAN [16] をいを区別することによってそれらを判別でき，その結果精度が使って単語の品詞を特定し，単語だけでなく，その品詞との向上したと考えられる．さらに，条件 1,2 に次いで条件 4 の有組み合わせの種類別出現数からなる文書ベクトルを素性とす

効数が高いことから，理由語が文中に出現しているかどうかをる．なお，この素性 2 を用いない場合は，単語の種類別出現考慮することで，事由かどうかを判別する精度が高くなると考数からなる文書ベクトルを素性とする．

えられる．すなわち，事由文には，そうでない文に比べて，理素性 3：レシピの固有表現の出現数•例）「大根/F と 鶏肉/F を 土鍋/T に 入れ る」→ F の出現数：2，T の出現数：1

由語が使われやすいと考えられる．一方，条件 3 の有効数は低い．これは，食材や道具を表す単語は事由文かどうかに関係なく出現していることを示唆している．

表 1 の事由カテゴリにおける ab「材料・料理がある/ない」，

次に，事由文と判定された文がどの事由カテゴリに属するか

cd「調理器具がある/ない」，および m「材料と材料の相性を分類する識別器 categorize svm について，各カテゴリにおが良い」は，文中に食材名や料理名，調理器具・器材名が現いて重みが大きな語はどのようなものかを調べた．その結果をれるかどうかが有効な特徴であると考えた．そこで，[17] で表 4 に示す．カテゴリ a『材料・料理がある』では「頂く」「余提案されたレシピに関する固有表現認識器を用いて，単語にる」など，材料や料理がいまそこにあることを表すような語の食材 (F) や道具 (T) といったタグを付与し，入力文中に出現重みが大きくなっていた．カテゴリ h『イベントがある』では，する F と T の数を素性とする．

イベントを表す語だけでなく，「お萩」のようにあるイベントで

素性 4：理由を表す語の出現有無情報を付加する•例）「今日は寒かった ので，お鍋にした．
」→ 理由語の有無：1

よく食べられるものを表す語の重みも大きくなっていた．カテ
ゴリ i,p はどちらも『嗜好・欲求に合う』であり，「大好きだ」のように好みを表す語の重みが大きくなっていた．カテゴリ i は

A の内容が B の内容の原因・理由であることを表すとき，A『料理を作る人』にとってなので，「私」のように第一人称を表は B の理由節であるという．主節と理由節を結びつける用語

す語が，カテゴリ p は『料理を食べる人』にとってなので，「旦には，「から」「ので」「ため」「おかげ」「せい」がよく使われ

那」「娘」など料理を作る人のまわりにいる人を表す語の重みる．このような用語は，同じく理由を示す事由文にはよく出がそれぞれ大きくなっていた．今後の課題として，これらの重現するが，事由でない文にはあまり出現しないと考え，これ要語を識別器の素性に加えることで分類精度を向上させたい．

らの用語の出現の有無を素性とする．

6. 3 誕生・使用事由によるレシピ検索の有用性評価

まず，入力文が事由文かどうかを判別する is reason svm を

本節では，被検者実験により，誕生・使用事由によるレシピ

構築するためには，素性 1〜4 のどれが有効であるかを検証す

検索の有用性を評価する．本実験では，第 4 章の分析で用いた

表 5 誕生・使用事由によるレシピ検索とレシピに対する AND 検索の満足度平均値と最大値（最大値は括弧内に記載）
ユーザシナリオ ID 誕生・使用事由によるレシピ検索 レシピに対する AND 検索*

1

2.48 (4.40)

2.46 (4.00)

2*

3.48 (5.00)

1.70 (2.80)

3**1.50 (5.00)

2.00 (5.00)

全体の平均 **

2.49 (4.80)

2.05 (3.93)

各被験者における検索結果 10 件の満足度の平均値が，検索システム間で 0.1%水
準で有意差が見られた．

**

各被験者における検索結果 10 件の満足度の平均値が，検索システム間で 1%水準で有意差が見られた．

力したコンテキスト情報から，識別器を用いることで事由文の抽出およびカテゴリ分類を行い，事由文およびそれが属するカ
テゴリをもとに，今のユーザの状況に合ったレシピを検索する手法を提案した．
今後の課題として，6. 2 節で得た各事由カテゴリの重要語を識別器の素性に導入し，カテゴリ分類精度を向上させたい．
謝辞 本研究の一部は，文科省科研費基盤 (A)「ウエブ検索の意図検出と多元的検索意図指標にもとづく検索方式の研究」

事由文が一つ以上含まれているブログ記事 1,000 件を検索対象（24240013，研究代表者：田中克己），および文科省科研費若とし，事由文の誤抽出による評価の低下を避けるため，事由文

手 (B)「調理をしながら調理法を説明した音声からのレシピテ

抽出は手動で行った結果を利用する．

キストの自動生成」(23700144，研究代表者：山肩洋子）なら

3. 2 節で示したようなシステム利用者のシナリオを 3 種類用

びに文科省科研費基盤 (C)「グラフ理論に基づく自然言語解析

意し，5 名の被験者に見せて自分が今そのような状況にいるとの定式化」（23500177，研究代表者：森信介）によるものです．

考えてもらう．次に，シナリオをもとに作成した日記クエリをここに記して謝意を表します．

5. 4 節で述べたレシピ検索アルゴリズムに入力し，検索結果がどの程度満足するものであったか評価してもらう．さらにレシピに対する AND 検索による結果も同様に評価してもらい，誕
生・使用事由によるレシピ検索結果と比較する．1 つのクエリにつき検索結果上位 10 件のそれぞれに対して，5 件法で評価してもらい，平均値と最大値を算出した．その結果を表 5 に示す．
ユーザシナリオ 2 に対する評価では，誕生・使用事由によるレシピ検索の方が，レシピに対する AND 検索よりも 2 倍以上
高い満足度が得られた．ユーザシナリオ 2 は「クリスマスパー
ティーの料理を探している人」を想定したものだが，誕生・使用事由によるレシピ検索で満足度が高かった検索結果は，クリスマスパーティーをしたときに作った料理を紹介したものであった．一方，ユーザシナリオ 3 は「さんまを使った料理を探している人」を想定したものだが，レシピに対する AND 検索の方が満足度平均値は高かった．このことから，「クリスマス」「パーティー」のようにレシピ中には直接書かれないような語をクエリとする検索では，誕生・使用事由によるレシピ検索結果の方が高い満足度を得られるが，「さんま」のような食材名は
レシピ中に現れることがあり，レシピに対する AND 検索でも十分な結果を得ることができると考える．
しかしながら，全体の平均をとると，満足度の平均値，最大値ともに誕生・使用事由によるレシピ検索の方が高いという結果を得た．特に，満足度の最大値の平均値は 4.80 と高いことから，検索結果上位 10 件のうち少なくとも 1 件は，ほとんどのユーザが満足するような結果であると言える．
今回の検索対象はブログ記事 1,000 件と少なかったが，対象記事数を増やすことでユーザビリティは向上すると考える．

7. まとめと今後の課題
本研究では，なぜそのレシピが誕生したのか，なぜそのレシ
ピを使用したのかといった情報に着目し，それをもとに検索できる手法を提案した．ブログ型レシピのポータルサイトである
レシピブログの記事を分析した結果，レシピの誕生・使用事由を 18 のカテゴリに分類することができた．
また，ブログ記事から日記部分を抽出し，それとユーザが入文

献[1] ヨ シ ケ イ 開 発 株 式 会 社.
夕 食 に 関 す る 意 識・実 態
調 査.
http://www.yoshikei-dvlp.co.jp/archives/001/
201311/2013.11.07 夫 婦 共 働 き 家 庭 の 夕 食 に 関 す る 意 識 調
査.pdf.
[2] アイランド株式会社. レシピブログ. http://www.recipe-blog.
jp/.
[3] 森信介, 山地治. 日本語の情報量の上限の推定. 情報処理学会論文誌, Vol. 38, No. 11, pp. 2191–2199, 1997.
[4] Shinsuke Mori, Tetsuro Sasada, Yoko Yamakata, andKoichiro Yoshino. A machine learning approach to recipe
flow construction. In Cooking with Computers, 2012.
[5] クックパッド株式会社. クックパッド. http://cookpad.com/.
[6] 楽天株式会社. 楽天レシピ. http://recipe.rakuten.co.jp/.
[7] 上田真由美, 高畑麻理, 中島伸介. レシピ閲覧・摂食履歴を用いた嗜好の抽出. Web とデータベースに関するフォーラム (WebDBForum 2011), 情報処理学会シンポジウムシリーズ, 3G-1-2,
2011.
[8] 森下幸俊, 中村富予. 気分による献立検索システムの検索軸の評
価とレシピを活用した食品販売機能の市場ニーズの評価 (データ工学). 電子情報通信学会技術研究報告: 信学技報, Vol. 112,
No. 75, pp. 79–84, 2012.
[9] 木原ひかり, 上田真由美, 宮脇佑介, 中島伸介. 食材の無駄を減らす料理レシピ群の推薦 (科学データストレージと応用処理システ
ム, e-science and big data, 一般). 電子情報通信学会技術研究
報告. DE, データ工学, Vol. 111, No. 361, pp. 37–42, 2011.
[10] 莊司慶行, 田中克己. 印象語をクエリとするリアクションに基づくウェブ情報検索. 情報処理学会論文誌, Vol. 52, No. 12, pp.
3515–3526, 2011.
[11] 株式会社カカクコム. 食べログ. http://tabelog.com/.
[12] 大島裕明, 田中克己. 東京の寿司屋に対するオンラインレビュー
情報の分析 (データ工学). 電子情報通信学会技術研究報告: 信学
技報, Vol. 112, No. 75, pp. 49–54, 2012.
[13] Graham Neubig, 中田陽介, 森信介. 点推定と能動学習を用いた自動単語分割器の分野適応. 言語処理学会第 16 回年次大会(NLP2010), 東京, Vol. 3, , 2010.
[14] Corinna Cortes and Vladimir Vapnik. Support-vector networks. Machine learning, Vol. 20, No. 3, pp. 273–297, 1995.
[15] Chih-Chung Chang and Chih-Jen Lin. Libsvm: a library forsupport vector machines. ACM Transactions on Intelligent
Systems and Technology (TIST), Vol. 2, No. 3, p. 27, 2011.
[16] 黒橋・河原研究室. 日本語形態素解析システム juman. http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN.
[17] 森信介, 山肩洋子, 笹田鉄郎, 前田浩邦. レシピテキストのためのフローグラフの定義. 情報処理学会研究報告. 自然言語処理研究
会報告, Vol. 2013, No. 13, pp. 1–7, nov 2013.