djiango+djangorestframe
https://ai.qq.com/doc/nlpemo.shtml
# -*- coding: utf-8 -*-
import hashlib
import json
from django.conf import settings
# from django.utils import simplejson
import re
from .Sentiment_lstm import *
import yaml
from django.shortcuts import render
# Create your views here.
from keras.models import model_from_yaml
from rest_framework.views import APIView
from django.http import JsonResponse, HttpResponse
import tensorflow as tf
k_appid=100020
# Create your views here.
print('loading model......')
with open('api/lstm4_data//lstm.yml', 'r') as f:
yaml_string = yaml.load(f)
graph = tf.get_default_graph()
model = model_from_yaml(yaml_string)
print('loading weights......')
model.load_weights('api/lstm4_data/lstm.h5')
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
print(' ')
# def uni_str(a, encoding):
# if isinstance(a, (list, tuple)):
# s = []
# for i, k in enumerate(a):
# s.append(uni_str(k, encoding))
# return s
# elif isinstance(a, dict):
# s = {}
# for i, k in enumerate(a.items()):
# key, value = k
# s[uni_str(key, encoding)] = uni_str(value, encoding)
# return s
# elif isinstance(a, str) or (hasattr(a, '__str__') and callable(getattr(a, '__str__'))):
# if getattr(a, '__str__'):
# a = str(a)
# return unicode(a, encoding)
# elif isinstance(a, unicode):
# return a
# else:
# return a
class GetMessageView(APIView):
def error_return(self, code, msg):
return {"code": code, "msg": "{}".format(msg), "results": []}
# get
def get(self, request):
#
get = request.GET
# a
a = get.get('a')
print(a)
#
d = {
'status': a,
'message': 'success',
}
return JsonResponse(d)
def post(self, request):
try:
appkey = '243bca544bfea27b9c206171d8aafff6'
response_body = request.body
response_decode = response_body.decode()
# response_decode=re.sub('
','',response_decode)
print(' c', response_decode)
try:
response_json = json.loads(response_decode)
except:
return JsonResponse(self.error_return(10000, ' json '))
print(' response_json', response_json, type(response_json))
# and type(response_json.get('time_stamp'))==int and type(response_json['nonce_str'])==str and type(response_json['sign'])==str and type(response_json['text'])==list:
print(type(response_json.get('appid')))
if type(response_json.get('appid')) != int:
return JsonResponse(self.error_return(9990, ' appId'))
if response_json.get('appid') != 100020:
return JsonResponse(self.error_return(9990, ' appId'))
if type(response_json.get('times')) != int:
return JsonResponse(self.error_return(9991, ' times'))
if type(response_json.get('nstr')) != str:
return JsonResponse(self.error_return(9992, ' nstr'))
if type(response_json.get('sign')) != str:
return JsonResponse(self.error_return(9993, ' sign'))
str_ = (str(response_json.get('appId')) + str(response_json.get('times')) + response_json[
'nstr'] + appkey)
sign_server = md5_encode(str_)
print(sign_server)
if response_json['sign'] != sign_server:
return JsonResponse(self.error_return(9994, ' '))
if type(response_json['texts']) != list:
return JsonResponse(self.error_return(9995, ' texts'))
result = []
for my_data in response_json['texts']:
if type(my_data) != dict and type(my_data['str']) != str and type(my_data['snu']) != int:
return JsonResponse(self.error_return(9996, ' text '))
if len(my_data['str']) > 200:
return JsonResponse(self.error_return(9997, ' '))
if type(my_data['snu']) != int:
return JsonResponse(self.error_return(9998, ' '))
try:
result.append(handler_text(my_data))
except Exception as e:
print('9999 %s'%e)
return JsonResponse(self.error_return(9999, ' '))
my_response = {
'code': 0,
'msg': ' ',
'results': result
}
return JsonResponse(my_response)
except:
return JsonResponse(self.error_return(9999, ' '))
# appkey=''
# str_encode = (str(response_json.get('app_id')) + str(response_json.get('time_stamp')) + response_json['nonce_str']+appkey ).encode('utf8')
# str_encode = hashlib.md5(str_encode).hexdigest()
# print(str_encode)
# if response_json['sign']==str_encode:
# json_data = response_json.get('text')
# print(' json ',json_data)
# # json_data=re.sub('
','',json_data)
# # except:
# # return JsonResponse(self.message_error)
# if type(json_data)==list:
# the_return={}
# my_num=0
# for i in json_data:
# my_num+=1
# print(' ',i,type(i))
# string=i[:200]
# string, result, score=func(string)
# response_my={
# 'ret':0,
# 'msg':'ok',
# 'data':{'text':string,
# 'polar':result,
# 'score':float(score)}
# }
# the_return[my_num]=response_my
# print(the_return)
# return JsonResponse(the_return)
# else:
# return JsonResponse(self.message_error)
# else:
# return JsonResponse({'msg':str_encode})
# else:
# return JsonResponse({'msg':'1'})
# {"text": ["school_name", " ", "school_id", "8", "school_name"," ", "school_id","6"]}
# the_return={}
# my_num=0
# for string in dict_data.values():
# my_num+=1
# print(' string ',string,type(string))
# string, result, score=func(string)
# response_my={
# 'ret':0,
# 'msg':'',
# 'data':string,
# 'polar':result,
# 'score':float(score),
# }
# the_return[my_num]=response_my
# return JsonResponse(the_return)
# except Exception as e:
# return HttpResponse(e)
# return JsonResponse({'status':'fail'})
def handler_text(text):
global graph
with graph.as_default():
string = text.get('str')
string = re_str(string)
# print(string)
# with open('kehushuju.txt', 'a') as gg:
# gg.write(string + '
')
data = input_transform(string)
score = model.predict(data)
# print(score)
# print(list(score)[0])
# print(type(list(score)[0]))
result = model.predict_classes(data)
if result[0][0] == 1:
# print(string, ' ')
result = 1
else:
# print(string, ' ')
result = 0
results = {
"snu": text.get('snu'),
"polar": result,
"confd": float(score)
}
with open('kehudata.txt', 'a')as f:
f.write(text.get('str'))
return results
def md5_encode(string):
string=string.encode('utf8')
return hashlib.md5(string).hexdigest()
# {"appid":12345,"times":1493468759,"nstr":"qww","sign":"ba55d8c912daaa927eddfdc83a100d86","texts":[{"str":" ","snu":1},{"str":" ","snu":2},{"str":" ","snu":3944}]}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Jupyter 공식 DockerHub에 대한 메모에 기재되어 있다. base-notebook minimal-notebook scipy-notebook tensorflow-notebook datascience-notebook pyspark-notebook all-s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.