Perhatikan kode analisis sentimen berikut!
"import numpy as np
import pandas as pd
import pickle
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import confusion_matrix, classification_report, accuracy_score
from keras.preprocessing.text import Tokenizer
from keras.utils import pad_sequences
from keras.models import Sequential
from keras.layers import Embedding, Conv1D, MaxPooling1D, LSTM, Dense, GlobalMaxPooling1D, Reshape
from keras.callbacks import EarlyStopping, ModelCheckpoint
import gensim
from gensim.models import Word2Vec
from keras.layers import Dropout
from keras.regularizers import l2
from keras.utils import to_categorical
from keras.optimizers import Adam
from keras.callbacks import LearningRateScheduler
# Parameter untuk regularisasi L2
l2_coeff = 0.01
def lr_decay(epoch, lr):
    decay_rate = 0.1
    decay_step = 10
    if epoch % decay_step == 0 and epoch > 0:
        return lr * decay_rate
    return lr

# Membaca dataset
data_list = pickle.load(open('pre_processed_berita_121_joined_FIX_parpolheuristic_added.pkl', 'rb'))
data = pd.DataFrame(data_list, columns=['judul', 'isi', 'pre_processed', 'Label', 'Partai_Politik_Heuristic'])
data['Isi Berita'] = data['pre_processed']

# Tokenisasi dan Padding
max_words = 10000  # mengurangi jumlah kata maksimum
max_len =  500     # mengurangi panjang input
tokenizer = Tokenizer(num_words=max_words)
tokenizer.fit_on_texts(data['Isi Berita'])
sequences = tokenizer.texts_to_sequences(data['Isi Berita'])
X = pad_sequences(sequences, maxlen=max_len)
y = to_categorical(data['Label'].astype('category').cat.codes)

# Membagi data menjadi data latih dan data uji
X_train, X_test, y_train, y_test, idx_train, idx_test = train_test_split(X, y, data.index, test_size=0.25, random_state=42)


# Membuka model word2vec
path = 'idwiki_word2vec_300.model'
id_w2v = gensim.models.word2vec.Word2Vec.load(path)
wv = id_w2v.wv

# Membuat embeding matrix
embedding_dim = id_w2v.vector_size
embedding_matrix = np.zeros((max_words, embedding_dim))

for word, i in tokenizer.word_index.items():
    if i < max_words:
        try:
            embedding_vector = wv[word]
            embedding_matrix[i] = embedding_vector
        except KeyError:
            pass

# Membangun model CNN-LSTM dengan pre-trained Word2Vec
num_filters = 64
lstm_units = 64

model = Sequential([
    Embedding(input_dim=10000,
              output_dim=300,
              input_length=500,
              weights=[embedding_matrix], 
              trainable=False),
    Conv1D(256, 3, activation='relu', kernel_regularizer=l2(0.01)),
    GlobalMaxPooling1D(),
    Dropout(0.1),
    Reshape((-1, 256)),
    LSTM(200, return_sequences=False, kernel_regularizer=l2(0.01), recurrent_regularizer=l2(0.01)),
    Dropout(0.5),
    Dense(32, activation='relu', kernel_regularizer=l2(0.01)),
    Dropout(0.2),
    Dense(3, activation='softmax')
])

# Fungsi decay
def scheduler(epoch, lr):
    return lr / (1 + (1 * epoch))

# Buat callback learning rate scheduler
callback_lr = LearningRateScheduler(scheduler)

# Buat callback early stopping
callback_es = EarlyStopping(monitor='val_loss', patience=5, verbose=1, restore_best_weights=True)

# Inisialisasi optimizer dengan learning rate awal
initial_learning_rate = 0.0001
optimizer = Adam(learning_rate=initial_learning_rate)

# Kompilasi model
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])

# Latih model dengan menggunakan learning rate scheduler dan early stopping dalam callbacks
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=50, batch_size=128, callbacks=[callback_es])

# Mengevaluasi model
y_pred = model.predict(X_test)
y_pred = np.argmax(y_pred, axis=1)
y_true = np.argmax(y_test, axis=1)

# Menambahkan kolom hasil prediksi ke DataFrame data
data['Label_Hasil_Prediksi'] = None # inisialisasi kolom dengan None
data.loc[idx_test, 'Label_Hasil_Prediksi'] = y_pred

# Export ke file CSV
data.to_csv('CNN-LSTM_Word2Vec_Tertinggi_CNN256_LSTM200.csv', columns=['judul', 'isi', 'Label', 'Label_Hasil_Prediksi', 'Partai_Politik_Heuristic'], index=False, sep=';')

# Menghitung akurasi
accuracy = accuracy_score(y_true, y_pred)
print(f"Akurasi: {accuracy}")

# Menampilkan classification report
report = classification_report(y_true, y_pred, target_names=['Negatif', 'Netral', 'Positif'])
print("Classification Report:")
print(report)"

Hasil report analisis sentimen adalah sebagai berikut:
160/160 [==============================] - 3s 17ms/step
Akurasi: 0.6579358874120407
Classification Report:
              precision    recall  f1-score   support

     Negatif       0.63      0.65      0.64      1567
      Netral       0.69      0.77      0.73      2743
     Positif       0.54      0.29      0.38       806

    accuracy                           0.66      5116
   macro avg       0.62      0.57      0.58      5116
weighted avg       0.65      0.66      0.65      5116

Bagaimana jika saya ingin memprediksi data tertentu? Misal ada data pickle bernama "input_berita_coba_coba.pkl" (struktur sudah disamakan dengan pre_processed_berita_121_joined_FIX_parpolheuristic_added.pkl) , nah saya ingin prediksi setiap beritanya dengan model itu, apakah bisa ditambahkan kodenya di bawah kode classification report?