我对“编码”,尤其是Python还是很陌生,所以请多多包涵!
我有一个CSV文件,该文件具有从网站上的反馈表收集的反馈(“此页面有用”的反馈表。CSV收到的每个反馈都有一行。有几列,但是我M在这种情况下感兴趣的是:-“怎么了”(由用户从列表中选择的内容填充-可能的值数量有限)-“详细信息”(输入文本-驱动反馈)-'主题'(由反馈的审阅者手动输入-希望最终通过分类将其自动化,但目前为止还没有-此处可能的值可能是无限的
我从此CSV中制作了一个熊猫数据框。
我想创建一个语料库来运行某些NLP算法(例如TF-IDF)。我想根据“出了什么问题”和/或“主题”列的值,将“详细信息”列中的所有文本拼接在一起。基本上,语料库将在“主题”列中为每个“值”提供一个文档,该文档包括来自具有该值的所有行的文本。
我最初的想法是这样的:-创建字典-遍历“主题”列中的值,并为该列表中找到的每个值创建一个键-遍历每一行-如果值X在“主题”列中,则将“详细信息”单元格中的字符串附加到字典中键X的值中]
我不太确定如何编写代码,或者是否有更好的方法来执行此操作...
数据如下所示:Dataframe with 3 columns: 'Ref number', 'Details', and 'Topic'
我想要的是自动创建“文档”,将“详细信息”列中在“主题”列中具有相同标签的所有字符串缝合在一起。主题列表将不断变化,因此我不会事先知道要创建的文档数量(以及不同主题的确切名称)。
这将创建字典:
dict = {} for topic in data_cropped['Topic'].unique(): dict[topic] = []
然后,如果'Topic'的值等于键,那么我就想尝试从dict [topic]的'Details'中加入字符串。
我尝试过:
for text in data_cropped['Details']: if data_cropped['Topic'] in dict.keys(): dict[key] = dict[key].append(text)
但是我得到一个错误:TypeError:'Series'对象是可变的,因此不能被散列]]
任何帮助将不胜感激!
我对“编码”,尤其是Python还是很陌生,所以请多多包涵!我有一个CSV文件,该文件具有从网站上的反馈表收集的反馈(“此页面是否有用”反馈...
不确定它是否最快,但是您可以执行以下操作:
topic_dict = {}
for topic, topic_df in data_cropped.groupby('Topic'):
topic_dict[topic] = ' '.join(topic_df['Details'].tolist())