from __future__ import unicode_literals
#from flask_restful import reqparse,Api, Resource
from flask_restful import Api
from flask import Flask,request
#from flask import abort
#from flask import make_response,Response
import json
#import tab
import time
#########test/product==========
import re
#####放在11.41库
import jieba
import os
import jieba.analyse
app = Flask(__name__)
app.debug = True
app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))
api = Api(app)
test_content = '我是测试文章'
jieba.lcut(test_content.strip(), cut_all = False)
def abspath(filename):
basedir = '/home/nlp/model/IF'
return os.path.join(basedir, filename)
print ('IFFile is loading ......')
from sklearn.externals import joblib
IFclf = joblib.load(abspath("model.m"))
IFvec = joblib.load(abspath("vec.m"))
IFtransformer = joblib.load(abspath("tfidf.m"))
IFch2 = joblib.load(abspath("ch2.m"))
print ('IFFile loading successful')
print ('IFkeyword is loading ......')
keywords = "P2P|p2p|比特币|余额宝|融租租赁|支付机构|支付宝|数字货币|保险.*互联网|加密货币|愉悦资本.*平台\
|虚拟货币|科技金融|金融科技|点牛金融|普惠金融|互金|现金贷|区块链"
print ('IFkeyword loading successful')
@app.route('/')
def hello_world():
return 'hello world'
@app.route('/SVM_TextSort/', methods=['POST'])
def add_task():
time_start=time.time()
url = request.json['siteDomain']
#url = request.form.get('siteDomain')
lable = ''
if 'guba' in url:
lable = ''
print ('svm file contain guba')
else:
text = request.json['content']
title = request.json['title']
#text = request.form.get('content')
#title = request.form.get('title')
print ('svm data receive successful')
content = title + text
word_cut = jieba.lcut(content.strip(), cut_all = False)
news1 = []
news1.append(' '.join(word_cut))
print ('===IF judge====')
vec_testif = IFvec.transform(news1)
tf_testif = IFtransformer.transform(vec_testif)
ch2_testif = IFch2.transform(tf_testif)
yif = IFclf.predict(ch2_testif)
print ('svm model judge successful')
if yif[0] == 0:
key = re.findall(keywords,title)
if key:
lable = '互联网金融'
else:
lable = '互联网金融'
print ('====im IF rules====')
rt = {'SVM_TextSort':lable}
print ('svm change json successful')
time_end=time.time()
print ('svm totally cost',time_end-time_start)
print (rt)
return json.dumps(rt)
if __name__ == '__main__':
app.run(host = '0.0.0.0')
将以上代码命名为RFIFL.py,通过以下代码布置在linux后台中
nohup python3 -u /home/nlp/pyfoot/IF/RFIFL.py > /home/nlp/pyfoot/IF/RFIFL.log 2>&1 &
通过其它电脑用以下代码访问时,整个处理过程较慢,一开始布在本机后台,通过本机电脑访问整个处理流程只需0.0002s,布置到linux后台后,通过其它电脑访问,处理流程达到2s左右,效率太慢,请问该如何解决
import requests
user_info ={
"siteDomain": "letian",
"title": "ST信通:新增资产冻结事项",
"content": '''2018年1月27日公告,公司将截至2018年1月26日所涉及的新增财产冻结事项披露如下:公司帐户新增被申请冻结金额为人民币5350万元。截至本公告日,公司被法院申请冻结的
'''
}
requests.post("http://127.0.0.1:5000/SVM_TextSort/", data=user_info)
加上 uWSGI 试试。