Лучший способ подачи текстовых документов, содержащих помеченные высказывания, в модель глубокого обучения - PullRequest
2 голосов
/ 07 января 2020

Я строю модель классификации текста в тензорном потоке (экспериментирую с различными архитектурами от BiLSTM до 1DCon vnet, et c.) Мои данные структурированы следующим образом:

1 корпус документов

~ 100 документов, сделанных из независимых, но похожих по контексту многопартийных транскрипций разговоров (временных рядов).

~ 200 высказываний на каждый документ с пометкой (одно и то же соглашение о маркировке для всех документов

Другими словами, это выглядит так (структура меток выглядит одинаково, но с одним целым на строку):

data = [
       [
       'hello how are you'
       'i am good'
       'whats the weather today'
       ...,
       ],
       [
       'how long have you had that cough'
       'roughly 2 weeks'
       'anything else'
       ...,
       ],
       ...,
       ]
       

Прямо сейчас я передаю свои данные в мои модели в виде плоского списка строк (данных) и целых чисел (меток) путем выравнивания всех документов. Это работает, но мне интересно, если это лучший способ обработки моих данных. IIU C, использование любого типа RNN означает, что моя модель «запоминает» предыдущие данные. Однако, поскольку каждый документ содержит отдельные разговоры, текст из документа 1 не влияет на текст из документа 2 и т. Д. Интуитивно понятно, что поскольку каждый документ является независимым разговором, я хочу, чтобы модель «помнила», что произошло в начале разговора в конце разговора, но «забыла» при переходе к следующему. Правильна ли эта интуиция?

Какова лучшая практика в этом сценарии? Есть ли способ подачи по одному документу за один раз (т. Е. Установка размера пакета на длину документа?)? Будет ли это иметь значение, или это плоский список способ go?

Спасибо.

1 Ответ

1 голос
/ 09 января 2020

Кажется, у вас есть коллекция диалогов, и вы хотите классифицировать каждый ход в диалоге на некоторое количество классов.

Аналогичная, хорошо изученная проблема - это классификация актов диалога. Классификация действий диалога - это задача классификации высказывания относительно функции, которую он выполняет в диалоге, то есть действия, выполняемого говорящим. Диалоговые акты - это тип речевых актов (для теории речевых актов см. Остин (1975) и Сирл (1969) ).

Статья "Последовательность акта диалога" Маркировка с использованием иерархического кодера с CRF "] (https://arxiv.org/abs/1709.04250) имеет доступный код: GitHub . Это академический c код, а не самый ясный. Неясно, какую версию TF они используют.

RE: размер партии - они используют batchSize = 2 ( строка ). Диалоги имеют высказывания переменной длины.

Я думаю, что вы должны прочитать статью, хотя есть много соответствующих цитат, таких как

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

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