Machine learning 清理NLP任务的文本数据

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 =

今天早上,我一直在尝试训练一个关于康奈尔大学电影——对话语料库数据集的聊天机器人,但我在清理文本数据以输入我的算法时遇到了问题。 下面是文本文件中的片段

L924++$+++++u2++++$+++m0++++$+++++CAMERON++++$+++++Wow 我只对每个句子最后部分的对话感兴趣。 如何清理此文件并使其成为csv文档

数据集链接
图案就在那里<代码>++$++。将其拆分,您将获得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.