前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用ChatGPT进行情感分析

利用ChatGPT进行情感分析

作者头像
西西嘛呦
发布2023-03-31 13:05:50
1.5K0
发布2023-03-31 13:05:50
举报

ChatSA

代码地址:https://github.com/taishan1994/ChatSA

基于ChatGPT的情感分析,

简单的情感分析:给定一个句子,判断该句子所属的情感。

复杂点的情感分析,总共有7个子任务。

7个ABSA子任务
7个ABSA子任务

如何使用

1、首先你得有一个openai的账号,并且在Account API Keys - OpenAI API创建一个api key。

2、其次你得有一个v**,v**代理为全局模式。

3、修改main.py里面的df_access里面的api key。

4、选择不同的子任务运行即可。

结果

代码语言:javascript
复制
---SA---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
你应该判断该句子的情感是什么,情感从['正面的', '负面的', '中性的']里选择。
输出列表:["正面的"]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"散热很好、低噪音、做工扎实、键盘舒适",你应该判断句子的情感倾向,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '散热很好、低噪音、做工扎实、键盘舒适', 'type': '', 'access': '', 'task': 'SA', 'lang': 'chinese', 'result': ['正面的'], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你 一个例子:\n给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!\n你应该判断该句子的情感是什么,情感从[\'正面的\', \'负面的\', \'中性的\']里选择。\n输出列表:["正面的"]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"散热很好、低噪音、做工扎实、键盘舒适",你应该该句子的情感倾向,并以列表的形式返回结果,如果不存在,则回答:没有。'}]}

---AE---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
给定实体类型列表:['方面']
你应该提取该句子里面的所有方面,这里的观点可能是对某方面的评价、介绍等。
输出列表:["地方", "石头", "环境", "景色"]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",你应该提取里面所有实体类型为方面的实体,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'access': '', 'task': 'AE', 'lang': 'chinese', 'result': ['味道', '服务'], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起 游玩!\n给定实体类型列表:[\'方面\']\n你应该提取该句子里面的所有方面,这里的观点可能是对某方面的评价、介绍等。\n输出列表 :["地方", "石头", "环境", "景色"]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"味道很不 错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",你应该提取里面所有实体类型为方面的实体,并以列表的形式返回结果, 如果不存在,则回答:没有。'}]}

---OE---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
给定实体类型列表:['观点']
你应该提取该句子里面的所有观点,这里的观点可能是对某方面的评价、介绍等,请注意你只需要提取出观点,不要方面。
输出列表:["值得去", "奇特", "优美", "宜人"]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",你应该提取里面所有实体类型为观点的实体,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'access': '', 'task': 'OE', 'lang': 'chinese', 'result': ['味道很不错', '喜欢吃', '服务也很好感觉很亲切', '吃的很舒服'], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的地方,石头 很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!\n给定实体类型列表:[\'观点\']\n你应该提取该句子里面的所有观点,这里 的观点可能是对某方面的评价、介绍等,请注意你只需要提取出观点,不要方面。\n输出列表:["值得去", "奇特", "优美", "宜人"]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切, 吃的很舒服,谢谢",你应该提取里面所有实体类型为观点的实体,并以列表的形式返回结果,如果不存在,则回答:没有。'}]}

---ALSC---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
给定一个方面,你需要判断它的情感是什么,从['正面的', '负面的', '中性的']里进行选择。
比如,给定方面"地方",输出列表:["正面的"]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",和一个方面"味道",你应该判断它的情感,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'aspect': '味道', 'access': '', 'task': 'ALSC', 'lang': 'chinese', 'result': [('味道', '正面的')], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的地方,石头很奇特,景色优美,环境 宜人,适合与朋友家人一起游玩!\n给定一个方面,你需要判断它的情感是什么,从[\'正面的\', \'负面的\', \'中性的\']里进行选择。\n比如,给定方面"地方",输出列表:["正面的"]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",和一个方面"味道",你应该判断它的情感,并以列表的形式返回结果,如果不存在,则回答:没有。'}]}

---AOE---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
给定一个方面,你需要识别它的观点或者修饰词是什么。
比如,给定方面"地方",输出列表:["值得去"],请注意结果不要带上方面。
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",和一个方面"味道",你应该输出它的观点或修饰词,并以列表的形式返回结果,如果不存在,则回答:没有。
给定方面"味道",则输出列表:["很不错", "很喜欢吃"]。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'aspect': '味道', 'access': '', 'task': 'AOE', 'lang': 'chinese', 'result': [('味道', '很不错'), ('味道', '很喜欢吃')], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!\n给定一个方面,你需要识别它的观点或者修饰词是什么。\n比如,给定方面" 地方",输出列表:["值得去"],请注意结果不要带上方面。\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一 个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",和一个方面"味道",你应该输出它的观点或修饰词,并以列表的形式返回结果,如果不存在,则回答:没有。'}]}

---PAIR---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
你需要提取里面所有的方面及其对应的观点,请注意,方面可能是主体或者具有一定意义的名词,观点是形容某个方面的词。
输出列表:[("地方", "值得去"),("石头","奇特"),("环境", "优美"),("景色","宜人")]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",请识别出里面所有的方面及其对应的观点,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'access': '', 'task': 'PAIR', 'lang': 'chinese', 'result': [('味道', '不错'), ('服务', '好'), ('感觉', '亲切'), ('口感', '舒服')], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的 地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!\n你需要提取里面所有的方面及其对应的观点,请注意,方面可能是主体或者具有一定意义的名词,观点是形容某个方面的词。\n输出列表:[("地方", "值得去"),("石头","奇特"),("环境", "优美"),("景色","宜人")]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",请识别出里面所有的方面及其对应的观点,并以列表的形式返回结果,如果不存在,则回答:没 有。'}]}

---TRIPLET---
---begin---
给你一个例子:
给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
你需要提取里面所有的方面及其对应的观点和情感,情感从['正面的', '负面的', '中立的']中选择,请注意,方面可能是主体或者具有一定意义的名词,观点是形容某个方面的词。
输出列表:[("地方", "值得去","正面的"),("石头","奇特","正面的"),("环境", "优美","正面的"),("景色","宜人","正面的")]
如果不存在,回答:没有。
返回结果为输出列表。

现在,我给你一个句子,如"味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",请识别出里面所有的方面及其对应的观点和情感,并以列表的形式返回结果,如果不存在,则回答:没有。
{'sentence': '味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢', 'type': '', 'access': '', 'task': 'TRIPLET', 'lang': 'chinese', 'result': [('味道', '不错', '正面的'), ('服务', '好', '正面的'), ('感觉', '亲切', '正面的'), ('吃的', '舒服', '正面的')], 'mess': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给你一个例子:\n给出的句子是:值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!\n你需要提取里面所有的方面及其对应的观点和情感,情感从[\'正面的\', \'负面的\', \'中立的\']中选择,请注意,方面可能是主体或者具有一定意义的名词,观点是形容某个方面的词。\n输出列表:[("地方", "值得去","正面的"),("石头","奇特","正面的"),("环境", "优美","正面 的"),("景色","宜人","正面的")]\n如果不存在,回答:没有。\n返回结果为输出列表。\n\n现在,我给你一个句子,如"味道很不错, 很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢",请识别出里面所有的方面及其对应的观点和情感,并以列表的形式返回结果, 如果不存在,则回答:没有。'}]}

最后这里以triplet为例,对不同领域的文本进行识别:

酒店
代码语言:javascript
复制
感觉很好,服务也不错,还会一如既往的关注,支持
[('感觉', '好', '正面的'), ('服务', '不错', '正面的'), ('关注', '一如既往', '正面的'), ('支持', '', '正面的')]
KTV
代码语言:javascript
复制
服务态度很好,环境也不错,就是点歌系统不太好用。
[('服务态度', '好', '正面的'), ('环境', '不错', '正面的'), ('点歌系统', '不太好用', '负面的')]
丽人
代码语言:javascript
复制
感觉不是很满意,不能对顾客有敷衍了事的行为,每次讲话老是有这么多的理由,态度和效果有待提高
[('感觉', '不满意', '负面的'), ('顾客对待', '敷衍了事', '负面的'), ('讲话', '理由过多', '负面的'), ('态度和效果', '有待提高', '负面的')]
美食
代码语言:javascript
复制
味道很不错,很喜欢吃。服务也很好感觉很亲切,吃的很舒服,谢谢
[('味道', '不错', '正面的'), ('服务', '好', '正面的'), ('感觉', '亲切', '正面的'), ('吃的', '舒服', '正面的')]
旅游
代码语言:javascript
复制
值得去的地方,石头很奇特,景色优美,环境宜人,适合与朋友家人一起游玩!
[('地方', '值得去', '正面的'), ('石头', '奇特', '正面的'), ('环境', '优美', '正面的'), ('景色', '宜人', '正面的')]
健康
代码语言:javascript
复制
环境不错,进去就有暖气,叫的11号技师,服务确实不错,95后妹子,技术好,挺不错的体验
[('环境', '不错', '正面的'), ('暖气', '有', '正面的'), ('技师', '11号', '正面的'), ('服务', '不错', '正面的'), ('妹子', '95后', '正面的'), ('技术', '好', '正面的'), ('体验', '不错', '正面的')]
教育
代码语言:javascript
复制
环境非常好,古香古色的教室。老师不错,随时能沟通孩子学习及吃饭情况!
[('环境', '好', '正面的'), ('教室', '古香古色', '正面的'), ('老师', '不错', '正面的'), ('沟通', '随时能', '正面的'), ('孩子学习及吃饭情况', '沟通', '正面的')]
商业
代码语言:javascript
复制
服务好 态度好 产品好 一句话就是好
[('服务', '好', '正面的'), ('态度', '好', '正面的'), ('产品', '好', '正面的')]
房产
代码语言:javascript
复制
这小区不错。房价也不低。
[('小区', '不错', '正面的'), ('房价', '不低', '负面的')]
汽车
代码语言:javascript
复制
"经济实惠、动力不错、油耗低"
[('价格', '实惠', '正面的'), ('动力', '不错', '正面的'), ('油耗', '低', '正面的')]
生活
代码语言:javascript
复制
很好的浴室,干净清爽!前台热情
[('浴室', '很好', '正面的'), ('前台', '热情', '正面的'), ('浴室', '干净清爽', '正面的')]
购物
代码语言:javascript
复制
这才是正规专卖店啊,服务好,产品全面
[('专卖店', '正规', '正面的'), ('服务', '好', '正面的'), ('产品', '全面', '正面的')]
3C
代码语言:javascript
复制
散热很好、低噪音、做工扎实、键盘舒适
[('散热', '很好', '正面的'), ('噪音', '低', '正面的'), ('做工', '扎实', '正面的'), ('键盘', '舒适', '正面的')]

补充

该项目受https://github.com/cocacola-lab/ChatIE/ 的启发,代码参考其,在此表示感谢。

样例数据来源:https://ai.baidu.com/tech/nlp_apply/comment_tag

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChatSA
    • 如何使用
      • 结果
      • 补充
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档