machine Learning을 웹에 적용시키기

2018. 4. 22. 16:29Python-이론/python-인공지능

machine Learning 한 것을 웹에서 사용하기



from sklearn import svm
from sklearn.exeternal import joblib
import json 


with open('파일 결과','r',encoding = 'utf-8') as fp:
    data = json.load(fp)[0]

clf = svm.SVC()
clf.fit(data['freqs'],data['labels'])

joblib.dump(clf,'./lang/freq.pkl')


웹에서 사용할 파일을 만들어 줬습니다.



웹에서 이용할 코드

from sklearn.externals import joblib
import cgi, os.path
#위코드로 만든 파일
loc = './cgi-bin/freq.pkl'
clf = joblib.load(loc)

def showhtml(text,msg=""):
    print('Content-Type:text/html; charset=euc_kr')
    print("")
    print("""
        

language distiction

{1}

""".format(cgi.escape(text),msg)) def distinct(text): text = text.lower() orda,ordz = (ord('a'),ord('z')) lang = [0 for n in range(26)] for ch in text: ordch = ord(ch) if orda <= ordch <= ordz: lang[ordch-orda] += 1 total = sum(lang) if total == 0: return "no value" freq = list(map(lambda a :a/total,lang)) pre = clf.predict([freq]) #항상 2차원 배열이어야 한다. lang = {'en':'english','fr':'french','id':'india','tl':'tagalog'} #프랑스어는 코덱???문제 return lang[pre[0]] msg = "" form = cgi.FieldStorage() text = form.getvalue("text",default = "") if text != "": resultData = distinct(text) msg = 'result '+resultData showhtml(text,msg)


저는 우선 실행시키기 위해서 cmd 창에가서 이러한 구조로 폴더를 만듭니다. 후에 root 창으로 이동 후 명령어 python -m http.server --cgi 3000 실행 시킨 후 http://localhost:3000/cgi-bin/lang-webapp2.py 접속하면 성공한 것을 알 수 있다.





결과물