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