Update SpaCy server python script

This commit is contained in:
Bo Peng 2018-06-15 12:40:39 -05:00
parent bbbcf93ca6
commit 48672c979e

View file

@ -1,6 +1,7 @@
from bottle import route, run, request
from spacy.tokenizer import Tokenizer
from spacy.pipeline import EntityRecognizer
from spacy.pipeline import TextCategorizer
import spacy
nlp = spacy.load('en')
@ -19,7 +20,7 @@ def tokenize():
print(token)
list.append({'text': token.text, 'offset': token.idx})
return {'tokens': list}
@route('/featurize')
def tokenize():
doc = nlp(request.query.text)
@ -29,7 +30,7 @@ def tokenize():
print(vec)
list.append(str(vec.real))
return {'vectors': list}
@route('/entitize')
def entitize():
doc = nlp(request.query.text)
@ -38,6 +39,54 @@ def entitize():
for entity in doc.ents:
print(entity)
list.append(entity)
return {'entities': list}
run(host='0.0.0.0', port=5005, debug=True)
return {'entities': list}
@route('/textcategorizer', method='POST')
def textcategorizer():
texts = request.json["Texts"]
golds = request.json["Golds"]
labels = request.json["Labels"]
print(labels)
train_data = []
for index in range(len(texts)):
tuple =(texts[index], golds[index])
train_data.append(tuple)
print("training data body is: {0}".format(train_data))
textcat = nlp.create_pipe('textcat')
nlp.add_pipe(textcat, last=True)
for label in labels:
textcat.add_label(label)
optimizer = nlp.begin_training()
for itn in range(2):
for doc, gold in train_data:
nlp.update([doc], [gold], sgd=optimizer)
textcat.to_disk('./textcat_try')
return {'ModelName':'textcat_try'}
@route('/predict')
def predict():
textcat = TextCategorizer(nlp.vocab)
textcat.from_disk('./textcat_try')
nlp.add_pipe(textcat, last=True)
doc = nlp(request.query.text)
#scores = textcat.predict([request.query.text])
#print(scores)
list = []
for label, confidence in doc.cats:
print(label)
list.append({'Label': label, 'Confidence': confidence})
print (list)
return {'Labels': list}
run(host='0.0.0.0', port=5005, debug=True)