Skip to content
Snippets Groups Projects
Commit 4612be7f authored by qadadri's avatar qadadri
Browse files

Translation + Classification + Extraction

parent 44355836
Branches
1 merge request!1Ui chatbot
......@@ -5,12 +5,20 @@ from random import randrange
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
import tensorflow_text
from tensorflow import keras
import spacy
from googletrans import Translator
app = Flask(__name__)
ordo = None
hist = None
lock_hist = None
model_b = None
model_s = None
model_t = None
def check_week_clear():
global lock_hist
......@@ -25,7 +33,8 @@ def check_week_clear():
print("Done ! Schedule Reset.")
return 0
@app.before_first_request
def start():
global lock_hist
global ordo
......@@ -34,6 +43,22 @@ def start():
hist = []
lock_hist = []
# Chargement des deux modèles:
global model_b
global model_s
global model_t
print("Loading Translation Model ...")
model_t = Translator()
print("Model Translation Loaded")
print("Loading Model Bert ....")
model_b = keras.models.load_model('./static/model/model-classifier')
print("Model Bert Loaded")
print("Loading Model Spacy ...")
model_s = spacy.load("./static/model/model-extraction")
print("Model Spacy Loaded")
@app.route('/', methods = ['POST', 'GET'])
def index():
......@@ -56,16 +81,36 @@ def get_post_javascript_data():
global hist
jsdata = request.form['javascript_data']
# Traitement NLP
# Sending data to UI
nb_pages = randrange(4000, 10000)
result = ordo.add_creneau(nb_pages)
if result[0] == -1:
response = {'flask_data': f"Something is wrong : {result[1]}"}
global model_t
global model_b
global model_s
#Translation ...
translated_text = (model_t.translate(jsdata, dest='en')).text
print(f"Translated Text: {translated_text}")
#Classification + Extraction
y_pred_c = model_b.predict([translated_text])
print(f"Classifier : {y_pred_c}")
if y_pred_c[0] < 0.5:
response = {'flask_data': "Something is wrong : Your request is not accepted make sure to precise the name of the document and the number of pages"}
else:
hist.append(result)
response = {'flask_data': f"Done : you can find your query in the calendar ! Take care. ! Nb Pages : {nb_pages}"}
# Sending data to UI
doc = model_s(translated_text)
print(f'Extraction : {doc.ents}')
nb_pages = -1
for ent in doc.ents:
if ent.label_ == "DocName":
nb_pages = int(ent.text)
break
result = ordo.add_creneau(nb_pages)
if result[0] == -1:
response = {'flask_data': f"Something is wrong : {result[1]}"}
else:
hist.append(result)
response = {'flask_data': f"Done : you can find your query in the calendar ! Take care. ! Nb Pages : {nb_pages}"}
return json.dumps(response)
@app.route('/ready', methods = ['POST'])
......@@ -92,4 +137,5 @@ if __name__ == '__main__':
check_week_clear,
trigger=trigger
)
start()
app.run(debug=True)
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment