DEIM Forum 2014 F8-6

酷似レシピ抽出のためのクラスタリング手法の提案
花井 俊介†

灘本 明代†† 甲南大学知能情報学部 〒 658–8501 兵庫県神戸市東灘区岡本 8-9-1
E-mail: †{si071115,nadamoto}@konan-u.ac.jp
あらまし

近年，スマートフォンの普及により，「COOKPAD」や「楽天レシピ」などのユーザ投稿型のレシピ検索

サイトの利用者が増加してきている．このようなレシピ検索サイトでキーワード検索を行うと，酷似したレシピが数多く見つかる．酷似したレシピが多数存在することにより，ユーザが求めるレシピを検索することが困難になっている．そこで，本研究では各レシピに出現する調理法，料理名，食材，調味料に注目し，GibbsLDA++，RepeatedBisection を用いクラスタリングを行い，酷似したレシピを分類する．これにより，ユーザがレシピの検索結果を閲覧，比較する手間を省き，ユーザへの負担を減らすことを目的とする．
キーワード

酷似レシピ抽出，クラスタリング，GibbsLDA++，Repeated Bisection

1. は じ め に
近年，COOKPAD[1] や楽天レシピ [2] といったユーザ投稿

エリに対するレシピ検索結果のクラスタリング手法の考察を行う．具体的には，ユーザの入力したキーワードからレシピ検索を行い，その検索結果の各レシピのタイトル，スニペット，材型のレシピ検索サイトが普及しており，ユーザ数は年々増加し料，作り方，レシピの生い立ちを取得し，GibbsLDA++[5] とている．これらのレシピ検索サイトでは，膨大な数のレシピがRepeated Bisection[6] を用いてクラスタリングを行い，各々問

投稿されている．日本最大のレシピ検索サイト COOKPAD[1]

題点を洗い出すとともに，これら手法を比較し，適したレシピ

では，2013 年 12 月現在，161 万件ものレシピが掲載されていのクラスタリング手法の考察を行う．酷似したレシピ群を最適る．また，月間利用者は PC，モバイルを合わせて 2,600 万人にクラスタリングすることで将来的にユーザが酷似したレシピにものぼり，レシピ数はさらに増加している．そのため，「カを閲覧，比較する手間を省き，ユーザへの負担を減らすことがレー」や「アボカド」といった料理名や食材名でキーワード検可能となる．

索を行うと，数万件ものレシピが表示される．しかし，これら

以降，2 章では関連研究について述べる．3 章では，酷似レの検索結果には非常に酷似したレシピが数多く含まれる．これ

シピを実際にレシピ通りに料理を作り，試食した結果，ユーザらの酷似したレシピには，細かい部分では違いが見受けられるがどのように酷似したレシピであるかを判断するため比較調査

が，ほとんど同一の料理と言っても差し障りないものが多い．

を行った結果について述べる．4 章では，既存のクラスタリン

このように酷似したレシピが数多く存在することにより，ユー

グ手法を用いてクラスタリングを行うことで酷似レシピを抽出

ザの求めるレシピを検索することが困難になっている．

する際の問題点を洗い出す．5 章では，提案手法について述べ

ユーザがレシピ検索を行う場合，一般的な Web 検索に比べ，る．6 章では，提案手法の実験を行った結果について述べる．7

検索結果の上位が選ばれにくく，複数のレシピを比較する傾向

章では，実験結果に対する考察を述べ，8 章でまとめと今後のにある [3]．そのため，酷似したレシピが数多く存在すること

課題について述べる．

で，これらの酷似したレシピも比較しなければならない．しかしながら，酷似したレシピを比較する場合，レシピの違いを理

2. 関 連 研 究解するためにはそのレシピをよく理解する必要がある．これは，

COOKPAD[1] や楽天レシピ [2] のようなユーザ投稿型レ

料理に携わる人の約半数が「料理をすることが好きではない」，

シピサイトの他にも，マークアップを用いた Google のレシピ

あるいは「献立を考えることが面倒である」と感じている [4]検索システム [7] やブログ形式で書かれたレシピブログ [8] なことから，酷似したレシピを比較することはユーザにとって非どのレシピ検索サイトが存在するが，いずれの検索サイトにお常に面倒な作業であると考えられる．また，酷似したレシピをいても新着順や人気順などのソート機能が存在するのみで，共比較し，違いを理解しても，実際に調理してみると大きな違い

通点や相違点を提示する機能は存在しない．また，独自のレシがないことが多い．

ピを掲載しているネスレ バランスレシピ [9] やぐるなびレシピ

そこで，本研究では調理手順をみるのではなく，ユーザが検[10] ではメニューや調理法で絞り込むといった検索方法が存在索を行い，提示された各レシピのタイトルとスニペットを見た

するが，ユーザ投稿型のレシピサイトに比べ，レシピ数が非常状態で，違いを感じないようなレシピを酷似レシピと定義する．

に少ない．

そして，酷似レシピを抽出するはじめの一歩として，我々が定レシピ間の類似度に着目した研究として，以下のような研究義した酷似レシピの妥当性のユーザ実験を行うと共に，あるクがある．食材の重要度と食品群を考慮した福本らは，食材の分表 1 レシピの説明量の比較

量を食材の重要度で重み付けしてコサイン類似度を求め、食品群ごとの平均分量を用いて同様にコサイン類似度を合算した値

作り方

評価の平均

をレシピ間類似度とした [11]．また，苅米らは，レシピ間の類

簡潔に書かれたレシピ

6.88

詳しい・画像付きレシピ

7.68

似を算出する方法として，材料，手順，に着目し，コサイン距
離，DP マッチングを用いた [12]．
しかし，これらの従来の手法ではレシピの特徴を表している，

表 2 調理工程においての酷似箇所

表 3 試食時の酷似箇所

酷似箇所

割合（%）

レシピタイトルやレシピの説明については考慮されていない．

酷似箇所

割合（%）

切り方

58.3

味

85.7

そこで，本研究では材料，調理手順に加え，レシピタイトル，

焼き方

41.6

見た目

57.1

レシピの説明に着目し，クラスタリングを行い，酷似したレシ

手順

16.7

におい

7.1

ピを抽出する．

3. 酷似レシピの比較調査

83%となった．また，試食のみを行ったユーザの全員が酷似していると答えた．このことから，ユーザは作り方などの調理工

ユーザがどのように酷似したレシピと感じるかを判断する

程よりもその料理を食した結果，酷似していると判断している

ため，酷似したレシピの比較実験を行った．被験者はその料理と考えられる．調理工程で酷似していると感じた場合の酷似箇の作り方や材料などに先入観を持たない，料理初心者 17 名で所を答えた結果を表 2 に示す．表 2 より，調理工程では，「切り行った．12 名を 5 つのグループに分け，それぞれのグループご方」や「焼き方」などを挙げたユーザがほとんどである．このとに 1 組の酷似したレシピを調理した．また，ユーザ投稿型のことから，ユーザは調理方法が酷似している場合，そのレシピ

レシピサイトではユーザがレシピを投稿するため，レシピごとの酷似を感じると考えられる．また，試食した結果，酷似してに作り方や材料などの説明量が異なる．そこで，酷似レシピのいたと感じた場合の酷似箇所を答えた結果を表 3 に示す．表 3

比較調査には，説明が「簡潔に書かれたレシピ」，「詳しくかつより，試食時では味が似ていると答えたユーザは約 86%であっ

画像付のレシピ」を 1 つずつ選択した．また，5 名は調理にはた．このことから，ユーザは味が酷似している場合，その料理参加せず，試食のみを行った．比較実験の後，アンケートを実の酷似を感じると考えられる．このことから，食材の違いより施した．その手順を以下に示す．また，実験に用いたレシピのも味付けが似ていることが酷似レシピを判断する上で重要であ取得には COOKPAD[1] を用いた．

ると考えられる．

（ 1 ） 料理名から「照り焼き」「ガレット」，材料名から「アボカド トマト」「鶏肉 なす」「鶏肉 しそ」をクエリとして検索を行う．

4. 酷似レシピのためのクラスタリング実験
酷似レシピを抽出するために，既存の 2 つのクラスタリン（ 2 ）（1）で行った検索結果から酷似しているレシピを抽出

グ手法を用いてレシピのクラスタリングを行い，比較検討をすする．

る．そして，酷似レシピの抽出のためのクラスタリング手法の（ 3 ） 抽出したレシピから作り方が「簡潔に書かれているレ問題点を洗い出す．以下にその比較手順を示す．

シピ」と「詳しく書かれており，画像付きのレシピ」を 1 つず

（ 1 ） 複数の食材名をクエリとし，レシピ検索サイトよりレつ選択する．

シピ検索を行い，レシピを取得する．

（ 4 ） 作り方を把握しないために，「作り方が簡潔に書かれて（ 2 ） 取得した各レシピからレシピタイトル，スニペットをいるレシピ」から調理を行う．

取得する．

（ 5 ） 試食をする．

（ 3 ） 取得したデータをそれぞれ形態素解析を行い，取得し（ 6 ） アンケートの実施．

たデータに出現する名詞，動詞，接尾辞を抽出する．

試食のみに参加したユーザは（5），（6）のみを行った．それ（ 4 ） マッチングを行いレシピに関する語を抽出する．

ぞれのレシピの説明は十分だったかを 10 段階で評価した結果（ 5 ） (4) で抽出した語集合を用いて (1) で取得したレシピを表 1 に示す．表 1 より，作り方が「簡潔に書かれているレシ群に対してクラスタリングを行う．

ピ」と「詳しく書かれており，画像付きのレシピ」の説明に対

本研究では，クラスタリング手法に潜在的ディリクレ配する評価結果には大きな差がないことがわかる．このことより，

分法 (LDA: Latent Dirichlet Allocation) [13] の 1 つである

最低限の手順や材料の情報が掲載されていれば，文章量，画像

GibbsLDA++[5] と k = 2 とした時の K-means 法を繰り返しの有無にあまり依存しないと考えられる．また，今回は料理初行う Repeated Bisection[6] の 2 つの手法を用いてクラスタリ

心者を対象として行ったため，作り方が「簡潔に書かれている

ングを行い，酷似レシピのクラスタリングにおいて有用なクラレシピ」と「詳しく書かれており，画像付きのレシピ」の両レ

スタリング手法を検討する．また，ユーザ投稿型のレシピサイ

シピ共に，材料において「少量」や「適量」といった曖昧な表

トではユーザがオリジナルのレシピを投稿するため，レシピの現を用いているレシピを説明が不十分であると感じる傾向が強タイトルが「アボカドチーズトマト」のように複数の食材名やかった．また，調理工程，試食した結果，酷似していると感じ

料理名，調理法を羅列したものが多い．そのため，mecab[14]たかという項目では，調理工程が酷似していると答えたユーザ

や JUMAN[15] を用いて形態素解析を行うとレシピタイトルがは約 42%，試食した結果，酷似していると答えたユーザは約未知語となり，レシピに関する語として抽出されない．そこでる．今回，この反復回数は 1,000 とした．また，ハイパーパラ

本研究では，日本語形態素解析 API[16] を用いることで，レシメータである α，β には，GibbsLDA++[5] の基本設定値であ

ピタイトルから料理名，調理法，食材名，調味料名をそれぞれる α = 50/K ，β = 0.1 を用いた．

4. 2. 2 GibbsLDA++によるクラスタリング結果

取得した．

4. 1 データセット

今回，トピック分割数 N を 300 とし，クラスタリングを

実験データには COOKPAD[1] を用い，複数の食材名「鶏行った．トピックの上位 3 件を表 4 に示す．表 4 より，各トピッ

肉 キャベツ」をクエリとして検索を行い，8,562 件のレシピを

クのトピックワードの上位 3 件の値に大きな差がないことがわ

取得した．取得した各レシピに対して，上記の手順（2）〜（4）かる．Topic 3th では 1 位のワードの値のみ高くなっているが，を行い，レシピに関する語を取得し，これらのデータを用いて1 位のワードが「鶏」となっている．これはクエリである語のクラスタリングを行う．COOKPAD[1] ではコツ・ポイントと一つ「鶏肉」の表記揺れであると考えられ，取得したレシピのいう項目も取得できるが，作り方，調理法のコツ・ポイントで殆どに含まれる語であることから，特定の特徴をもつトピックあることや，他の食品への代替案の紹介であることが多く，そにはならなかった．また，各トピックのトピックワードの上位のレシピの料理の特徴に成り得ないため，本研究では取得しな

3 件がソース，イタリアン，焼きやごはん，サラダ，チーズない．また，画像も取得できるが本研究では対象としない．

ど関連性がない．これらのことから，特定の特徴を持つクラス

4. 2 GibbsLDA++ によるレシピのクラスタリング実験
4. 2. 1 GibbsLDA++
潜在的ディリクレ配分法 [14] は，単語 ω の列によって表タを得ることはできなかった．
表 4 GibbsLDA++による各トピックの上位 3 件
クエリ：「鶏肉 キャベツ」

現された文書集合と，トピック数 K を入力する．各トピック

Topic 0thzn (n = 1, ..., K) における語 ω の確率分布 P (w|zn )，および，ソース

各文書におけるトピック zn の確率分布 P (zn |b)(n = 1, ..., K)

ご飯

0.14466

イタリアン 0.052907

サラダ

0.122127

チーズ

0.02749を推定する．図 1 に，LDA のグラフィカルモデルを示す．ただ焼き

し，α，β はディリクレ事前分布のハイパーパラメータであり，

Topic 2th

D，N はそれぞれ文書数，文書 d における総単語数を意味す
る．z はその単語のトピック，θ はトピック分布，φ はトピック

Topic 1th
0.079099
0.042431

Topic 3th塩

0.077476

鶏0.244716

トマト

0.056952とろ0.028652

チキン

0.051821

味噌0.019258に対応する単語分布を意味する．潜在的ディリクレ配分法 [14]における文書の生成過程は，以下のような手順である．
（ 1 ） ディリクレ事前分布 Dir(α) に従い，各文書 d に対し

グ実験て単語分布 φd を選択する．
（ 2 ） ディリクレ事前分布 Dir(β) に従い，各文書 d に対し

4. 3. 1 Repeated Bisection
Repeated Bisection[6] はクラスタリングツール bayon[17]てトピック分布 θd を選択する．
（ 3 ） 文書 d における各単語 n = 1, ..., Nd について，多項分布に従い，トピックを生成する．

zdn 〜M ulti(θd )（ 4 ） 文書 d における各単語 n = 1, ..., Nd について，多項分布に従い，単語を生成する．

4. 3 Repeated Bisection によるレシピのクラスタリン

ωdn 〜M ulti(φd )これらを推定するツールとして，GibbsLDA++[5] を用いや CLUTO[18] で使用されているクラスタリング手法であり，

K-means 法を k = 2 で n − 1 回繰り返して n 個のクラスタを得る. Repeated Bisection の概要を図 2 に示す．
すべてのデータを 1 つのクラスタに格納し，以下の手順を繰
り返し，クラスタを 2 分割していき，クラスタリングを行う．

た．このツールは推定の際に Gibbs サンプリングを用いてい

図 1 LDA のグラフィカルモデル
図 2 Repeated Bisection の概要

(1) 全クラスタ中から最もまとまりの悪いクラスタを 1 つ選リから取得したレシピを料理名，調理法を用いてクラスタリン

択する．

グすることで料理名，調理法ごとのクラスタを得る．次に，そ(2) クラスタの中からランダムに 2 つ要素を選択し，それぞのクラスタリング結果の各クラスタに対して，さらにそれぞれれを格納したクラスタを作成する．

の食材，調味料を用いてクラスタリングを行う．このことによ(3) 元のクラスタ内の全ての要素に対し，ランダムに選択したり，レシピをより細かく分類し，酷似レシピの抽出を行う．ま要素との類似度を比較する．

た，クエリである語はそのレシピ群の全レシピに含まれている(4) 類似度を比較した結果，より類似度の高いクラスタに要素ので，そのレシピの特徴とならない．そのため，中心ワードのを格納する．

上位にクエリである語が含まれると別の特徴を持ったレシピが(5) クラスタ間で要素の移動を行い，クラスタ内で類似度をそ

同じクラスタに格納される結果となり，酷似したレシピを抽出

れぞれ比較し直す．

できない．そこで，食材，調味料の語集合を用いたクラスタリ(6) (5) を移動できる要素が無くなるまで繰り返し行う．

ングではクエリである語を除外してクラスタリングを行う．以4. 3. 2 Repeated Bisection によるクラスタリング結果
今回，Repeated Bisection[6] を用いたクラスタリングツールとして bayon[17] を用いた．

下と図 3 に我々の提案するクラスタリング手順を示す．
（ 1 ） 複数の食材名をクエリとし，レシピ検索サイトよりレ
シピ検索を行い，レシピを取得する．

クラスタ数 n は 300 としクラスタリングを行った．得られ（ 2 ） 取得した各レシピからレシピタイトル，スニペット，

た各クラスタの中心ワードの上位 3 件を表 5 に示す．表 5 よ

材料，作り方，レシピの生い立ちを取得する．

り，クラスタの中心ワードの 1 位と 2 位の値にあまり差がな（ 3 ） 取得したデータをそれぞれ形態素解析を行い，取得しく，それ以降のワードと差があることがわかる．このことによたデータに出現する名詞，動詞，接尾辞を抽出する．

り GibbsLDA++[5] と比べると比較的まとまりのあるクラス（ 4 ） マッチングを行い「カレー」，「スープ」などの料理名，

タを得ることができた．しかし，食材や調味料がクラスタの中「巻き」，「炒め」などの調理法，「鶏肉」，「キャベツ」などの食材

心ワードの上位になると，同じ食材を使用しているが味付けが名，「塩」，「醤油」などの調味料ごとに抽出する．

全く異なるレシピや使用している調味料は同じであるが全く別（ 5 ） 各レシピのタイトル，スニペット，レシピの生い立ちの種類の料理のレシピが同じクラスタに格納される結果となっから抽出した料理名，調理法の語集合を用いて (1) で取得した

た．また，クラスタの中心ワード上位にクエリである「鶏肉」，

レシピ群に対してクラスタリングを行う．

「キャベツ」またはその表記揺れと考えられる語が多く含まれる（ 6 ） (5) のクラスタリングによって分類された料理名，調ことから，Repeated Bisection[6] を用いたクラスタリングにおいても，特定の特徴を持つクラスタを得ることはできなかった．
表 5 Repeated Bisection による各クラスタの中心ワード上位 3 件
クエリ：「鶏肉 キャベツ」
クラスタ 1

クラスタ 2

ささみ

0.693072

シチュー

0.687968

キャベツ

0.693072

チキン

0.687968

海苔

0.10597パン

0.108933

クラスタ 3

クラスタ 4

チキン

0.695268

クリーム

蒸し

0.695268

鶏肉

0.693517

鶏肉

0.0911106

たまねぎ

0.0919752

0.693517

5. 酷似レシピのためのクラスタリング手法の提案
5. 1 クラスタリング手法の提案
既存のクラスタリングを用いた実験により，2 つの手法にはあまり差がないが，両手法ともにうまくクラスタリングできないという問題が判明した．そこで我々はこれら問題点を解決すべく，2 回のクラスタリングを行うことにより，既存の 2 つの手法を比較し，酷似レシピのクラスタリングに適している手法を提案する．具体的には，食材や調味料がクラスタの中心
ワードの上位になると全く別の種類の料理のレシピが同じクラスタに格納される問題の解決案として，ユーザの入力したクエ

図3

提案手法

理法ごとのクラスタに対し，各レシピに出現する食材，調味料の語集合を用いて再びクラスタリングを行い，酷似したレシピを抽出する．この時，クエリである語は除外してクラスタリン
グを行う．
また，より細かく分類を行うため，各レシピから取得するデータをレシピタイトル，スニペット，材料，作り方，レシピの生い立ちに拡張する．

クエリ：「しめじ えのき」

Topic 0th
0.334568

炒め

0.177941

きのこ

0.062963

きのこ

0.089706

あんかけ0.025926

春巻き

0.045588

Topic 2th炒め

5. 2 提案手法を用いたクラスタリング実験
提案手法を用いたクラスタリング実験について述べる．

Topic 1th

スープ

Topic 3th
0.100000

きのこ

0.176190

スパゲティ 0.071831

和え

0.128571

焼き

0.049206

サラダ

0.057746

5. 2. 1 データセット
実験データには 4 章で行った実験同様，COOKPAD[1] を用い，複数の食材名「鶏肉 キャベツ」をクエリとして検索を行い，取得した 8,562 件に加え，「豚肉 レタス」，「しめじ えのき」
をクエリとして検索を行い，それぞれ 5,151 件，7,326 件のレシピを新たに取得した．取得した各レシピに対して，上記の手順（2）〜（4）を行い，レシピに出現する料理名，調理法，食材，調味料を取得し，これらのデータを用いてクラスタリングを行う．

と少なかったため，トピックワードの値に差が出なかったと考えられる．このことから，各クラスタには複数の種類の料理，異なる調理法のレシピが混ざり，料理名，調理法ごとのクラス
タは得られなかった．

Repeated Bisection によるクラスタリング結果
Repeated Bisection[6] を 用 い た ク ラ ス タ リ ン グ で はbayon[17] のクラスタ数の分割ポイントの閾値を 1.0 と設定
し，クラスタリングを行い，クラスタ数を得た．各クエリ「鶏5. 2. 2 料理名，調理法を用いたクラスタリング
各レシピのタイトル，スニペットに，レシピの生い立ちに出現する料理名，調理法の語集合を用いて，クラスタリングを行うことで各レシピの分類を行う．

n2 = 183，n3 = 233 となった．得られた各クラスタの中心ワー
表 7 より，クラスタの中心ワードの 1 位と 2 位以降に大きく

GibbsLDA++[5] を用いたクラスタリングではクエリ「鶏肉 キャベツ」，「豚肉 レタス」，「しめじ えのき」を用いて得たレシピ群のトピック分割数 N1 ,N2 ,N3 をそれぞれ N1 = 250，

N2 = 200，N3 = 250 とし，それぞれのレシピ群のクラスタリ
ングを行った．それぞれのトピックの上位 3 件を表 6 に示す．
表 6 より各トピックの上位 3 件の値に差がないことがわかる．
これは，各レシピに含まれる料理名，調理法の語数が 1〜5 語

表 6 GibbsLDA++による各トピックの上位 3 件
クエリ：「鶏肉 キャベツ」

差があることがわかる．これは，各レシピに含まれる料理名，調理法の語数が 1〜5 語と少なかったため，クラスタの中心になる語の値が他の語よりも極端に高くなったと考えられる．このことによって，各クラスタはクラスタの中心ワードの 1 位の料理名，調理法を特徴としたクラスタに分類された．よって，
本研究ではクラスタリング手法に Repeated Bisection[6] を採用し，2 度目のクラスタリングである食材，調味料を用いたク

表 7 Repeated Bisection による各クラスタの中心ワード上位 3 件
クエリ：「鶏肉 キャベツ」

Topic 1th

ラーメン

0.131362

カレー

0.196556

カツ

0.110729

スープ

0.131235

生姜焼き

0.096974

ラーメン

0.089667

Topic 2th

レシピ群のクラスタ分割数 n1 ，n2 ，n3 はそれぞれ n1 = 247，
ドの上位 3 件を表 7 に示す．

GibbsLDA++によるクラスタリング結果

Topic 0th

肉 キャベツ」，「豚肉 レタス」，「しめじ えのき」を用いて得たTopic 3th

スープ

0.134841

餃子0.181392

蒸し

0.11809スープ

0.181392

炒め

0.10134

ポトフ

0.087684

クラスタ 10.999868

ポトフ

0.999985

カレー

0.00754237

おでん

0.00385519

ロール

0.00659957

グラタン

0.00385519

クラスタ 3

スープ

0.999831

シチュー

0.999936

照り焼き

0.00920215

ボルシチ

0.00566427

ペースト

0.00920215

つくね

0.00566427

クエリ：「豚肉 レタス」

Topic 1th
0.102867

炒め

0.110505

シュウマイ 0.035413

スープ

0.110505

巻き0.096862

唐揚げ

0.035413

Topic 2th

クラスタ 4ハンバーグ

クエリ：「豚肉 レタス」

Topic 0th

クラスタ 2

スープ

Topic 3th

ラーメン

0.090639

サラダ

0.130660

ロール

0.090639

餃子

0.078913

南蛮

0.075780

野菜炒め

0.053040

クラスタ 1

クラスタ 2

炒め

0.999914

フライ

0.976698

ライス

0.00523227

とんかつ

0.1031

皿うどん

0.00261614

焼く

0.1031

クラスタ 3
野菜炒め

クラスタ 4

0.998715

煮

0.999272

切る

0.033179

煮物

0.0249816

卵焼き

0.0270906

ジャスミン

0.0203974

分類されていることがわかる．
また，各クラスタの適合率，再現率，F 値を表 9 に示す．

クエリ：
「しめじ えのき」
クラスタ 1

クラスタ 2

パスタ

0.999925

ソテー
茹で

正解データは人手によって選別した．

うどん

0.992867

0.00549682

鍋

0.0715301

0.00412261

あんかけ0.062962

クラスタ 3

クラスタ 4蒸し

0.999686

炊き込み

0.999889

蒸し鶏0.012697

炒め

0.00861015

蒸し焼き

0.012697

おにぎり

0.0057401

ラスタリングを行った．

5. 3 食材名，調味料を用いたクラスタリング
さらに細かく分類し，酷似レシピを抽出するために，先のクラスタリングによって得られたクラスタに対し，食材，調味料の語集合を用い，再びクラスタリングを行った．今回は表 7 に示した「鶏肉 キャベツ」をクエリとしてクラスタリングを行った結果のクラスタ 1 を用いて再度クラスタリングを行い，酷似レシピの抽出を行った．
「鶏肉 キャベツ」のクラスタ 1 に属す
るレシピ数は 671 件であり，分割するクラスタ数は bayon[17]のクラスタ数の分割ポイントの閾値を 1.0 と設定し，クラスタ数を得た結果，クラスタ分割数は 80 となった．クラスタリン
グ結果を表 8 に示す．表 8 より，鶏肉とキャベツを用いたレシ
ピのうちスープを特徴にもつクラスタがさらにクリームスープ，
トマトを用いたレシピ，中華風といった特徴に持つクラスタに

表 8 食材，調味料でのクラスタリング結果
クリーム
レシピ名
キャベツのクリームスープ
キノコとキャベツと鶏肉のスープ＊春キャベツのあっさりクリームスープ＊☆すぐ出来る♪あったかクリームスープ☆
鶏肉とたっぷり野菜のトマトクリームスープ
こ蕪のクリームスープ

トマト
レシピ名
キャベツたっぷり！トマトスープ☆
鶏肉とトマトの簡単スープ
トマトとセロリのスープ
トマトスープ具だくさんトマトスープ
お水を入れないトマトスープ

中華
レシピ名
鶏肉の中華スープ
今すぐ飲みたい【簡単】中華スープ♪
絶品♪

我が家の中華風なべ

チキンヌードルスープ缶で和洋中華スープ
たっぷり生姜☆鶏と野菜の中華風スープ
食べる中華スープ

表9
クラスタ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

適合率，再現率，F 値

適合率
0
0
0
0
0
1
1
1
0
0.8
1
0.333333333
0.4
0.666666667
0.2
0.6
0.428571429
0.4
0.2
0
1
0.666666667
0
0.5
1
0.25
0
0.333333333
0.25
0.25
0.4
0.2
0.2
0.333333333
00.1
0.714285714
0.2
0.25
0
0
0
0.333333333
0
0.75
0.2
0.25
0
0.25
0
0.2
0.5
0
0.5
0.333333333
0
0
0
0.2
0.5
0
0.5
0.65
0.4
0.111111111
0.4
00.166666667
00.15
0.111111111
0.5
0.4
0.666666667
0.771428571
00.636363636
0.93750.545454545
0.083333333

再現率
0
0
0
0
0
0.285714286
0.5
0.3
0
0.8
0.375
0.045454545
0.111111111
0.25
10.428571429
0.103448276
1
1
00.888888889
0.25
00.666666667
0.545454545
0.5
0
0.125
0.5
0.068965517
1
0.5
0.090909091
0.2
00.090909091
0.053191489
0.5
0.25
0
0
0
0.25
0
0.375
0.333333333
101
00.066666667
1
0
0.4
0.034090909
0000.142857143
0.095238095
00.333333333
0.073863636
0.333333333
0.2
0.133333333
00.5
00.103448276
0.333333333
1
0.063829787
0.022727273
0.287234043
00.43750.882352941
0.285714286
0.5

F 値
0.444444444
0.666666667
0.461538462
0.8
0.545454545
0.08
0.173913043
0.363636364
0.333333333.50.166666667
0.571428571
0.333333333
0.941176471
0.363636364
0.571428571
0.705882353
0.333333333
0.181818182
0.333333333
0.108108108
0.571428571
0.285714286
0.125
0.25
0.095238095
0.099009901
0.285714286
0.25
0.285714286
0.5
0.25
0.4
0.4
0.1
0.444444444
0.06185567
0.166666667
0.16
0.4
0.132653061
0.363636364
0.142857143
0.2
0.25
0.12244898
0.166666667
0.666666667
0.110091743
0.043956044
0.418604651
0.518518519
0.909090909
0.375
0.142857143

表 9 より，適合率，再現率が共に 0 のクラスタが見受けられる．また，クラスタ 78 では適合率 0.94，再現率 0.88，F 値

0.91 であり，非常に良い結果だったのに対し，クラスタ 59 では適合率 0.2，再現率 0.14，F 値 0.17 となっており，クラスタ
ごとの評価に大きな差があることがわかる．

5. 4 考察

実験結果より，適合率，再現率が共に 0 のクラスタが存在することがわかる．これは，クラスタの中心ワードの 1 位が水やみりんといった，味や食感を大きく変化させず，使用される回数が高い食材や調味料である場合，料理の特徴とはならない
ためである．そのため，正解となるデータが存在しない結果となったため，適合率，再現率が 0 となったと考えられる．また，クラスタ 15 やクラスタ 38 では中心ワードの 1 位がネギ，ピーマンであった．このように料理の特徴になりにくい食材がクラスタの中心ワードとなった場合，適合率が低くなると考えられる．また，クラスタ 33，クラスタ 36 の中心ワードの 1 位は共にチーズであった．このように中心ワードの 1 位が同一である
クラスタが複数存在する場合，その特徴をもったレシピが分散するため，適合率，再現率，F 値が低くなると考えられる．また，クラスタ 14，クラスタ 74 の適合率は共に 0.67 と高い値を示した．これらのクラスタの中心ワードの 1 位はそれぞれ豆腐，味噌となっており，レシピの特徴になり得る食材，調味料であることがわかる．これらのことから，食材，調味料の分類を行い，レシピの特徴となり得る語に着目することでクラスタ
リングの精度が向上すると考えられる．

6. まとめと今後の課題
本研究では，既存のクラスタリング手法として Gibb-

sLDA++[5] と Repeated Bisection[6] の 2 つを用いてレシピのクラスタリングし，比較検討を行うことで，酷似レシピの抽出のためのクラスタリング手法の問題点を洗い出した．その結果，レシピ検索サイトにて食材をクエリとして検索した結果に対して，酷似したレシピを抽出するために料理名，調理法でク
ラスタリングを行い，その後，得られたクラスタに対して，食材，調味料を用いて再びクラスタリングを行う手法を提案した．
また，2 つのクラスタリング手法を比較した結果，RepeatedBisection[6] を選択した．
今後の課題として, 現在，食材や調味料において分量の違いを考慮しておらず，全て等価として扱っている．例えば，甘さを引き立たせるために甘い味付けの料理に塩を入れることがある．しかし，砂糖：塩＝ 5：1 と砂糖：塩＝ 1：5 で使用した場
合では，大きく味が異なる．また，水を 100cc 使用するレシピと 500cc 使用するレシピでは完成した料理には大きな差を生じる．今後，分量を考慮した酷似レシピの抽出手法について検討する必要がある．また，料理の特徴を表す語としてスパイシーやクリーミーといったシズルワードが存在する．今後は，このシズルワードも考慮していく．また，現在，「鶏肉」「鶏」「とり肉」や「切る」「きる」などは別の材料，調理法として扱っているため，クラスタリングの妨げとなっていると考えられる．今後は表記揺れにも対応していく必要がある．

文

献[1] レ シ ピ 検 索 No.1 ／ 料 理 レ シ ピ 載 せ る な ら クック パッド
http://cookpad.com/[2] 楽天レシピ: レシピを見つける，料理する，投稿する，みんなで作る http://recipe.rakuten.co.jp/[3] 杉山祐一，山肩洋子，田中克己， 手順情報としてのレシピデータ
に対する類似レシピの要約と微小で重要な差異の発見 ， DEIM
Forum 2013 D3-5,2013.
[4] 貝沼やす子，江間翔子， 日常の献立作りの実態に関する調査研究（第一報） ，日本料理科学会誌，pp.364-371，1997.
[5] GibbsLDA++: A C/C++ Implementation of Latent
Dirichlet Allocation http://gibbslda.sourceforge.net/[6] Ying Zhao and George Karypis. Comparison of agglomerative and partitional doc-ument clustering algorithms. Technical report, Department of Computer Science,University of
Minnesota, Minneapolis, MN 55455, 2002.
[7] レシピ検索 ― 検索サービス ― Google
http://www.google.co.jp/landing/recipes/[8] レシピブログ - 料理ブログのレシピ満載！ http://www.recipeblog.jp/[9] ネスレ バランスレシピ｜簡単レシピがいっぱい！ - ネスレア
ミューズ http://nestle.jp/recipe/[10] 本 格 レ シ ピ を 簡 単 に！シェフ が 教 え る【 ぐ る な び レ シ ピ 】
http://recipe.gnavi.co.jp/[11] 福本亜紀，井上悦子，中川優， 食材の重要度と食品群を考慮したレシピ間類似度の算出手法 ，DEIM Forum 2012 D9-2，
2012.
[12] 苅米志帆乃，藤井敦， 料理どうしの類似と組合せに基づく関連
レシピ検索システム ，言語処理学会，第 14 回年次大会発表論
文集，pp. 959-962，2008.
[13] D.M.Blei, A.Y.Ng, and M.I.Jordan. Latent Dirichlet allocation.Journal of Machine Learning Research,Vol.3,pp. 993―
1022, 2003.
[14] MeCab: Yet Another Part-of-Speech and Morphological
Analyzer http://Mecab.sourceforge.net/[15] 京 都 大 学 大 学 院 情 報 学 研 究 科 知 能 情 報 学 専 攻 知 能 メ ディア 講 座 言 語 メ ディア 分 野:日 本 語 構 文 解 析 シ ス テ ム KNP
http://nlp.ist.i.kyoto-u.ac.jp/[16] テキスト解析:日本語形態素解析 API - Yahoo!デベロッパーネッ
トワーク
http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html[17] Bayon - a simple and fast clustering tool - Google Project
Hosting http://code.google.com/p/Bayon/[18] CLUTO - Software for Clustering High-Dimensional
Datasets
http://glaros.dtc.umn.edu/gkhome/cluto/cluto/overview