def post(self):
data = tornado.escape.json_decode(self.request.body)
is_debug = data["debug"]
query = data["query"]
message = {"posts": []}
if is_debug:
from elephant_sense.debug import search_posts_dummy
posts = search_posts_dummy(query, count=30)
posts = self.scoring(posts)
message["posts"] = [self.trim(p) for p in posts]
self.write(message)
else:
posts = search_posts(query, n=50) # limit for performance. need improvements for feature extraction.
process = 4
batch_size = len(posts) / process
tasks = [(int(i * batch_size), int(i * batch_size + batch_size)) for i in range(process)]
dones = Parallel(n_jobs=process)(delayed(parallel_scoring)(self.evaluator, posts[t[0]:t[1]]) for t in tasks)
posts = []
for scoreds in dones:
posts += [self.trim(s) for s in scoreds]
posts = sorted(posts, key=lambda p: p["score"], reverse=True)
message["posts"] = posts
self.write(message)
评论列表
文章目录