我正在创建一个聊天机器人,我是NLP的新手。我试图从csv文件中提取动作和句子标题。句子被分成字母。
下面是代码和句子的截图,这些句子被分成字母而不是一行。
data = pd.read_csv('dataset.csv')
dataset = pd.DataFrame(columns=['Action', 'Sentence', 'Category'])
for index, item in data.iterrows():
intent = item.Action
for t, r in zip(item['Sentence'], item['Category']):
# print(t,r)
row = {'Action': intent, 'Sentence': t, 'Category':r}
dataset = dataset.append(row, ignore_index=True)
dataset
输入图片描述
任何帮助都非常感谢。
如果我理解正确的话,你想每行一个句子,对吗?
你的问题是:
for index, item in data.iterrows():
您遍历行,因此现在每个item
都是一个只有这一行的Series,其中这一行中的列可以通过它们的列名访问。
for t, r in zip(item['Sentence'], item['Category']):
取item['Sentence']
和item['Category']
,它们都是字符串,将它们放入压缩包中并对它们进行迭代,这样你就可以对这些字符串中的压缩字母进行迭代。
如何解决:只需删除内部迭代。
for index, item in data.iterrows():
row = {'Action': item['Action'], 'Sentence': item['Sentence'], 'Category':item['Category']}
dataset = dataset.append(row, ignore_index=True)