需求:
下图的dataframe,我要把里面的所有的句子进行切词,然后把question,dialouge,report 的内容合并成一列方便来构建词向量
最后变成:
代码
import pandas as pd
import jieba
data = {
'QID': ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'],
'Brand': ['奔驰', '奔驰', '宝马', 'Jeep', '奔驰'],
'Model': ['奔驰GL级', '奔驰M级', '宝马X1(进口)', '牧马人', '奔驰C级'],
'Question': ['方向机重,助力泵,方向机都换了', '奔驰ML500排气凸轮轴调节错', '2010款宝马X1,2011年', '3.0V6发动机号在什么位置,', '2012款奔驰c180怎么样,'],
'Dialogue': ['技师说:[语音]|车主说:新的', '技师说:你这个有没有电脑检测故', '技师说:你好,4缸自然吸气发动', '技师说:右侧排气管上方,缸体上', '技师说:家庭用车的话,还是可以'],
'Report': ['随时联系', '随时联系', '行驶没有顿挫的感觉,原地换挡有', '举起车辆,在左前轮这边的缸体上', '家庭用车可以入手的,维修保养价']
}
df = pd.DataFrame(data)
def sentence_proc(sentence):
'''
接受句子,切词然后用' '拼接起来后面用apply 配合这个函数批量处理数据
'''
sentence = jieba.cut(sentence)
# 拼接成一个字符串,按空格分隔
return ' '.join(sentence)
for col_name in ['Brand', 'Model', 'Question', 'Dialogue','Report']:
df[col_name] = df[col_name].apply(sentence_proc)
接下来合并列数据
df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x))
可以看到这是按行合并,不是我们想要的结果
df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x))
加上坐标轴参数,设置为第二个坐标轴就可以
df['Merged'] = df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x),axis=1)
df
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210522124256343.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDY3MzA0Mw==,size_16,color_FFFFFF,t_70)