Machine learning 清理NLP任务的文本数据
今天早上,我一直在尝试训练一个关于康奈尔大学电影——对话语料库数据集的聊天机器人,但我在清理文本数据以输入我的算法时遇到了问题。 下面是文本文件中的片段 L924++$+++++u2++++$+++m0++++$+++++CAMERON++++$+++++Wow 我只对每个句子最后部分的对话感兴趣。 如何清理此文件并使其成为csv文档 数据集链接Machine learning 清理NLP任务的文本数据,machine-learning,text,nlp,chatbot,data-cleaning,Machine Learning,Text,Nlp,Chatbot,Data Cleaning,今天早上,我一直在尝试训练一个关于康奈尔大学电影——对话语料库数据集的聊天机器人,但我在清理文本数据以输入我的算法时遇到了问题。 下面是文本文件中的片段 L924++$+++++u2++++$+++m0++++$+++++CAMERON++++$+++++Wow 我只对每个句子最后部分的对话感兴趣。 如何清理此文件并使其成为csv文档 数据集链接 图案就在那里++$++。将其拆分,您将获得CSV数据 好吧,您可以使用简单的正则表达式来实现这一点 代码片段 import re string =
图案就在那里<代码>++$++。将其拆分,您将获得CSV数据 好吧,您可以使用简单的正则表达式来实现这一点 代码片段
import re
string = "+++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ They do not!"
cleaned = " ".join(re.findall("[a-zA-Z]+", string))
print(cleaned)
输出:
'u m BIANCA他们没有'
在每一行上都执行它。我建议您将数据转换为pandas数据帧,并使用.apply()方法完成清理将所有行作为字符串进行迭代 假设你有: str=“++$+++u0++$+++m0++++$+++++++BIANCA++++$+++++他们没有!” 你想说“他们没有!” 你喜欢: str.split(“++$+++”[-1] 这将为您提供所需的输出。一旦你有了字符串输出,把它们一行一行地写在你的.csv文件中
希望这有帮助。尝试此库进行基本清洁: 有一个名为remove_symbols()的函数,您还可以将列表而不是文件作为参数传递 下面是使用此功能的文档链接。 还有许多其他功能用于清理文本数据
我希望这会有所帮助:)您可以使用“+++\$++”作为分隔符将文本分隔成列
df=pd.read_csv('training_data/movie_lines.txt', sep = '\+\+\+\$\+\+\+', engine = 'python', header=None)
您将得到如下内容,然后您可以删除不想使用的列
0 1 2 3 4
0 L1045 u0 m0 BIANCA They do not!
1 L1044 u2 m0 CAMERON They do to!
2 L985 u0 m0 BIANCA I hope so.
3 L984 u2 m0 CAMERON She okay?
4 L925 u0 m0 BIANCA Let's go.
现在,要删除不必要的列,请使用:
df.drop(df.columns[0:4], axis=1, inplace=True)
4
0 They do not!
1 They do to!
2 I hope so.
3 She okay?
4 Let's go.
df.drop(df.columns[0:4], axis=1, inplace=True)
4
0 They do not!
1 They do to!
2 I hope so.
3 She okay?
4 Let's go.