Emanuel commited on
Commit
19d4726
1 Parent(s): 0eaf09a

First commit

Browse files
Files changed (5) hide show
  1. .gitignore +160 -0
  2. app.py +96 -0
  3. bottom.html +11 -0
  4. style.css +69 -0
  5. top.html +19 -0
.gitignore ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
app.py ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import os
3
+ from typing import List, Tuple
4
+
5
+ import gradio as gr
6
+ import pandas as pd
7
+ import spacy
8
+ from transformers import AutoModelForTokenClassification, AutoTokenizer
9
+
10
+ try:
11
+ nlp = spacy.load("pt_core_news_sm")
12
+ except Exception:
13
+ os.system("python -m spacy download pt_core_news_sm")
14
+ nlp = spacy.load("pt_core_news_sm")
15
+
16
+ model = AutoModelForTokenClassification.from_pretrained("Emanuel/bertimbau-base-pos")
17
+ tokenizer = AutoTokenizer.from_pretrained("Emanuel/bertimbau-base-pos")
18
+ logger = logging.getLogger()
19
+ logger.setLevel(logging.DEBUG)
20
+
21
+
22
+ def predict(text, nlp, logger=None) -> Tuple[List[str], List[str]]:
23
+ doc = nlp(text)
24
+ tokens = [token.text for token in doc]
25
+
26
+ logger.info("Starting predictions for sentence: {}".format(text))
27
+
28
+ input_tokens = tokenizer(
29
+ tokens,
30
+ return_tensors="pt",
31
+ is_split_into_words=True,
32
+ return_offsets_mapping=True,
33
+ return_special_tokens_mask=True,
34
+ )
35
+ output = model(input_tokens["input_ids"])
36
+
37
+ i_token = 0
38
+ labels = []
39
+ for off, is_special_token, pred in zip(
40
+ input_tokens["offset_mapping"][0],
41
+ input_tokens["special_tokens_mask"][0],
42
+ output.logits[0],
43
+ ):
44
+ if is_special_token or off[0] > 0:
45
+ continue
46
+ label = model.config.__dict__["id2label"][int(pred.argmax(axis=-1))]
47
+ if logger is not None:
48
+ logger.info("{}, {}, {}".format(off, tokens[i_token], label))
49
+ labels.append(label)
50
+ i_token += 1
51
+
52
+ return tokens, labels
53
+
54
+
55
+ def text_analysis(text):
56
+ tokens, labels = predict(text, nlp, logger)
57
+ pos_count = pd.DataFrame(
58
+ {
59
+ "token": tokens,
60
+ "etiqueta": labels,
61
+ }
62
+ )
63
+ pos_tokens = []
64
+ for token, label in zip(tokens, labels):
65
+ pos_tokens.extend([(token, label), (" ", None)])
66
+
67
+ return pos_tokens, pos_count
68
+
69
+
70
+ css = open("style.css").read()
71
+ top_html = open("top.html").read()
72
+ bottom_html = open("bottom.html").read()
73
+
74
+ with gr.Blocks(css=css) as demo:
75
+ gr.HTML(top_html)
76
+ text = gr.Textbox(placeholder="Insira um texto...", label="Texto de entrada")
77
+ output_highlighted = gr.HighlightedText()
78
+ output_df = gr.Dataframe()
79
+ submit_btn = gr.Button("Enviar")
80
+ submit_btn.click(
81
+ fn=text_analysis, inputs=text, outputs=[output_highlighted, output_df]
82
+ )
83
+ examples = gr.Examples(
84
+ examples=[
85
+ [
86
+ "A população não poderia ter acesso a relatórios que explicassem, por exemplo, os motivos exatos de atrasos em obras de linhas e estações."
87
+ ],
88
+ ["Filme 'Star Wars : Os Últimos Jedi' ganha trailer definitivo; assista."],
89
+ ],
90
+ inputs=[text],
91
+ label="Exemplos",
92
+ )
93
+ gr.HTML(bottom_html)
94
+
95
+
96
+ demo.launch()
bottom.html ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div>
2
+ <hr style="border-top: 1px solid gray">
3
+ <div class="row">
4
+ <img class="column" alt="C4AI USP logo"
5
+ src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALUAAABICAYAAACwX7RuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMC1jMDAwIDc5LmRhYmFjYmIsIDIwMjEvMDQvMTQtMDA6Mzk6NDQgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMi41IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzQ2MUEzQzBDQjYxMUVDOUE0RTk3QTYwODQ3N0MxOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzQ2MUEzRDBDQjYxMUVDOUE0RTk3QTYwODQ3N0MxOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3NDYxQTNBMENCNjExRUM5QTRFOTdBNjA4NDc3QzE4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3NDYxQTNCMENCNjExRUM5QTRFOTdBNjA4NDc3QzE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bXvwqwAAFhBJREFUeNrsXQmU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" />
6
+ <img class="column" alt="NILC (Núcleo Interinstitucional de Linguística Computacional) logo"
7
+ src="data:image/png;base64,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" />
8
+ <img class="column" alt="ICMC-USP logo"
9
+ src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Webysther_20170627_-_Logo_ICMC-USP.svg/2560px-Webysther_20170627_-_Logo_ICMC-USP.svg.png" />
10
+ </div>
11
+ </div>
style.css ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ a {
2
+ color: inherit;
3
+ text-decoration: underline;
4
+ }
5
+
6
+ .gradio-container {
7
+ font-family: 'IBM Plex Sans', sans-serif;
8
+ }
9
+
10
+ .gr-button {
11
+ color: white;
12
+ border-color: #9d66e5;
13
+ background: #9d66e5;
14
+ }
15
+
16
+ .container {
17
+ max-width: 730px;
18
+ margin: auto;
19
+ padding-top: 1.5rem;
20
+ }
21
+
22
+ .gr-button {
23
+ white-space: nowrap;
24
+ }
25
+
26
+ .gr-button:focus {
27
+ border-color: rgb(147 197 253 / var(--tw-border-opacity));
28
+ outline: none;
29
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
30
+ --tw-border-opacity: 1;
31
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
32
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px var(--tw-ring-offset-width)) var(--tw-ring-color);
33
+ --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
34
+ --tw-ring-opacity: .5;
35
+ }
36
+
37
+ #advanced-options {
38
+ margin-bottom: 20px;
39
+ }
40
+
41
+ .footer {
42
+ margin-bottom: 45px;
43
+ margin-top: 35px;
44
+ text-align: center;
45
+ border-bottom: 1px solid #e5e5e5;
46
+ }
47
+
48
+ .footer>p {
49
+ font-size: .8rem;
50
+ display: inline-block;
51
+ padding: 0 10px;
52
+ transform: translateY(10px);
53
+ background: white;
54
+ }
55
+
56
+ .slogan {
57
+ font-size: 15px;
58
+ color: #495057;
59
+ }
60
+
61
+ .row {
62
+ display: flex;
63
+ margin-top: 20px;
64
+ }
65
+
66
+ .column {
67
+ flex: 33.33%;
68
+ padding: 5px;
69
+ }
top.html ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div style="text-align: center; max-width: 650px; margin: 0 auto;">
2
+ <div>
3
+ <h1 style="font-weight: 900; font-size: 3rem; margin: 20px;">
4
+ PorPos tagger
5
+ </h1>
6
+ <p class="slogan">A Brazilian Portuguese part-of-speech tagger according to Universal
7
+ Dependencies</p>
8
+ </div>
9
+ <p style="margin-top: 30px; margin-bottom: 10px; font-size: 94%; text-align: left;">
10
+ PorPos (Porttinari Part-Of-Speech) tagger was trained on the <a
11
+ href="https://sites.google.com/icmc.usp.br/poetisa/resources-and-tools">Porttinari-base</a> corpus which is
12
+ a collection of news extracted from the Folha de São Paulo newspaper site. The trained model is a fine-tuned
13
+ version
14
+ of <a src="https://huggingface.co/neuralmind/bert-base-portuguese-cased">Bertimbau</a> that receives tokens and
15
+ outputs part-of-speech tags. Since the model expects a sequence of
16
+ tokens
17
+ for its inputs, <a src="https://spacy.io/models/pt">Spacy's</a> tokenization is used to tokenize the input text.
18
+ </p>
19
+ </div>