top of page
検索
  • 執筆者の写真zuhiro

食べログで新宿のラーメン屋さんを分類(khcoder、doc2vecで類似度分析2)

前回、食べログの「新宿駅周辺>ラーメン屋」

の口コミをスクレイピングしてdoc2vecで類似度分析をしてみましたが、

いまいちうまくいきませんでした。


KH-Coderの結果とdoc2vecの結果が全くちがった結果となっていたので、

doc2vecのやり方になんらかのミスがあったことが

見て取れる結果でした。


少し試しながら調べてみたところ、

下記の点が大きく誤っていた点でした、、

恥ずかしながら、、、

・doc2vecでモデルを作る際、

 [[文書1の単語1,文書1の単語2、…][文書2の単語1,文書2の単語2…]、…]

 というような形のデータを入れなければいけないところ、

 シンプルに

 [文書1の単語1,文書1の単語2,…,文書2の単語1,文書2の単語2,…文書3の単語1,…]

 というように、

 リストの入れ子のような形にせずに、単純なリストの形にしたものを

 そのままモデルにぶちこんでしまっていたこと


・分析対象となる口コミのテキスト(1店舗につき1ファイル)を、

 分かち書きせずに変数に入れ、そうして作った変数の中身同士の類似度を

 算出してしまっていたこと。

 よって、1要素のみのリストとして各口コミデータを渡していたことに

 なってしまっていた。


…という、大変初歩的かと思われるミスでした。

改めて出してみた結果。


それに対して、KH-Coderの結果が下記です。


いくつかのお店について見てみます。

●満来













「ほりうち」や「風雲児」とは

KH-Coderのグラフで見ても非常に近く、

共通する結果が得られました。


●風雲児













KH-Coderでも

「麺屋武蔵」は「風雲児」と非常に近く、

共通する結果が得られたものの、

同じように近い「凪」がdoc2vecで遠い数値になっていることは

疑問が残ります。


最も近い類似度になっている2店舗は

うまく抽出できているものの、

Doc2vecでの類似度の値が0.7あたりを切ると、

KH-Coderの結果とは乖離がみられるようです。

単語の集計方法に違いがあるので、

許容範囲ではあるのかなと思っています。

最も遠い店舗同士も、

だいたいうまく抽出できているようです。



続いて、

doc2vec上で「最も近い類似度だった店舗同士」が

「どういう特徴のもとで近くなっているのか」

を見てみようと思います。


この調査にあたっては、

【1】全口コミの中から、頻出する単語の上位のものを抽出。

【2】その中でも、お店の味など特徴を表しそうな言葉を20個ほど選抜。

【3】その20個の言葉が、それぞれの店舗でいくつずつ登場するかを集計。


今回選抜した、いわば「お店の特徴語」22個は、

塩 魚 海老 出汁 鶏 細 魚介 辛い 多い

チャーシュー 量 濃い 濃厚 肉 油 豚

煮干 醤油 メンマ 太 味噌 ワンタン

です。


上述で出ていた似ている店舗同士の集計結果を見てみます。

●「満来」と「ほりうち」




















→チャーシューや食事の量、醤油ラーメンやメンマの語が多いなど、

 かなり似ている傾向にあることがわかります。


●「風雲児」と「麺屋武蔵」





















→風雲児は濃厚という言葉が再頻出なのに対し、

 麺屋武蔵は魚介が再頻出、

 風雲児に多く登場する鶏という単語は

 麺屋武蔵にはほとんど登場しない、

 など多少の傾向の違いはありますが、

 上位の10語のランキングを見ると、共通する部分も多いことがわかります。

 「魚介」「チャーシュー」「醤油」「濃厚」「太麺」

 が特徴を表すキーワードとなっているようです。



やっとdoc2vecをまともに使えた感じがします…笑

類似度を数値化できることの強みは、ここからの応用範囲にあると思うので、

どんな面白いことができるか、

今後試していきたいです。

閲覧数:204回0件のコメント

最新記事

すべて表示

ラジオ、テキスト分析、テキストマイニング、KHCoder、word2vec

text_bunseki

bottom of page