File size: 2,108 Bytes
72c7bb7
 
6f1edb3
 
 
 
 
72c7bb7
6f1edb3
72c7bb7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6f1edb3
72c7bb7
 
 
 
 
 
 
 
6f1edb3
 
72c7bb7
 
 
 
 
 
 
6f1edb3
 
72c7bb7
 
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
import tensorflow.keras.backend as K
from tensorflow.keras.layers import LSTM  
from pickle import load
import numpy as np
import tensorflow as tf
import gradio as gr

model_V2 = 'ByteLevelLM.h5'

K.clear_session()
tf.keras.backend.clear_session()
np.random.seed(42)
tf.random.set_seed(42)
HeNormal = tf.keras.initializers.he_normal()
daily_V2 = tf.keras.models.load_model(model_V2, 
                                      custom_objects={'HeNormal': HeNormal},compile=False)
#Tokenizer
def tokenize():
    import json
    with open('Tokenizer.json', encoding='utf-8') as f:
        data = json.load(f)
        tokenizer = tf.keras.preprocessing.text.tokenizer_from_json(data)
    with open('index2char.json', encoding='utf-8') as f:
        index2char = json.load(f)
    char2index = dict((int(v),int(k)) for k,v in index2char.items())
    tokenizer.word_index = char2index
    return tokenizer
    
def model2_preds(news_headline_input):  
    headline = news_headline_input
    headline = '<s>' + headline + '<\s'

    tokenizer = tokenize()
    
    sample_2 = headline.encode('utf-8') 
    sample_2 = tokenizer.texts_to_sequences([sample_2])

    predict_v2 = daily_V2.predict(sample_2, verbose = 0)[0,0]
    # app_type = ui_display(title = "Model 2 Predictions (256 Bits Embeddings)")
    return "Probability of Buy Signal from News Headline/s: %f" % predict_v2   

# Create an instance of the Gradio Interface application function with the appropriate parameters. 
app = gr.Interface(fn=model2_preds, 
                   title="Event Driven Trading (Byte Level Language Modelling)",
                   description='News headlines from OverNight concatenated for next day Buy/Sell Probability/Signal',
                   inputs = gr.Textbox(label="News Headline/s", info='Separate several news headlines by a space'),
                   outputs=gr.Textbox(show_label = True,label="Prediction", info='This is the probability to buy at market close today and sell market close tomorrow'),
                   submit_btn = 'Predict')

# Launch the app
if __name__ == '__main__':
    app.launch(share=True)