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

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'

 
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)

参考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'需要替换为你要遍历的文件夹路径。

参考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/" 替换为实际的文件夹路径。

不知道你这个问题是否已经解决, 如果还没有解决的话:

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