Как тренироваться на простых текстовых параграфах и возвращать ключевые фразы?это вообще возможно? - PullRequest
3 голосов
/ 03 мая 2019

Я работаю над извлечением ключевой фразы, сейчас я смог создать некоторые функции и запустить фразы-кандидаты вместе с функциями для обучения модели машинного обучения для классификации с использованием случайного леса.

Теперь из любопытства я хочу попробовать глубокое изучение, поскольку я хочу удалить слой извлечения объектов вручную, и я хочу, чтобы он сам разбирался в объектах и ​​генерировал модель, просто передавая некоторые текстовые документы иЯ хочу знать, относительные ключевые фразы (1/0, правильные или неправильные) для каждого документа, допускает ли какая-либо модель обучения простой текст вместо значений с плавающей запятой, и если нет, то как мне попытаться добиться того же самого путем преобразования предложений и ключевых фраз вплавающие значения и переход к обучающей модели

Даже пытался создать модель с использованием последовательной модели Keras (образец дан)

model = Sequential()
model.add(Dense(18, input_dim=14, init='uniform', activation='relu'))
model.add(Dense(14, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the model
model.fit(X, Y, epochs=300, batch_size=10)

Please provide me any informative resources to start and has code samples as well.

Ответы [ 2 ]

4 голосов
/ 03 мая 2019

Вы можете использовать word2Vector, чтобы преобразовать каждое слово в вектор, есть некоторый предварительно обученный вектор слов. Например, новости Google (300 слов в каждом слове), Википедия (400 слов в каждом слове). Это общие векторы слов. Если ваше содержание взято из каких-то определенных источников, вы можете использовать gensim для обучения ваших собственных векторов слов. Вы можете определить длину объекта, как вы хотите (100 или даже меньше). Поскольку ваш собственный вектор слов не должен охватывать столько слов, сколько Google и Wikipedia. Используйте слово vector для обозначения слова, и ваши предложения или фразы будут последовательностью векторов. Затем вы можете использовать RNN, GRU или LSTM любые модели временных рядов для обучения ядра. Предсказать 1 или 0 в качестве ключевой фразы или нет. Также называется распознаванием именованных объектов.

2 голосов
/ 07 мая 2019

Вы можете использовать слой Embedding в Keras, который по сути является таблицей поиска: от индекса слова до соответствующего вектора слова, который обучается с остальной частью сети. Перед передачей вашего текста на этот слой вам необходимо закодировать его в последовательность индексов слов.

В результате вы получите вектор слов переменной длины. Чтобы обработать его, вы можете закодировать его с помощью повторяющихся слоев, как предлагает Jiajie Yu, или с помощью сверточных слоев и одномерного пула (некоторые говорят, что свертки больше подходят для извлечения ключевой фразы).

Игрушечный пример предварительной обработки текста и использования встраиваемого слоя, который вы можете получить здесь , используя сверточные слои поверх него - здесь и LSTM - здесь . И this является примером использования embedding + LSTM для прогнозирования POS-тега для каждого слова; Вы можете легко изменить его, чтобы предсказать, относится ли слово к ключевой фразе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...