Last active
March 10, 2017 22:42
-
-
Save shinob/d9294769229679d2ce0da7dca4c789f1 to your computer and use it in GitHub Desktop.
機械学習した結果から予測をHTTPで返す仕組みの一例 ref: http://qiita.com/mix_dvd/items/5d62a7786d823a4ad411
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/python | |
# coding: utf-8 | |
import requests | |
import http.server | |
import socketserver | |
from http.server import BaseHTTPRequestHandler | |
from urllib.parse import urlparse, unquote | |
def start(port, callback): | |
def handler(*args): | |
CallbackServer(callback, *args) | |
server = socketserver.TCPServer(('', int(port)), handler) | |
server.serve_forever() | |
class CallbackServer(BaseHTTPRequestHandler): | |
def __init__(self, callback, *args): | |
self.callback = callback | |
BaseHTTPRequestHandler.__init__(self, *args) | |
def do_GET(self): | |
parsed_path = urlparse(self.path) | |
query = unquote(parsed_path.query) | |
self.send_response(200) | |
self.end_headers() | |
result = self.callback(query) | |
self.wfile.write(result.encode('utf-8')) | |
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ chmod a+x server.py | |
$ ./server.py 8080 & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ruby test.rb | |
旅費交通 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/python | |
# coding: utf-8 | |
import sys | |
import CallbackServer | |
import pandas as pd | |
import numpy as np | |
homedir = "/home/scripts/" | |
filename = "data/code.csv" | |
df = pd.read_csv(homedir + filename, header=None) | |
df.index = df.pop(0) | |
df_rs = df.pop(1) | |
from sklearn.externals import joblib | |
scaler = joblib.load(homedir + 'data/scaler.pkl') | |
clf = joblib.load(homedir + 'data/clf.pkl') | |
vect = joblib.load(homedir + 'data/vect.pkl') | |
from janome.tokenizer import Tokenizer | |
t = Tokenizer() | |
def callback_method(query): | |
texts = [ | |
query, | |
] | |
notes = [] | |
for note in texts: | |
tokens = t.tokenize(note) | |
words = "" | |
for token in tokens: | |
words += " " + token.surface | |
notes.append(words) | |
X = vect.transform(notes) | |
result = clf.predict(X) | |
ans = "" | |
for i in range(len(texts)): | |
ans = df_rs.ix[result[i]] | |
return ans | |
if __name__ == '__main__': | |
port = sys.argv[1] | |
CallbackServer.start(port, callback_method) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'net/http' | |
require 'uri' | |
puts Net::HTTP.get_print('localhost', URI.escape('/?高速道路利用料'), 8080) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment