Vsevolod commited on
Commit
702c23d
·
1 Parent(s): f5af1fc

added pipeline

Browse files
Files changed (3) hide show
  1. app.py +27 -6
  2. pipeline.pkl +3 -0
  3. requirements.txt +3 -1
app.py CHANGED
@@ -1,6 +1,10 @@
1
- import numpy as np
 
 
 
2
  import gradio as gr
3
- from scipy.special import softmax
 
4
 
5
  doc_cls = [
6
  "Договоры аренды",
@@ -10,17 +14,34 @@ doc_cls = [
10
  "Договоры поставки"
11
  ]
12
 
13
- def foo(doc):
14
- probs = softmax(np.random.rand(len(doc_cls)))
15
- return {d:p for d, p in zip(doc_cls, probs)}
 
 
 
 
 
 
 
 
 
16
 
17
  def main():
 
 
 
 
 
 
 
18
  with gr.Blocks() as demo:
19
  doc = gr.File(label="Документ")
20
  output = gr.Label(label="Результаты классификации")
21
  button = gr.Button(value="Классифицировать", variant="primary")
22
- button.click(foo, doc, output)
23
  demo.launch()
 
24
 
25
  if __name__ == "__main__":
26
  main()
 
1
+ import tika
2
+ tika.initVM()
3
+ from tika import parser
4
+ import pickle
5
  import gradio as gr
6
+ from sklearn.pipeline import Pipeline
7
+ from tempfile import _TemporaryFileWrapper
8
 
9
  doc_cls = [
10
  "Договоры аренды",
 
14
  "Договоры поставки"
15
  ]
16
 
17
+ class Classifier:
18
+ def __init__(self, pipeline: Pipeline):
19
+ self.pipeline = pipeline
20
+ def __call__(self, doc: _TemporaryFileWrapper):
21
+ if not doc:
22
+ return
23
+ doc.seek(0)
24
+ buffer = doc.read(-1)
25
+ parsed = parser.from_buffer(buffer)
26
+ content = parsed["content"]
27
+ probs = self.pipeline.predict_proba([content])[0]
28
+ return {d:p for d, p in zip(doc_cls, probs)}
29
 
30
  def main():
31
+ tika.initVM()
32
+
33
+ with open("pipeline.pkl", "rb") as file:
34
+ pipeline: Pipeline = pickle.load(file)
35
+
36
+ classifier = Classifier(pipeline)
37
+
38
  with gr.Blocks() as demo:
39
  doc = gr.File(label="Документ")
40
  output = gr.Label(label="Результаты классификации")
41
  button = gr.Button(value="Классифицировать", variant="primary")
42
+ button.click(classifier, doc, output)
43
  demo.launch()
44
+
45
 
46
  if __name__ == "__main__":
47
  main()
pipeline.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e1ccfea510902c1199fe52d7621443287062ef5096be2db02102154ad3a5872
3
+ size 4188941
requirements.txt CHANGED
@@ -1 +1,3 @@
1
- scipy
 
 
 
1
+ tika
2
+ scikit-learn
3
+