Я новичок в моделях прогнозирования текста, у меня есть три столбца, такие как вопрос и ответы и отвлекающий фактор. как это:
question answer_text distractor
0 Meals can be served in rooms at 9:00 p. m. 'outside the room at 3:00 p. m.', 'in the dining - room at 6:00 p. m.', 'in the dining - room from 7:30 a. m. to 9:15 p. m.'
1 It can be inferred from the passage that The local government can deal with the problem of lacking money by some means . 'If some tragedies occur again ', ' relevant departments of the State Council should take responsibility completely .',
Как генерировать дистракторы в тестовом наборе. Помогите мне, пожалуйста . Я попробовал это:
import string
from nltk.stem.wordnet import WordNetLemmatizer
def clean_text(text):
## Remove puncuation
text = text.translate(string.punctuation)
## Convert words to lower case and split them
text = text.lower().split()
text = " ".join(text)
## Clean the text
text = re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", text)
text = re.sub(r"\'s", " ", text)
text = re.sub(r",", " ", text)
text = re.sub(r"\.", " ", text)
text = re.sub(r"!", "", text)
text = re.sub(r"\/", " ", text)
text = re.sub(r"\^", " ^ ", text)
text = re.sub(r"\+", " + ", text)
text = re.sub(r"\-", " - ", text)
text = re.sub(r"\=", " = ", text)
text = re.sub(r"'", " ", text)
text = re.sub(r":", " ", text)
text=text.split()
lemma=WordNetLemmatizer()
lemma_words=[lemma.lemmatize(word) for word in text]
text = " ".join(lemma_words)
return text
train['answer_text'] = train['answer_text'].map(lambda x: clean_text(x))
train['distractor'] = train['distractor'].map(lambda x: clean_text(x))
train['question']=train['question'].map(lambda x: clean_text(x))
после этого я применил токенизатор:
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
tokenizer = Tokenizer(nb_words=20000)
tokenizer.fit_on_texts(train['question'])
sequences = tokenizer.texts_to_sequences(train['question'])
word_index = tokenizer.word_index
print('Found %s unique tokens.' % len(word_index))
data = pad_sequences(sequences, maxlen=100)
tokenizer = Tokenizer(nb_words=20000)
tokenizer.fit_on_texts(train['answer_text'])
sequences1 = tokenizer.texts_to_sequences(train['answer_text'])
word_index1 = tokenizer.word_index
print('Found %s unique tokens.' % len(word_index1))
data1 = pad_sequences(sequences1, maxlen=100)
После этого я не понимал, как воспринимать ярлыки как отвлекающие и как обучать модель,Пожалуйста, помогите мне, как это сделать