如何将变量附加到数据帧以构建seq2seq训练集?

2024-09-29 23:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想基于包含对话的数据集构建一个seq2seq培训集

我当前包含对话的数据集(名为:“仅抄本测试”)的格式为:


msgTextmsgSource

“问题1”访客

“回答1”代理人

“回答1.2”代理

“问题2”访客

“问题2.1”访客

“回答2”代理人


msgSource

对于我的seq2seq模型,我希望创建以下形式的数据集:


访客代理

问题1“回答者1”

“问题2.1”“回答2”


因此,代理直接回答的每个访问者的问题都包括在新的数据集中,以及代理给出的第一个答案中

为此,我尝试了三种不同的方法:

seq2seq_test = pd.DataFrame(columns = ('Visitor', 'Agent'))

#Attempt 1
newLine = 1

for seq in range(len(only_transcripts_test)-1):
    if only_transcripts_test.msgSource[seq+1] == 'visitor' and only_transcripts_test.msgSource[seq+2] == 'agent':
        seq2seq_test = seq2seq_test.append({'Visitor': only_transcripts_test.msgSource[seq+1], 'Agent': only_transcripts_test.msgSource[seq+2]}, ignore_index = True)

#Attempt 2
newLine = 0
seq2seq_test = pd.DataFrame(columns = ('Visitor', 'Agent'))

for seq in range(len(only_transcripts_test)-1):
    newLine+= 1

    if only_transcripts_test.msgSource[seq+1] == 'visitor' and only_transcripts_test.msgSource[seq+2] == 'agent':
        seq2seq_test.Visitor[newLine] = only_transcripts_test.msgSource[seq+1]
        seq2seq_test.Agent[newLine] = only_transcripts_test.msgSource[seq+2]

#Attempt 3
newLine = 1
seq2seq_test = pd.DataFrame(columns = ('Visitor', 'Agent'))

for seq in range(len(only_transcripts_test)-1):
    if only_transcripts_test.msgSource[seq+1] == 'visitor' and only_transcripts_test.msgSource[seq+2] == 'agent':
        seq2seq_test.loc['Visitor'][newLine] = only_transcripts_test.msgSource[seq+1]
        seq2seq_test.loc['Agent'][newLine] = only_transcripts_test.msgSource[seq+2]

        newLine+=1

如何更改代码以获得所需的输出格式


Tags: columns数据test代理onlydataframenewlineseq

热门问题