我正在使用 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')
问:我应该如何构建我的训练数据以及可以应用哪些启发式方法从原始数据中提取它?