14

Gensim Doc2Vec モデルを使用して、カスタマー サポートの会話の一部をクラスター化しようとしています。私の目標は、サポート チームに自動応答の提案を提供することです。

図 1:ユーザーの質問が次の会話行で回答される会話の例を示しており、データを簡単に抽出できます。

図1

会話中に「こんにちは」「私たちのオフィスはニューヨークにあります」と提案する必要があります


図 2:質問と回答が同期していない会話を説明する

図 2

会話中に「こんにちは」「私たちのオフィスはニューヨークにあります」と提案する必要があります


図 3:回答のコンテキストが時間の経過とともに構築される会話を示しており、分類の目的で (私は推測していますが)、一部の行は冗長です。

図 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 : トレーニング データをどのように構造化すればよいですか? また、生データからトレーニング データを抽出するために適用できるヒューリスティックは何ですか?

4

1 に答える 1