m0_66842691 2023-03-18 16:29 采纳率: 16.7%
浏览 20
已结题

怎么对英文材料做情感分析

1·想把第二步的结果导入csv或者Excel都是这样的报错,应该怎么解决。
2·怎么样编码可以对一个文件夹里的txt文件重复上述步骤并导出结果


import pandas as pd
import cntext as ct

text = open('S2/1_Tom Coleman.txt', encoding='utf-8').read()

result_df=ct.sentiment(text=text,
             diction=ct.load_pkl_dict('NRC.pkl')['NRC'],
             lang='english')
result_df.to_csv("结果.csv",index=false)

AttributeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_5732\276906891.py in
7 diction=ct.load_pkl_dict('NRC.pkl')['NRC'],
8 lang='english')
----> 9 result_df.to_csv("结果.csv",index=false)

AttributeError: 'dict' object has no attribute 'to_csv'

  • 写回答

5条回答 默认 最新

  • CSDN专家-showbo 2023-03-18 18:06
    关注
     
    import pandas as pd
    import cntext as ct
    import os
    
    path="S2"##改这里的S2为你需要的路径或者目录
    
    files=[x for x in os.listdir(path) if x.endswith(".txt")]
    
    for file in files:
     
        text = open(path+'/'+file, encoding='utf-8').read()
     
        data=ct.sentiment(text=text,
                     diction=ct.load_pkl_dict('NRC.pkl')['NRC'],
                     lang='english')
    
    
        result_df = pd.DataFrame.from_dict({"Key":data.keys(),"Value":data.values()})
    
        print(result_df)
    
        result_df.to_csv(file+"_结果.csv", index=False)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • lshen01 2023-03-18 16:40
    关注

    参考GPT和自己的思路:

    根据报错信息,可以看出出现了AttributeError,即'字典'对象没有'to_csv'这个属性。这是因为在第8行中调用了'load_pkl_dict'方法,该方法返回的是一个字典对象,而字典对象没有'to_csv'这个方法,因此出现了错误。要解决这个问题,需要将字典对象转换为DataFrame对象后再调用'to_csv'方法。可以参考下面的修改:

    import pandas as pd
    import cntext as ct
    
    text = open('S2/1_Tom Coleman.txt', encoding='utf-8').read()
    
    result_dict = ct.sentiment(text=text,
                               diction=ct.load_pkl_dict('NRC.pkl')['NRC'],
                               lang='english')
    result_df = pd.DataFrame(result_dict)
    result_df.to_csv("结果.csv", index=False)
    

    至于如何对一个文件夹里的txt文件重复上述步骤并导出结果,可以遍历文件夹,每个txt文件都按照上面的方法进行操作即可,具体参考下面的代码示例:

    import os
    
    # 遍历文件夹中的txt文件并进行情感分析
    for filename in os.listdir('your_folder_path'):
        if filename.endswith('.txt'):
            text = open(os.path.join('your_folder_path', filename), encoding='utf-8').read()
    
            result_dict = ct.sentiment(text=text,
                                       diction=ct.load_pkl_dict('NRC.pkl')['NRC'],
                                       lang='english')
            result_df = pd.DataFrame(result_dict)
            result_df.to_csv(filename+'.csv', index=False)
    

    其中,'your_folder_path'需要替换为你要遍历的文件夹路径。

    评论
  • 追cium 2023-03-18 16:41
    关注

    参考GPT和自己的思路:

    根据你提供的代码,报错的原因是 "dict" 对象没有 "to_csv" 属性,因为 "result_df" 变量存储的是一个DataFrame对象,而"ct.sentiment"函数返回的结果是一个字典对象。解决该问题的方法是将字典转换为DataFrame对象,即在 "result_df" 变量的前面添加如下代码:

    result_df = pd.DataFrame.from_dict(result_dict, orient='index', columns=['Sentiment Score'])
    

    这样就可以将字典对象转换为DataFrame对象了。此外,需要将行索引导出到CSV文件中,可以将代码(10)中的 "index=false" 修改为 "index=True",即:

    result_df.to_csv("结果.csv", index=True)
    

    对于重复上述步骤并导出结果的问题,可以使用 Python 的 os 模块来循环遍历一个文件夹内的所有 txt 文件,然后将每个文件的情感分析结果存储到一个列表中,最后将列表转换为 DataFrame 后导出到 CSV 文件中。下面是实现此功能的示例代码:

    import os
    
    # 新建一个空列表用于存储结果
    result_list = []
    
    # 指定文件夹路径
    folder_path = "/path/to/folder/"
    
    # 循环遍历文件夹内所有 txt 文件
    for filename in os.listdir(folder_path):
        if filename.endswith(".txt"):
            file_path = os.path.join(folder_path, filename)
            with open(file_path, 'r', encoding='utf-8') as f:
                text = f.read()
                # 对每个 txt 文件进行情感分析
                result_dict = ct.sentiment(text=text, diction=ct.load_pkl_dict('NRC.pkl')['NRC'], lang='english')
                # 将文件名和情感分析结果存储到列表中
                result_list.append({'File': filename, 'Sentiment Score': result_dict})
    
    # 将列表转换为 DataFrame 对象
    result_df = pd.DataFrame(result_list)
    
    # 导出到 CSV 文件
    result_df.to_csv("结果.csv", index=False)
    

    注意,如果使用该代码,请将 "/path/to/folder/" 替换为实际的文件夹路径。

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-19 19:34
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
  • 有问必答小助手 2023-03-20 15:38
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月22日
  • 已采纳回答 3月20日
  • 创建了问题 3月18日

悬赏问题

  • ¥30 宾馆客房管理系统可视化
  • ¥20 unity打光没有照亮物体
  • ¥25 powershell如何拷贝1周前的文件
  • ¥15 询问MYSQL查询SQLSERVER数据表并比较差异后,更新MYSQL的数据表
  • ¥15 关于#前端#的问题,请各位专家解答!
  • ¥15 最小生成树问题 Prim算法和Kruskal算法
  • ¥25 医院住院病人呼叫器设计
  • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
  • ¥20 C语言字符串不区分大小写字典排序相关问题
  • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据