Spaces:
Running
Running
no bert; score text
Browse files
app.py
CHANGED
|
@@ -1,32 +1,75 @@
|
|
|
|
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
-
import torch
|
| 3 |
-
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification, DistilBertForSequenceClassification
|
| 4 |
|
| 5 |
-
|
|
|
|
| 6 |
|
| 7 |
-
|
| 8 |
-
|
| 9 |
|
| 10 |
-
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
output_text = "\n"
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
gradio_app = gr.Interface(
|
| 21 |
fn=predict,
|
| 22 |
inputs="text",
|
| 23 |
outputs="text",
|
| 24 |
examples=[
|
| 25 |
-
"
|
| 26 |
-
"
|
| 27 |
-
"I
|
| 28 |
-
"
|
| 29 |
-
"
|
|
|
|
|
|
|
| 30 |
]
|
| 31 |
)
|
| 32 |
|
|
|
|
| 1 |
+
from __future__ import print_function, division, unicode_literals
|
| 2 |
+
|
| 3 |
import gradio as gr
|
|
|
|
|
|
|
| 4 |
|
| 5 |
+
import sys
|
| 6 |
+
from os.path import abspath, dirname
|
| 7 |
|
| 8 |
+
import json
|
| 9 |
+
import numpy as np
|
| 10 |
|
| 11 |
+
from torchmoji.sentence_tokenizer import SentenceTokenizer
|
| 12 |
+
from torchmoji.model_def import torchmoji_emojis
|
| 13 |
|
| 14 |
+
model_name = "Uberduck/torchmoji"
|
| 15 |
+
model_path = model_name + "/pytorch_model.bin"
|
| 16 |
+
vocab_path = model_name + "/vocabulary.json"
|
| 17 |
+
|
| 18 |
+
def top_elements(array, k):
|
| 19 |
+
ind = np.argpartition(array, -k)[-k:]
|
| 20 |
+
return ind[np.argsort(array[ind])][::-1]
|
| 21 |
+
|
| 22 |
+
maxlen = 30
|
| 23 |
+
|
| 24 |
+
print('Tokenizing using dictionary from {}'.format(vocab_path))
|
| 25 |
+
with open(vocab_path, 'r') as f:
|
| 26 |
+
vocabulary = json.load(f)
|
| 27 |
+
|
| 28 |
+
st = SentenceTokenizer(vocabulary, maxlen)
|
| 29 |
|
| 30 |
+
print('Loading model from {}.'.format(model_path))
|
| 31 |
+
model = torchmoji_emojis(model_path)
|
| 32 |
+
print(model)
|
| 33 |
+
|
| 34 |
+
def doImportableFunction():
|
| 35 |
+
return
|
| 36 |
+
|
| 37 |
+
def predict(deepmoji_analysis):
|
| 38 |
output_text = "\n"
|
| 39 |
+
print('Running predictions.')
|
| 40 |
+
tokenized, _, _ = st.tokenize_sentences(TEST_SENTENCES)
|
| 41 |
+
prob = model(tokenized)
|
| 42 |
+
|
| 43 |
+
for prob in [prob]:
|
| 44 |
+
# Find top emojis for each sentence. Emoji ids (0-63)
|
| 45 |
+
# correspond to the mapping in emoji_overview.png
|
| 46 |
+
# at the root of the torchMoji repo.
|
| 47 |
+
scores = []
|
| 48 |
+
for i, t in enumerate(TEST_SENTENCES):
|
| 49 |
+
t_tokens = tokenized[i]
|
| 50 |
+
t_score = [t]
|
| 51 |
+
t_prob = prob[i]
|
| 52 |
+
ind_top = top_elements(t_prob, 5)
|
| 53 |
+
t_score.append(sum(t_prob[ind_top]))
|
| 54 |
+
t_score.extend(ind_top)
|
| 55 |
+
t_score.extend([t_prob[ind] for ind in ind_top])
|
| 56 |
+
scores.append(t_score)
|
| 57 |
+
output_text += t_score
|
| 58 |
+
|
| 59 |
+
return str(tokenized) + output_text
|
| 60 |
|
| 61 |
gradio_app = gr.Interface(
|
| 62 |
fn=predict,
|
| 63 |
inputs="text",
|
| 64 |
outputs="text",
|
| 65 |
examples=[
|
| 66 |
+
"You love hurting me, huh?",
|
| 67 |
+
"I know good movies, this ain't one",
|
| 68 |
+
"It was fun, but I'm not going to miss you",
|
| 69 |
+
"My flight is delayed.. amazing.",
|
| 70 |
+
"What is happening to me??",
|
| 71 |
+
"This is the shit!",
|
| 72 |
+
"This is shit!",
|
| 73 |
]
|
| 74 |
)
|
| 75 |
|