Open AnonymousLifeforms opened 10 years ago
ありがとうございます!
上記のうち、 ・一番多いカテゴリ、二番目に多いカテゴリ ・よく出現するはてなキーワード上位20個 を保存するところまではいけそうです。 また、 ・タイトルの特徴語抽出 ・よく使うタグを集める というあたりも同様の方法で実装できそうです。 データは集められるようになったので、集計処理を書きます。
はてなキーワード群(および今後追加するタイトルの特徴語)から、近そうなユーザーをレコメンドするというのが全然進められていない状態です。
word2vecをつかうのでそもそもいいんだっけ? なんかもっとMongoDBとNode.jsで実装しやすい(すでにライブラリとかがある)レコメンデーションのアルゴリズム使ったほうが楽だったりしない? という根本的なところからちょっと調査をしていただけるとありがたいです。
レコメンデーションはリアルタイムにやる必要はなく、バッチ処理でOKです。
あ、データですが、はてなブックマークの個別エントリーページへのスクレイピング処理が完了まで5時間くらい掛かってしまうので、mongodbのデータをdumpしたものをリポジトリ内に置きます。少々お待ちください。
nodeによる協調フィルタリングの実装っぽいけど、redisを使っているのでそのままでは使えなさそう https://github.com/guymorita/recommendationRaccoon
dumpをpushしました https://github.com/hatebu-offkai/offkai/tree/master/dump/hatebu_offkai
プロジェクトのルートで
mongorestore --db hatebu_offkai dump/hatebu_offkai
すれば取り込まれます
ありがとうございます。
・よく出現するはてなキーワード上位20個 ・タイトルの特徴語抽出 ・よく使うタグを集める
この3つを使ってJaccard係数計算する方法でやってみます。 c.f. http://d.hatena.ne.jp/nanjakkun/20120121/1327130513 ( 上記で紹介していただいたRaccoonもJaccardのようです )
Jaccard係数計算はnpmライブラリ使います。 https://github.com/ecto/jaccard
はてなキーワードのコサイン類似度を計算して、一番似ているユーザーを出す、というところまでやってみました。 (やっぱりJaccard係数よりもふさわしいと判断してコサイン類似度にしました。また、word2vecは「好きな単語いくつか→類似度」という用途に向かないと思いました。) https://github.com/AnonymousLifeforms/offkai/commit/bab6a730fc83d470059e5e99072fb23d8520df5a
実装方法(モデル含めて)もっと良い方法があるかとか、不安がありますが、 「カテゴリが似ている人」「キーワードが似ている人」「タイトル特徴語が似ている人」「タグが似ている人」と、トップだけ取って行って4人のレコメンになる予定です。
ひとまず、フィードバックいただければと思います。
ありがとうございます、チェックします!
c.f http://space.hatena.ne.jp/yuiseki/entry/14290830716932582080
統計分析について、手が回らないとのことなので、他にいなければやってみようかと思います。 私も専門ではないので勉強しながらやることになりますが。
具体的にどういった内容のものを想定していますでしょうか?
↑これは確定として、
↑この辺りが曖昧ではあります。
よろしくお願いします。