JuanJoseMV's picture
changing model
16814ca
raw
history blame
3.25 kB
# import gradio as gr
# print('hello')
# import torch
# print('sdfsdf')
# def greet(sentiment):
# return "Hello " + sentiment + "!!"
# iface = gr.Interface(fn=greet, inputs="text", outputs="text")
# iface.launch()
import gradio as gr
from NeuralTextGenerator import BertTextGenerator
# from transformers import pipeline
# generator = pipeline("sentiment-analysis")
# print('dfg')
model_name = "cardiffnlp/twitter-xlm-roberta-base" #"dbmdz/bert-base-italian-uncased"
en_model = BertTextGenerator(model_name)
tokenizer = en_model.tokenizer
model = en_model.model
device = model.device
en_model.tokenizer.add_special_tokens({'additional_special_tokens': [
'[POSITIVE-0]',
'[POSITIVE-1]',
'[POSITIVE-2]',
'[NEGATIVE-0]',
'[NEGATIVE-1]',
'[NEGATIVE-2]']})
en_model.model.resize_token_embeddings(len(en_model.tokenizer))
# def classify(sentiment):
# parameters = {'n_sentences': 1,
# 'batch_size': 2,
# 'avg_len':30,
# 'max_len':50,
# # 'std_len' : 3,
# 'generation_method':'parallel',
# 'sample': True,
# 'burnin': 450,
# 'max_iter': 100,
# 'top_k': 100,
# 'seed_text': f"[{sentiment}-0] [{sentiment}-1] [{sentiment}-2] Ronaldo",
# # 'verbose': True
# }
# sents = en_model.generate(**parameters)
# gen_text = ''
# for i, s in enumerate(sents):
# gen_text += f'- GENERATED TWEET #{i}: {s}\n'
# return gen_text
# demo = gr.Blocks()
# with demo:
# gr.Markdown()
# inputs = gr.Radio(["POSITIVE", "NEGATIVE"], label="Sentiment to generate") # gr.Dropdown(["POSITIVE", "NEGATIVE"], label="Sentiment to generate")
# output = gr.Textbox(label="Generated tweet")
# b1 = gr.Button("Generate")
# b1.click(classify, inputs=inputs, outputs=output)
def sentence_builder(n_sentences, max_iter, sentiment, seed_text):
parameters = {'n_sentences': n_sentences,
'batch_size': 2,
'avg_len':30,
'max_len':50,
# 'std_len' : 3,
'generation_method':'parallel',
'sample': True,
'burnin': 450,
'max_iter': max_iter,
'top_k': 100,
'seed_text': f"[{sentiment}-0] [{sentiment}-1] [{sentiment}-2] {seed_text}",
'verbose': True
}
sents = en_model.generate(**parameters)
gen_text = ''
for i, s in enumerate(sents):
gen_text += f'- GENERATED TWEET #{i}: {s}\n'
return gen_text
# return f"""The {quantity} {animal}s from {" and ".join(countries)} went to the {place} where they {" and ".join(activity_list)} until the {"morning" if morning else "night"}"""
demo = gr.Interface(
sentence_builder,
[
gr.Slider(1, 15, value=2, label="Num. Tweets", step=1, info="Number of tweets to be generated."),
gr.Slider(50, 500, value=100, label="Max. iter", info="Maximum number of iterations for the generation."),
gr.Radio(["POSITIVE", "NEGATIVE"], label="Sentiment to generate"),
gr.Textbox('', label="Seed text", info="Seed text for the generation.")
],
"text",
)
demo.launch()