Я пытаюсь обучить модель суммирования тестов Keras для создания нового заголовка для новостной статьи, который затем я могу сравнить с опубликованным заголовком.Я тренируюсь на GloVe 6B, затем прогнозирую по статье, которую я очистил, удалив теги, проанализировав, удалив стоп-слова, лемматизировал, а затем снова присоединился.Мои результаты, как правило, выглядят так:
Оригинальный заголовок: «Форд» отправился в Мэриленд в августе, несмотря на то, что якобы «боязнь полета» сгенерирован. Заголовок: мнение: the the to to
Текст статьи после очистки:Обвинитель Бретта Кавано, Кристина Блейси Форд, прошла тест на детекторе лжи вдали от дома в Калифорнии, несмотря на предполагаемый страх перед полетом. Документы, выпущенные в среду, прошли тест на детекторе лжи, проведенный в Форде 7 августа. Отель Hilton Linthicum Heights, штат Мэриленд, далеко Балтиморский международный аэропорт в Вашингтоне. Подруга Кейт ДеВарни Блейси Форд любит летать в трудное время.Маршрут побега Кристина Блейси Профессор Форд, обвиняющий кандидатуру Верховного суда Бретта Кавано в том, что он подвергся сексуальному насилию в старшей школе, о которой ранее рассказывал друг, предположительно, столкнулся 30 лет назад с долговременным эффектом жизни Два давних друга Форда, о которых CNN неделю ранее описывал чувство дискомфорта, борющихся в замкнутом пространстве, выход из выходной двери вызвал дискомфортостановил предполагаемую встречу с КаваноАрни сказал, что самолет в высшей степени закрыто вдали. Страх, пролетавший над Фордом, может свидетельствовать своевременно. Сенатский судебный орган. В письме сенатор-демократ от Калифорнии Дайан Файнштейн от 30 июля 2018 года.
Вот мой тренировочный код:
from __future__ import print_function
import pandas as pd
from sklearn.model_selection import train_test_split
from keras_text_summarization.library.utility.plot_utils import plot_and_save_history
from keras_text_summarization.library.seq2seq import Seq2SeqGloVeSummarizer
from keras_text_summarization.library.applications.fake_news_loader import fit_text
import numpy as np
LOAD_EXISTING_WEIGHTS = False
def main():
np.random.seed(42)
data_dir_path = './data'
very_large_data_dir_path = './very_large_data'
report_dir_path = './reports'
model_dir_path = './models'
print('loading csv file ...')
df = pd.read_csv("dcr Man_Cleaned.csv")
print('extract configuration from input texts ...')
Y = df.Title
X = df['Joined']
config = fit_text(X, Y)
print('configuration extracted from input texts ...')
summarizer = Seq2SeqGloVeSummarizer(config)
summarizer.load_glove(very_large_data_dir_path)
if LOAD_EXISTING_WEIGHTS:
summarizer.load_weights(weight_file_path=Seq2SeqGloVeSummarizer.get_weight_file_path(model_dir_path=model_dir_path))
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, test_size=0.2, random_state=42)
print('training size: ', len(Xtrain))
print('testing size: ', len(Xtest))
print('start fitting ...')
history = summarizer.fit(Xtrain, Ytrain, Xtest, Ytest, epochs=20, batch_size=16)
history_plot_file_path = report_dir_path + '/' + Seq2SeqGloVeSummarizer.model_name + '-history.png'
if LOAD_EXISTING_WEIGHTS:
history_plot_file_path = report_dir_path + '/' + Seq2SeqGloVeSummarizer.model_name + '-history-v' + str(summarizer.version) + '.png'
plot_and_save_history(history, summarizer.model_name, history_plot_file_path, metrics={'loss', 'acc'})
if __name__ == '__main__':
main()
Любые мысли о том, что здесь происходит не так, приветствуются.