File size: 3,297 Bytes
7e6d4d1
 
 
f957ae9
 
c2dbaac
 
 
 
 
7e6d4d1
 
 
70b4cc0
7f79884
 
f957ae9
 
 
 
 
 
 
 
 
 
 
 
 
c2dbaac
 
 
 
 
 
 
 
 
 
 
0754326
c2dbaac
 
 
7e6d4d1
70b4cc0
 
 
 
 
 
 
 
 
4c740cc
7e6d4d1
 
 
 
 
012dca9
 
 
 
 
 
 
 
7e6d4d1
c2dbaac
 
 
 
7e6d4d1
 
 
 
 
70b4cc0
 
 
 
7e6d4d1
70b4cc0
c2dbaac
012dca9
 
 
 
f957ae9
c2dbaac
 
7e6d4d1
70b4cc0
012dca9
 
c2dbaac
f957ae9
8a39aa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# from transformers import AutoModelWithLMHead, AutoTokenizer
# Translate
from transformers import T5ForConditionalGeneration, T5Tokenizer
import gradio as grad

# make a question
# text2text_tkn = AutoTokenizer.from_pretrained('mrm8488/t5-base-finetuned-question-generation-ap')
# mdl = AutoModelWithLMHead.from_pretrained('mrm8488/t5-base-finetuned-question-generation-ap')

# summarize
# text2text_tkn = AutoTokenizer.from_pretrained('deep-learning-analytics/wikihow-t5-small')
# mdl = AutoModelWithLMHead.from_pretrained('deep-learning-analytics/wikihow-t5-small')

# translate, sentiment
text2text_tkn = T5Tokenizer.from_pretrained('t5-small')
mdl = T5ForConditionalGeneration.from_pretrained('t5-small')

def text2text(context, answer):
    input_text = "answer: %s context: %s </s>" % (answer, context)
    features = text2text_tkn([input_text], return_tensors = 'pt')
    output = mdl.generate(
        input_ids = features['input_ids'],
        attention_mask = features['attention_mask'],
        max_length = 64
    )
    response = text2text_tkn.decode(output[0])

    return response

def text2text_summary(para):
    initial_txt = para.strip().replace("\n", "")
    tkn_text = text2text_tkn.encode(initial_txt, return_tensors = 'pt')
    tkn_ids = mdl.generate(
        tkn_text,
        max_length = 250,
        num_beams = 5,
        repetition_penalty = 2.5,
        early_stopping = True
    )

    response = text2text_tkn.decode(tkn_ids[0], skip_special_tokens = True)

    return response

def text2text_translate(text):
    inp = "translate English to German:: " + text
    enc = text2text_tkn(inp, return_tensors = 'pt')
    tokens = mdl.generate(**enc)
    response = text2text_tkn.batch_decode(tokens)

    return response

def text2text_sentiment(text):
    inp = "sst2 sentence: " + text
    enc = text2text_tkn(inp, return_tensors = 'pt')
    tokens = mdl.generate(**enc)
    response = text2text_tkn.batch_decode(tokens)

    return response

def text2text_acceptable_sentence(text):
    inp = "cola sentence: " + text
    enc = text2text_tkn(inp, return_tensors = 'pt')
    tokens = mdl.generate(**enc)
    response = text2text_tkn.batch_decode(tokens)

    return response

# question
# context = grad.Textbox(lines = 10, label = 'English', placeholder = 'Context')
# ans = grad.Textbox(lines = 1, label = 'Answer')
# out = grad.Textbox(lines = 1, label = 'Generated Question')

# summary
# para = grad.Textbox(lines = 10, label = 'Paragraph', placeholder = 'Copy paragraph')
# out = grad.Textbox(lines = 1, label = 'Summary')

# tranlate
# para = grad.Textbox(lines = 1, label = 'English Text', placeholder = 'Text in English')
# out = grad.Textbox(lines = 1, label = 'German Translation')

# sentiment
para = grad.Textbox(lines = 1, label = 'English Text', placeholder = 'Text in English')
out = grad.Textbox(lines = 1, label = 'Sentiment')

# grammatical acceptance
para = grad.Textbox(lines = 1, label = 'English Text', placeholder = 'Text in English')
out = grad.Textbox(lines = 1, label = 'Whether the sentence is acceptable or not')

grad.Interface(
   # text2text,
    # inputs = [context, ans],
    # text2text_summary,
    # text2text_translate,
    # text2text_sentiment,
    text2text_acceptable_sentence,
    inputs = para,
    outputs = out
).launch()