Как разбить данные разговора на пары (Контекст, Ответ)
Я использую модель 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: Как я должен структурировать свои тренировочные данные и какую эвристику можно применить, чтобы извлечь их из необработанных данных?