如何在数据帧中对句子和短语进行热编码?

2024-10-03 06:26:48 发布

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

我正在寻找一种方法来热编码一个数据帧的字符串和短语充满。数据框有两列,“应答文本”和“上下文”。你知道吗

我想对两列中的每个字符串进行一次热编码。因为“答案文本”是从“上下文”列中的任何内容派生出来的,所以我有点希望这两个列都使用相同的词汇表进行编码,这样我就可以向我的神经网络输入它没有看到的问题,并从它读过的文本部分生成答案。 为了完成这项任务,我首先求助于scikit learn的MultiLabelBinarizer:

from sklearn.preprocessing import MultiLabelBinarizer
contextTotal = pd.concat((trainingData["context"],devData["context"]))
print("Gathered content")
contextBinarizer = MultiLabelBinarizer()
contextBinarizer.fit(contextTotal.str.split(" "))
print(contextBinarizer.classes_) # Why is this giving me an array of arrays?
test = contextBinarizer.inverse_transform(contextBinarizer.transform(pd.Series([["Saint","Bernadette"]])))
print("Test",test)
print("Content binarizer fit.")

但是,对于answer\u text列,我希望能够重建原始字符串。例如,我使用字符串“Saint-Bernadette-Soubirous”测试的任何方法在反转时都应该给我字符串“Saint-Bernadette-Soubirous”——这是我使用MultiLabelBinarizer时不会发生的事情。你知道吗

编辑:我也乐于使用TensorFlow、Keras和Pandas。你知道吗

这是the dataset。你知道吗


Tags: 数据方法字符串答案文本编码contextfit