So werden Konversationsdaten in Paare von (Kontext, Antwort) @ aufgetei

Ich verwende das Gensim Doc2Vec-Modell und versuche, Teile von Kundenunterstützungsgesprächen zu gruppieren. Mein Ziel ist es, dem Support-Team Vorschläge für automatische Antworten zu unterbreiten.

Abbildung 1 zeigt ein Beispiel für eine Konversation, bei der die Benutzerfrage in der nächsten Konversationszeile beantwortet wird, wodurch das Extrahieren der Daten vereinfacht wird:

während des Gesprächs"Hallo" und "Unsere Büros befinden sich in NYC" sollte vorgeschlagen werden

Figur 2 beschreibt eine Konversation, bei der die Fragen und Antworten nicht synchron sind

während des Gesprächs"Hallo" und "Unsere Büros befinden sich in NYC" sollte vorgeschlagen werden

Figur 3 beschreibt eine Konversation, bei der der Kontext für die Antwort über einen längeren Zeitraum aufgebaut wird und aus Gründen der Klassifizierung (ich nehme an) einige der Zeilen redundant sind.

während des Gesprächs "hier ist ein Link für das kostenlose Testkonto" sollte vorgeschlagen werden

Ich habe folgende Daten pro Konversationsleitung (vereinfacht):
wer schrieb die Zeile (Benutzer oder Agent), Text, Zeitstempel

Ich benutze den folgenden Code, um mein Modell zu trainieren:

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: Wie soll ich meine Trainingsdaten strukturieren und welche Heuristiken können angewendet werden, um sie aus den Rohdaten zu extrahieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage