-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
120 lines (96 loc) · 2.94 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
# Get the total number of args passed to the demo.py
total = len(sys.argv)
# Get the arguments list
cmdargs = str(sys.argv)
# Print it
print("Args list: %s " % cmdargs)
host = str(sys.argv[1])
if (host == ""):
host = '0.0.0.0'
port = str(sys.argv[2])
if (port == ""):
port = 80
from flask import Flask, render_template, request, url_for, redirect, send_from_directory
from markupsafe import escape
# from spacy import displacy
import spacy
import uuid
from pathlib import Path
# loading models - polish and german
# nlp_pl = pl_core_news_md.load()
# nlp_de = de_core_news_md.load()
nlp_pl = spacy.load("pl_core_news_md")
nlp_de = spacy.load("de_core_news_md")
app = Flask(__name__, static_url_path='/public', static_folder='public')
IMG_PATH = "public/svg/"
@app.route('/semantic/<language>/<sentence>')
def semantic(language='pl', sentence='Witaj w szkole'):
print(language)
print(sentence)
language = escape(language)
# sentence = escape(sentence)
if language == "pl":
doc = nlp_pl(sentence)
else:
doc = nlp_de(sentence)
# print([(w.text, w.pos_) for w in doc])
print(doc)
result = {}
result["words"] = []
result["types"] = []
result["all"] = {}
x = 0
for w in doc:
x += 1
print(w.text, w.pos_)
result["words"].append(w.text)
result["types"].append(w.pos_.lower())
result["all"][w.pos_] = w.text
return result
@app.route('/svg/filename/<language>/<sentence>')
def svg_filename(language='pl', sentence='Witaj w szkole'):
print(language)
print(sentence)
language = escape(language)
# sentence = escape(sentence)
if language == "pl":
doc = nlp_pl(sentence)
else:
doc = nlp_de(sentence)
print([(w.text, w.pos_) for w in doc])
svg = spacy.displacy.render(doc, style="dep")
filename = str(uuid.uuid4()) + '.svg'
output_path = Path(IMG_PATH + filename)
output_path.open("w", encoding="utf-8").write(svg)
return filename
@app.route('/svg/blob/<language>/<sentence>')
def svg_blob(language='pl', sentence='Witaj w szkole'):
print(language)
print(sentence)
language = escape(language)
# sentence = escape(sentence)
if language == "pl":
doc = nlp_pl(sentence)
else:
doc = nlp_de(sentence)
print([(w.text, w.pos_) for w in doc])
svg = spacy.displacy.render(doc, style="dep")
filename = str(uuid.uuid4()) + '.svg'
output_path = Path(IMG_PATH + filename)
output_path.open("w", encoding="utf-8").write(svg)
return svg
@app.route('/', methods=['GET', 'POST'])
def index():
# return app.send_static_file('index.html')
# return redirect('index.html')
return redirect('public/index.html')
# return render_template("index.html")
# http://localhost/svg/pl/Witaj
if __name__ == '__main__':
print(host)
print(port)
app.run(host=host, port=port)
# app.run(debug=True)