Skip to content

Instantly share code, notes, and snippets.

View graph226's full-sized avatar
🉐

Shintaro Inuzuka graph226

🉐
View GitHub Profile
@graph226
graph226 / wordcloud.py
Last active May 31, 2016 12:04
ワードクラウド
#coding: utf-8
import csv
import MeCab
import matplotlib.pyplot as plt
from wordcloud import WordCloud
STOP_WORDS = "の もの こと よう これ 一 http:// の 笑 ω 物 とき ら".split()
STOP_NOUN_DETAILS = "数 接続助詞 接尾 代名詞 非自立 副詞可能".split()
def csv_reader(data_path):
@graph226
graph226 / answer2014.md
Last active July 7, 2016 12:49
WasedaU Exam for graduate scool

2014年度プログラミング課題

1-1

(1-1-1)

int Kaijo(int n){
  if(n < 1) {
    return 1;
@graph226
graph226 / prime.py
Last active July 17, 2016 09:20
Sieve of Eratosthenes by Python
import math
NUMBER = 1000
def prime_bool_list(num):
num_list = [True] * num
num_list[0] = num_list[1] = False
limit_sqrt = math.sqrt(num)
for count in xrange(2,num):
@graph226
graph226 / line_visualizer.py
Created August 16, 2016 08:43
Visualising line messages
#coding: utf-8
import csv
import MeCab
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import re
STOP_WORDS = "の もの こと よう これ 一 http:// の 笑 ω 物 とき ら 画像 Sticker Photo".split()
STOP_NOUN_DETAILS = "数 接続助詞 接尾 代名詞 非自立 副詞可能".split()
@graph226
graph226 / herokulogs.txt
Created September 3, 2016 14:50
Herokuのログ
2016-09-03T14:47:40.110302+00:00 app[web.1]: Traceback (most recent call last):
2016-09-03T14:47:40.110303+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
2016-09-03T14:47:40.110304+00:00 app[web.1]: worker.init_process()
2016-09-03T14:47:40.110304+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process
2016-09-03T14:47:40.110305+00:00 app[web.1]: self.load_wsgi()
2016-09-03T14:47:40.110306+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
2016-09-03T14:47:40.110306+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2016-09-03T14:47:40.110307+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi
2016-09-03T14:47:40.110308+00:00 app[web.1]: self.callable = self.load()
2016-09-03T14:47:40.110309+00:00 app[web.1]: File "/app/
@graph226
graph226 / herokulogs.txt
Created September 3, 2016 14:51
Herokuのログ
2016-09-03T14:47:40.110302+00:00 app[web.1]: Traceback (most recent call last):
2016-09-03T14:47:40.110303+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
2016-09-03T14:47:40.110304+00:00 app[web.1]: worker.init_process()
2016-09-03T14:47:40.110304+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process
2016-09-03T14:47:40.110305+00:00 app[web.1]: self.load_wsgi()
2016-09-03T14:47:40.110306+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
2016-09-03T14:47:40.110306+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2016-09-03T14:47:40.110307+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi
2016-09-03T14:47:40.110308+00:00 app[web.1]: self.callable = self.load()
2016-09-03T14:47:40.110309+00:00 app[web.1]: File "/app/
@graph226
graph226 / tw_wc.ipynb
Created December 9, 2016 14:33
TwitterからWordCloud作るやつ
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@graph226
graph226 / log_test.py
Created January 3, 2017 13:15
Comparing log performance in Python
import math
import numpy as np
import time
num_list = list(np.random.rand(100000)*100000)
tmp = 0
start = time.time()
for i in num_list:
tmp = np.log2(i)
@graph226
graph226 / log_test_vectrized.py
Created January 3, 2017 13:43
Comparing log performance in Python with vectrizing
import math
import numpy as np
import time
num_list = list(np.random.rand(100000)*100000)
tmp = 0
log_list = []
start = time.time()
log_list = list(np.log2(num_list))
@graph226
graph226 / survey.md
Created January 20, 2017 06:42
レシピ検索のパーソナライゼーション

提案手法の評価にあたって「週1回以上レシピ検索を使って料理をする人」の被験者を探しているので,ぜひご協力をお願いします。10~15分のなかなか重めなアンケートですが,ご協力していただけると幸いです。

どんな研究?

ざっくりまとめると「レシピ検索をパーソナライゼーション(個人の嗜好を反映)するための手法を提案したい」という論文です。 一般的にパーソナライゼーションするとなると,過去の閲覧履歴や購入履歴などを用いた推薦システムなどが考えられますが(Amazonとかでやってそうなやつ),こと料理に関してはそれは当てはまらないと思っています。なぜかというと,ぼくらの「こんな料理を作りたい!」みたいな欲求は,物品や映画や音楽などのように長続きするものではないからです。ある日肉料理を食べたら,システムに「このユーザは肉料理が食べたいのか」と判断されて,次の日も肉料理を推薦されたら嫌ですよね。ぼくだったら魚も食べたいです。

そのためにどうするか

なので今回の研究では,クエリ(検索ワード)ごとに関連語を提示して,それをユーザであるみなさんに選んでもらい,それに応じて検索結果を並び替える,という手法を用いました。例えば「レタス」というクエリに対して「炒め」という関連語を選択したユーザさんと「サラダ」を選択したユーザさんでは,検索結果は異なるものであるべきです。