keras и nlp - когда использовать .texts_to_matrix вместо .texts_to_sequences? - PullRequest
1 голос
/ 17 июня 2020

Keras предлагает несколько вспомогательных функций для обработки текста:

texts_to_sequences и texts_to_matrix

Кажется, что большинство людей используют тексты_to_sequences, но мне непонятно, почему одна из них выбрано вместо другого, и при каких условиях вы можете использовать texts_to_matrix.

1 Ответ

0 голосов
/ 25 августа 2020

text_to_matrix легко понять. Он преобразует тексты в матрицу со столбцами, относящимися к словам, и ячейкам, несущим номер появления или присутствия. Такой дизайн будет полезен для прямого применения алгоритмов машинного обучения (логистическая c регрессия, дерево решений и т. Д. c.)

text_to_sequence создаст списки, которые представляют собой набор целых чисел, представляющих слова. Некоторым функциям, таким как встраивание Keras, требуется этот формат для предварительной обработки.

Рассмотрим пример ниже.

txt = ['Python is great and useful', 'Python is easy to learn', 'Python is easy to implement']
txt = pd.Series(txt)

tok = Tokenizer(num_words=10)
tok.fit_on_texts(txt)
mat_texts = tok.texts_to_matrix(txt, mode='count')
mat_texts

Вывод: array ([[0., 1., 1., 0., 0., 1., 1., 1., 0., 0.], [0., 1., 1., 1., 1., 0., 0., 0., 1., 0.] , [0., 1., 1., 1., 1., 0., 0., 0., 0., 1.]])

tok.get_config()['word_index']

Вывод: '{"python «: 1,» составляет: 2, «легко»: 3, «в»: 4, «отлично»: 5, «и»: 6, «полезно»: 7, «учиться»: 8, «реализовывать» : 9} '

mat_texts_seq = tok.texts_to_sequences(txt)
mat_texts_seq

Вывод: - [[1, 2, 5, 6, 7], [1, 2, 3, 4, 8], [1, 2, 3, 4, 9]]

...