Как разбить данные разговора на пары (Контекст, Ответ)

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

Рисунок 1: показывает пример беседы, на которые пользовательский вопрос отвечает в следующей строке разговора, облегчая извлечение данных:

во время разговора"Привет" а также«Наши офисы расположены в Нью-Йорке» следует предложить

Фигура 2: описывает разговор, в котором вопросы и ответы не синхронизированы

во время разговора"Привет" а также«Наши офисы расположены в Нью-Йорке» следует предложить

Рисунок 3: описывает разговор, в котором контекст для ответа строится с течением времени, и для целей классификации (я предполагаю) некоторые строки являются избыточными.

во время разговора"вот ссылка на бесплатный пробный аккаунт" следует предложить

У меня есть следующие данные на строку разговора (упрощенно):
кто написал строку (пользователь или агент), текст, отметку времени

Я использую следующий код для обучения моей модели:

from gensim.models import Doc2Vec
from gensim.models.doc2vec import TaggedLineDocument
import datetime

print('Creating documents',datetime.datetime.now().time())
context = TaggedLineDocument('./test_data/context.csv')

print('Building model',datetime.datetime.now().time())

model = Doc2Vec(context,size = 200, window = 10, min_count = 10, workers=4)
print('Training...',datetime.datetime.now().time())

for epoch in range(10):
    print('Run number :',epoch)
    model.train(context)

model.save('./test_data/model')

Q: Как я должен структурировать свои тренировочные данные и какую эвристику можно применить, чтобы извлечь их из необработанных данных?

Ответы на вопрос(1)

Ваш ответ на вопрос