File size: 1,202 Bytes
74be9b2
 
 
e452513
74be9b2
 
 
 
 
 
252d274
6fcc800
e452513
 
 
 
 
6fcc800
 
74be9b2
 
 
 
 
 
 
 
6fcc800
74be9b2
 
 
 
 
 
 
 
 
 
 
 
 
6fcc800
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

import gradio as gr
import json
import pickle
import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

# Static constants
max_seq_len = 18
model = tf.keras.models.load_model('poembot_weight.h5')

with open('tokenizer.pickle', 'rb') as handle:
    tokenizer = pickle.load(handle)


with open("word_token.json") as wt:
    word_token = json.load(wt)
# Main function
def text_generator(seed_text,n):

    for _ in range(n):
        token_list = tokenizer.texts_to_sequences([seed_text])[0]
        token_list = pad_sequences([token_list], maxlen=max_seq_len-1, padding='pre')
        predicted = np.argmax(model.predict(token_list), axis=-1)
        output_word = ""
        output_word = word_token.get(str(predicted[0]))
        if "0" in output_word[-1]: 
            output_word = output_word[:-1]
            seed_text += " " + output_word +"."
            break
        seed_text += " " + output_word
    return seed_text
iface = gr.Interface(
    fn=text_generator, 
    inputs=["text","slider"], 
    outputs="text",
    title="Poem Bot",
    live=False
    )
iface.launch(debug=True)