sigmadream commited on
Commit
7eb81bd
β€’
1 Parent(s): 593a37b
app.py ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import fasttext
3
+
4
+ from transformers import AutoModelForSequenceClassification
5
+ from transformers import AutoTokenizer
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+ import torch
10
+
11
+
12
+ id2label = {0: "NEGATIVE", 1: "POSITIVE"}
13
+ label2id = {"NEGATIVE": 0, "POSITIVE": 1}
14
+
15
+
16
+ title = "Movie Review Score Discriminator"
17
+ description = "It is a program that classifies whether it is positive or negative by entering movie reviews. \
18
+ You can choose between the Korean version and the English version. \
19
+ It also provides a version called ""Default"", which determines whether it is Korean or English and predicts it."
20
+
21
+
22
+ class LanguageIdentification:
23
+ def __init__(self):
24
+ pretrained_lang_model = "./lid.176.ftz"
25
+ self.model = fasttext.load_model(pretrained_lang_model)
26
+
27
+ def predict_lang(self, text):
28
+ predictions = self.model.predict(text, k=200) # returns top 200 matching languages
29
+ return predictions
30
+
31
+ LANGUAGE = LanguageIdentification()
32
+
33
+
34
+
35
+ def tokenized_data(tokenizer, inputs):
36
+ return tokenizer.batch_encode_plus(
37
+ [inputs],
38
+ return_tensors="pt",
39
+ padding="max_length",
40
+ max_length=64,
41
+ truncation=True)
42
+
43
+
44
+
45
+ examples = []
46
+ df = pd.read_csv('examples.csv', sep='\t', index_col='Unnamed: 0')
47
+ np.random.seed(100)
48
+
49
+ idx = np.random.choice(50, size=5, replace=False)
50
+ eng_examples = [ ['Eng', df.iloc[i, 0]] for i in idx ]
51
+ kor_examples = [ ['Kor', df.iloc[i, 1]] for i in idx ]
52
+ examples = eng_examples + kor_examples
53
+
54
+
55
+
56
+ eng_model_name = "roberta-base"
57
+ eng_step = 1900
58
+ eng_tokenizer = AutoTokenizer.from_pretrained(eng_model_name)
59
+ eng_file_name = "{}-{}.pt".format(eng_model_name, eng_step)
60
+ eng_state_dict = torch.load(eng_file_name)
61
+ eng_model = AutoModelForSequenceClassification.from_pretrained(
62
+ eng_model_name, num_labels=2, id2label=id2label, label2id=label2id,
63
+ state_dict=eng_state_dict
64
+ )
65
+
66
+
67
+ kor_model_name = "klue/roberta-small"
68
+ kor_step = 2400
69
+ kor_tokenizer = AutoTokenizer.from_pretrained(kor_model_name)
70
+ kor_file_name = "{}-{}.pt".format(kor_model_name.replace('/', '_'), kor_step)
71
+ kor_state_dict = torch.load(kor_file_name)
72
+ kor_model = AutoModelForSequenceClassification.from_pretrained(
73
+ kor_model_name, num_labels=2, id2label=id2label, label2id=label2id,
74
+ state_dict=kor_state_dict
75
+ )
76
+
77
+
78
+ def builder(Lang, Text):
79
+ percent_kor, percent_eng = 0, 0
80
+ text_list = Text.split(' ')
81
+
82
+
83
+ # [ output_1 ]
84
+ if Lang == '언어감지 κΈ°λŠ₯ μ‚¬μš©':
85
+ pred = LANGUAGE.predict_lang(Text)
86
+ if '__label__en' in pred[0]:
87
+ Lang = 'Eng'
88
+ idx = pred[0].index('__label__en')
89
+ p_eng = pred[1][idx]
90
+ if '__label__ko' in pred[0]:
91
+ Lang = 'Kor'
92
+ idx = pred[0].index('__label__ko')
93
+ p_kor = pred[1][idx]
94
+ # Normalize Percentage
95
+ percent_kor = p_kor / (p_kor+p_eng)
96
+ percent_eng = p_eng / (p_kor+p_eng)
97
+
98
+ if Lang == 'Eng':
99
+ model = eng_model
100
+ tokenizer = eng_tokenizer
101
+ if percent_eng==0: percent_eng=1
102
+
103
+ if Lang == 'Kor':
104
+ model = kor_model
105
+ tokenizer = kor_tokenizer
106
+ if percent_kor==0: percent_kor=1
107
+
108
+
109
+ # [ output_2 ]
110
+ inputs = tokenized_data(tokenizer, Text)
111
+ model.eval()
112
+ with torch.no_grad():
113
+ logits = model(input_ids=inputs['input_ids'],
114
+ attention_mask=inputs['attention_mask']).logits
115
+
116
+ m = torch.nn.Softmax(dim=1)
117
+ output = m(logits)
118
+ # print(logits, output)
119
+
120
+
121
+ # [ output_3 ]
122
+ output_analysis = []
123
+ for word in text_list:
124
+ tokenized_word = tokenized_data(tokenizer, word)
125
+ with torch.no_grad():
126
+ logit = model(input_ids=tokenized_word['input_ids'],
127
+ attention_mask=tokenized_word['attention_mask']).logits
128
+ word_output = m(logit)
129
+ if word_output[0][1] > 0.99:
130
+ output_analysis.append( (word, '+++') )
131
+ elif word_output[0][1] > 0.9:
132
+ output_analysis.append( (word, '++') )
133
+ elif word_output[0][1] > 0.8:
134
+ output_analysis.append( (word, '+') )
135
+ elif word_output[0][1] < 0.01:
136
+ output_analysis.append( (word, '---') )
137
+ elif word_output[0][1] < 0.1:
138
+ output_analysis.append( (word, '--') )
139
+ elif word_output[0][1] < 0.2:
140
+ output_analysis.append( (word, '-') )
141
+ else:
142
+ output_analysis.append( (word, None) )
143
+
144
+
145
+ return [ {'Kor': percent_kor, 'Eng': percent_eng},
146
+ {id2label[1]: output[0][1].item(), id2label[0]: output[0][0].item()},
147
+ output_analysis ]
148
+
149
+ # prediction = torch.argmax(logits, axis=1)
150
+ return id2label[prediction.item()]
151
+
152
+
153
+ # demo3 = gr.Interface.load("models/mdj1412/movie_review_score_discriminator_eng", inputs="text", outputs="text",
154
+ # title=title, theme="peach",
155
+ # allow_flagging="auto",
156
+ # description=description, examples=examples)
157
+
158
+
159
+
160
+ # demo = gr.Interface(builder, inputs=[gr.inputs.Dropdown(['Default', 'Eng', 'Kor']), gr.Textbox(placeholder="리뷰λ₯Ό μž…λ ₯ν•˜μ‹œμ˜€.")],
161
+ # outputs=[ gr.Label(num_top_classes=3, label='Lang'),
162
+ # gr.Label(num_top_classes=2, label='Result'),
163
+ # gr.HighlightedText(label="Analysis", combine_adjacent=False)
164
+ # .style(color_map={"+++": "#CF0000", "++": "#FF3232", "+": "#FFD4D4", "---": "#0004FE", "--": "#4C47FF", "-": "#BEBDFF"}) ],
165
+ # # outputs='label',
166
+ # title=title, description=description, examples=examples)
167
+
168
+
169
+
170
+ with gr.Blocks() as demo1:
171
+ gr.Markdown(
172
+ """
173
+ <h1 align="center">
174
+ Movie Review Score Discriminator
175
+ </h1>
176
+ """)
177
+
178
+ gr.Markdown(
179
+ """
180
+ μ˜ν™” 리뷰λ₯Ό μž…λ ₯ν•˜λ©΄, 리뷰가 긍정인지 뢀정인지 νŒλ³„ν•΄μ£ΌλŠ” λͺ¨λΈμ΄λ‹€. \
181
+ μ˜μ–΄μ™€ ν•œκΈ€μ„ μ§€μ›ν•˜λ©°, μ–Έμ–΄λ₯Ό 직접 μ„ νƒν• μˆ˜λ„, ν˜Ήμ€ λͺ¨λΈμ΄ 언어감지λ₯Ό 직접 ν•˜λ„λ‘ ν•  수 μžˆλ‹€.
182
+ 리뷰λ₯Ό μž…λ ₯ν•˜λ©΄, (1) κ°μ§€λœ μ–Έμ–΄, (2) 긍정 리뷰일 ν™•λ₯ κ³Ό λΆ€μ • 리뷰일 ν™•λ₯ , (3) μž…λ ₯된 리뷰의 μ–΄λŠ 단어가 긍정/λΆ€μ • 결정에 영ν–₯을 μ£Όμ—ˆλŠ”μ§€ \
183
+ (긍정일 경우 빨강색, 뢀정일 경우 νŒŒλž€μƒ‰)λ₯Ό 확인할 수 μžˆλ‹€.
184
+ """)
185
+
186
+ with gr.Accordion(label="λͺ¨λΈμ— λŒ€ν•œ μ„€λͺ… ( μ—¬κΈ°λ₯Ό 클릭 ν•˜μ‹œμ˜€. )", open=False):
187
+ gr.Markdown(
188
+ """
189
+ μ˜μ–΄ λͺ¨λΈμ€ bert-base-uncased 기반으둜, μ˜μ–΄ μ˜ν™” 리뷰 뢄석 데이터셋인 SST-2둜 ν•™μŠ΅ 및 ν‰κ°€λ˜μ—ˆλ‹€.
190
+ ν•œκΈ€ λͺ¨λΈμ€ klue/roberta-base κΈ°λ°˜μ΄λ‹€. κΈ°μ‘΄ ν•œκΈ€ μ˜ν™” 리뷰 뢄석 데이터셋이 μ‘΄μž¬ν•˜μ§€ μ•Šμ•„, 넀이버 μ˜ν™”μ˜ 리뷰λ₯Ό ν¬λ‘€λ§ν•΄μ„œ μ˜ν™” 리뷰 뢄석 데이터셋을 μ œμž‘ν•˜κ³ , 이λ₯Ό μ΄μš©ν•˜μ—¬ λͺ¨λΈμ„ ν•™μŠ΅ 및 ν‰κ°€ν•˜μ˜€λ‹€.
191
+ μ˜μ–΄ λͺ¨λΈμ€ SST-2μ—μ„œ 92.8%, ν•œκΈ€ λͺ¨λΈμ€ 넀이버 μ˜ν™” 리뷰 λ°μ΄ν„°μ…‹μ—μ„œ 94%의 정확도λ₯Ό 가진닀 (test set κΈ°μ€€).
192
+ μ–Έμ–΄κ°μ§€λŠ” fasttext의 language detectorλ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€. 리뷰의 단어별 영ν–₯λ ₯은, 단어 각각을 λͺ¨λΈμ— λ„£μ—ˆμ„ λ•Œ κ²°κ³Όκ°€ κΈμ •μœΌλ‘œ λ‚˜μ˜€λŠ”μ§€ λΆ€μ •μœΌλ‘œ λ‚˜μ˜€λŠ”μ§€λ₯Ό λ°”νƒ•μœΌλ‘œ μΈ‘μ •ν•˜μ˜€λ‹€.
193
+ """)
194
+
195
+ with gr.Row():
196
+ with gr.Column():
197
+ inputs_1 = gr.Dropdown(choices=['언어감지 κΈ°λŠ₯ μ‚¬μš©', 'Eng', 'Kor'], value='언어감지 κΈ°λŠ₯ μ‚¬μš©', label='Lang')
198
+ inputs_2 = gr.Textbox(placeholder="리뷰λ₯Ό μž…λ ₯ν•˜μ‹œμ˜€.", label='Text')
199
+ with gr.Row():
200
+ # btn2 = gr.Button("클리어")
201
+ btn = gr.Button("μ œμΆœν•˜κΈ°")
202
+ with gr.Column():
203
+ output_1 = gr.Label(num_top_classes=3, label='Lang')
204
+ output_2 = gr.Label(num_top_classes=2, label='Result')
205
+ output_3 = gr.HighlightedText(label="Analysis", combine_adjacent=False) \
206
+ .style(color_map={"+++": "#CF0000", "++": "#FF3232", "+": "#FFD4D4", "---": "#0004FE", "--": "#4C47FF", "-": "#BEBDFF"})
207
+
208
+ # btn2.click(fn=fn2, inputs=[None, None], output=[output_1, output_2, output_3])
209
+ btn.click(fn=builder, inputs=[inputs_1, inputs_2], outputs=[output_1, output_2, output_3])
210
+ gr.Examples(examples, inputs=[inputs_1, inputs_2])
211
+
212
+
213
+
214
+ if __name__ == "__main__":
215
+ # print(examples)
216
+ # demo.launch()
217
+ demo1.launch()
examples.csv ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ eng kor
2
+ 0 of saucy 1점도아깝닀4λͺ…λ³΄λ‹€μž¬λ―Έμ—†μ–΄μ„œ2λͺ…λ‚˜κ°
3
+ 1 cold movie 맀트릭슀?γ„΄γ„΄ 짜μž₯ 묻은 μ‘΄μœ…
4
+ 2 redundant concept 개인의 μ„ νƒμœΌλ‘œ 1점을 μ€¬μŠ΅λ‹ˆλ‹€
5
+ 3 in world cinema λ³΄λŠ”λ‚΄λ‚΄ λ‹ˆ μƒκ°λ§Œ 났닀.
6
+ 4 on all cylinders μ˜ν™”λ³΄λ‹€κ°€ μž λ“ μ μ€ μ²˜μŒμ΄λ„€μš”
7
+ 5 sit through , λ”°λœ»ν•œ μ˜ν™”μ—μš”~^^μΆ”μ²œν•΄μš”!
8
+ 6 heroes λ³„λ‘œμ—μš” 생각보닀 λ…ΈμžΌμž„
9
+ 7 sharply μ’‹μ•„μš” κ°€μ‘±λ“€κ³Ό 보기 μ’‹μ•„μš”
10
+ 8 sometimes dry β™‘ 재밌게 μž˜λ΄€μŠ΅λ‹ˆλ‹€γ…Žγ…Ž
11
+ 9 disappointments 반제 ν˜ΈλΉ— μ‚¬λž‘ν•΄μš”~
12
+ 10 the horrors λ˜₯도 이런 κ±°λŒ€ν•œ λ˜₯이 μ—†μ—ˆλ‹€..
13
+ 11 many pointless κ°œμ§€λ¦½λ‹ˆλ‹€ λ‚˜λ§Œλ‹Ήν• μˆœμ—†μ§€
14
+ 12 a beautifully 이게무슨...λ§Œν™”λ„€ λ§Œν™” γ…‰γ…‰γ…‰
15
+ 13 a doa 7광ꡬ와 μŒλ²½μ„ μ΄λ£¨λŠ” λ§μž‘
16
+ 14 no apparent joy μ˜ν™” 보닀가 쀑간에 λ‚˜μ™”μŠ΅λ‹ˆλ‹€
17
+ 15 seem fresh μ΅œμ•… κ·Έλƒ₯ 보지 λ§ˆμ„Έμš”μ§„μ§œ λ…ΈμžΌ
18
+ 16 weak and 짱ꡬ κ·Ήμž₯νŒμ€ μ–Έμ œλ‚˜ μ΅œκ³ μ—μš”
19
+ 17 skip this dreck , λ‚΄ μ‹œκ°„μ€ μ†Œμ€‘ν•œ κ±°λ‹€.
20
+ 18 generates κ²λ‚˜ μž¬λ°ŒλŠ”λ””,,,,
21
+ 19 funny yet κ·Έλƒ₯ 개재밌음 평점 믿으면 μ•ˆλ¨
22
+ 20 in memory μž¬λ°‹κ²Œ μž˜λ΄£μŠ΅λ‹ˆλ‹€ λ„ˆλ¬΄μ’‹μŠ΅λ‹ˆλ‹€μš”
23
+ 21 hawaiian shirt λ°₯ λ¨ΉμœΌλ©΄μ„œ 보기 쒋은 μ˜ν™”
24
+ 22 grievous but μž¬λ―Έμ™€ 감동을 κ²ΈλΉ„ν•œ λͺ…μž‘μž…λ‹ˆλ‹€!!
25
+ 23 hopeless μž¬κ°œλ΄‰ κ°μ‚¬ν•©λ‹ˆλ‹€.μ •λ§λ‘œ
26
+ 24 bring tissues . 끝더 이상 μ„€λͺ…이 ν•„μš”ν• κΉŒ.
27
+ 25 just too silly μ—­μ‹œ 믿보 ν™©.μ •.λ―Ό λ°°μš°λ‹˜~^^
28
+ 26 cinematic bon bons μ—°μΆœ+μ—°κΈ°+μŠ€ν† λ¦¬+μ˜μƒλ―Έ+OST
29
+ 27 irritates and 좔얡에 묻어두지 κ·Έλž¬λƒ
30
+ 28 collapse μ΄μ‹œλŒ€ 졜고의 μ½”λ―Έλ”” μ˜ν™”
31
+ 29 no lika da 재미있게 κ΄€λžŒν•˜μ˜€μŠ΅λ‹ˆλ‹€
32
+ 30 a welcome relief μŠ€λ§ˆμš°κ·Έλž‘ μžˆμ„λ• 슀릴이 λ§Žλ‹€.
33
+ 31 , compelling 처음으둜 κ·Ήμž₯μ—μ„œ μž€μŠ΅λ‹ˆλ‹€
34
+ 32 infectiously λ„ˆλ¬΄λ‚˜λ„ μž˜λ΄€μ–΄μš” κ΅Ώμž…λ‹ˆλŒœ
35
+ 33 imax in short γ…ˆγ„Ήκ²Œ 웃기고 μžΌμžˆλ„€.γ…‹
36
+ 34 i hate it . 연말에 보면 λ­‰ν΄ν•˜λ‹€ 정말
37
+ 35 a good one κ·Έλƒ₯ κ²Œμž„μœΌλ‘œ 내지 κ·Έλž¬λƒ.
38
+ 36 , plodding picture μ§„μ§œ κ°•μΆ” 졜고의 ν•œκ΅­μ˜ν™”
39
+ 37 inane and awful μ§„μ§œμ΅œμ•…μž…λ‹ˆλ‹€...λͺ…μ ˆμ—λ³΄μ„Έμš”
40
+ 38 whole mess λŒ€λ§μž‘ λ³΄μ§€λ§ˆμ„Έμš” 돈 μ•„κΉŒμ›€
41
+ 39 enjoy the ride 이거 λ³Ό μ‹œκ°„μ— μ•Όλ™μ΄λ‚˜ 봐라
42
+ 40 the horror λ„ˆλ¬΄λ„ˆλ¬΄ 재밌음 λ²„μ¦ˆ 졜고
43
+ 41 a dim 3μ‹œκ°„μ΄ μ „ν˜€ 아깝지 μ•Šμ€
44
+ 42 amazingly lame . μ‘Έμž‘μ΄λ‹€..
45
+ 43 to spare wildlife λ…Έμš°μžΌμŠ€γ…‘ 이만작 μ—΄μž μ±„μš°κΈ°
46
+ 44 carnage and 2022λ…„ 졜고 ν•œκ΅­μ˜ν™”
47
+ 45 second fiddle μž¬λ―Έμ—†λ‹€λ„ˆλ¬΄μž¬λ―Έμ—†λ‹€OST지겹닀
48
+ 46 a stylish exercise λ‚˜λ¦„ 재밌게 λ΄„ κ°€λ³κ²Œ 보기 쒋은듯
49
+ 47 than this mess 와...κ°λ…νŒμ΄ 더쒋닀... 더긴데
50
+ 48 valuable messages κ°‘μžκΈ° λ„κ²Œμž γ„Ήγ…‡γ…‹γ…‹
51
+ 49 usual worst 별점 1점도 μ£ΌκΈ°κ°€ μ•„κΉŒμš΄ μ˜ν™”..
gitattributes.txt ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
klue_roberta-small-2400.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1b572a576888999c3696750507168b1ec8c194b93e3b0a5fb69d5932cb61a410
3
+ size 272408049
lid.176.ftz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f3472cfe8738a7b6099e8e999c3cbfae0dcd15696aac7d7738a8039db603e83
3
+ size 938013
model-1900.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f0dcb5d42751656f47868d0b1cd793c33bd2c497df57dde5514a2b15a791d05
3
+ size 498658641
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ gradio
2
+ datasets
3
+ transformers
4
+ torch
5
+ pandas
6
+ numpy
7
+ fasttext
roberta-base-1900.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f0dcb5d42751656f47868d0b1cd793c33bd2c497df57dde5514a2b15a791d05
3
+ size 498658641