JuanJoseMV commited on
Commit
71eacb0
·
1 Parent(s): 16814ca

adding finetuned roberta model

Browse files
Files changed (1) hide show
  1. app.py +25 -52
app.py CHANGED
@@ -1,69 +1,42 @@
1
- # import gradio as gr
2
- # print('hello')
3
- # import torch
4
- # print('sdfsdf')
5
- # def greet(sentiment):
6
- # return "Hello " + sentiment + "!!"
7
-
8
- # iface = gr.Interface(fn=greet, inputs="text", outputs="text")
9
- # iface.launch()
10
-
11
  import gradio as gr
12
  from NeuralTextGenerator import BertTextGenerator
13
- # from transformers import pipeline
14
-
15
- # generator = pipeline("sentiment-analysis")
16
 
17
- # print('dfg')
18
  model_name = "cardiffnlp/twitter-xlm-roberta-base" #"dbmdz/bert-base-italian-uncased"
19
  en_model = BertTextGenerator(model_name)
20
- tokenizer = en_model.tokenizer
21
- model = en_model.model
22
- device = model.device
23
 
24
- en_model.tokenizer.add_special_tokens({'additional_special_tokens': [
 
 
 
 
 
 
25
  '[POSITIVE-0]',
26
  '[POSITIVE-1]',
27
  '[POSITIVE-2]',
28
  '[NEGATIVE-0]',
29
  '[NEGATIVE-1]',
30
- '[NEGATIVE-2]']})
31
- en_model.model.resize_token_embeddings(len(en_model.tokenizer))
32
-
33
- # def classify(sentiment):
34
- # parameters = {'n_sentences': 1,
35
- # 'batch_size': 2,
36
- # 'avg_len':30,
37
- # 'max_len':50,
38
- # # 'std_len' : 3,
39
- # 'generation_method':'parallel',
40
- # 'sample': True,
41
- # 'burnin': 450,
42
- # 'max_iter': 100,
43
- # 'top_k': 100,
44
- # 'seed_text': f"[{sentiment}-0] [{sentiment}-1] [{sentiment}-2] Ronaldo",
45
- # # 'verbose': True
46
- # }
47
- # sents = en_model.generate(**parameters)
48
- # gen_text = ''
49
 
50
- # for i, s in enumerate(sents):
51
- # gen_text += f'- GENERATED TWEET #{i}: {s}\n'
52
-
53
- # return gen_text
54
 
55
- # demo = gr.Blocks()
 
56
 
57
- # with demo:
58
- # gr.Markdown()
59
- # inputs = gr.Radio(["POSITIVE", "NEGATIVE"], label="Sentiment to generate") # gr.Dropdown(["POSITIVE", "NEGATIVE"], label="Sentiment to generate")
60
- # output = gr.Textbox(label="Generated tweet")
61
- # b1 = gr.Button("Generate")
62
- # b1.click(classify, inputs=inputs, outputs=output)
63
 
 
64
 
 
 
 
 
 
 
65
 
66
- def sentence_builder(n_sentences, max_iter, sentiment, seed_text):
67
  parameters = {'n_sentences': n_sentences,
68
  'batch_size': 2,
69
  'avg_len':30,
@@ -77,22 +50,22 @@ def sentence_builder(n_sentences, max_iter, sentiment, seed_text):
77
  'seed_text': f"[{sentiment}-0] [{sentiment}-1] [{sentiment}-2] {seed_text}",
78
  'verbose': True
79
  }
80
- sents = en_model.generate(**parameters)
81
  gen_text = ''
82
 
83
  for i, s in enumerate(sents):
84
  gen_text += f'- GENERATED TWEET #{i}: {s}\n'
85
 
86
  return gen_text
87
- # 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"}"""
88
 
89
 
90
  demo = gr.Interface(
91
  sentence_builder,
92
  [
 
93
  gr.Slider(1, 15, value=2, label="Num. Tweets", step=1, info="Number of tweets to be generated."),
94
  gr.Slider(50, 500, value=100, label="Max. iter", info="Maximum number of iterations for the generation."),
95
- gr.Radio(["POSITIVE", "NEGATIVE"], label="Sentiment to generate"),
96
  gr.Textbox('', label="Seed text", info="Seed text for the generation.")
97
  ],
98
  "text",
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from NeuralTextGenerator import BertTextGenerator
 
 
 
3
 
 
4
  model_name = "cardiffnlp/twitter-xlm-roberta-base" #"dbmdz/bert-base-italian-uncased"
5
  en_model = BertTextGenerator(model_name)
 
 
 
6
 
7
+ finetunned_BERT_model_name = "JuanJoseMV/BERT_text_gen"
8
+ finetunned_BERT_en_model = BertTextGenerator(finetunned_BERT_model_name)
9
+
10
+ finetunned_RoBERTa_model_name = "JuanJoseMV/XLM_RoBERTa_text_gen"
11
+ finetunned_RoBERTa_en_model = BertTextGenerator(finetunned_RoBERTa_model_name)
12
+
13
+ special_tokens = [
14
  '[POSITIVE-0]',
15
  '[POSITIVE-1]',
16
  '[POSITIVE-2]',
17
  '[NEGATIVE-0]',
18
  '[NEGATIVE-1]',
19
+ '[NEGATIVE-2]'
20
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ en_model.tokenizer.add_special_tokens({'additional_special_tokens': special_tokens})
23
+ en_model.model.resize_token_embeddings(len(en_model.tokenizer))
 
 
24
 
25
+ finetunned_BERT_en_model.tokenizer.add_special_tokens({'additional_special_tokens': special_tokens})
26
+ finetunned_BERT_en_model.model.resize_token_embeddings(len(en_model.tokenizer))
27
 
28
+ finetunned_RoBERTa_en_model.tokenizer.add_special_tokens({'additional_special_tokens': special_tokens})
29
+ finetunned_RoBERTa_en_model.model.resize_token_embeddings(len(en_model.tokenizer))
 
 
 
 
30
 
31
+ def sentence_builder(selected_model, n_sentences, max_iter, sentiment, seed_text):
32
 
33
+ if selected_model == "Finetuned_RoBERTA":
34
+ generator = finetunned_RoBERTa_en_model
35
+ elif selected_model == "Finetuned_BERT":
36
+ generator = finetunned_BERT_en_model
37
+ else:
38
+ generator = en_model
39
 
 
40
  parameters = {'n_sentences': n_sentences,
41
  'batch_size': 2,
42
  'avg_len':30,
 
50
  'seed_text': f"[{sentiment}-0] [{sentiment}-1] [{sentiment}-2] {seed_text}",
51
  'verbose': True
52
  }
53
+ sents = generator.generate(**parameters)
54
  gen_text = ''
55
 
56
  for i, s in enumerate(sents):
57
  gen_text += f'- GENERATED TWEET #{i}: {s}\n'
58
 
59
  return gen_text
 
60
 
61
 
62
  demo = gr.Interface(
63
  sentence_builder,
64
  [
65
+ gr.Radio(["Pre-trained", "Finetuned_RoBERTA", "Finetunned_BERT"], value="Pre-trained", label="Sentiment to generate"),
66
  gr.Slider(1, 15, value=2, label="Num. Tweets", step=1, info="Number of tweets to be generated."),
67
  gr.Slider(50, 500, value=100, label="Max. iter", info="Maximum number of iterations for the generation."),
68
+ gr.Radio(["POSITIVE", "NEGATIVE"], value="POSITIVE", label="Sentiment to generate"),
69
  gr.Textbox('', label="Seed text", info="Seed text for the generation.")
70
  ],
71
  "text",