当前位置:   article > 正文

中文文本情感分析_textblob中文情感分析

textblob中文情感分析

  目前就中文情感分析方面,我感觉我们国内的一些企业搞的免费的接口不太好,比如说百度的API,我使用了一些感觉非常差劲效果,虽然可以免费很多次,但是最终得出的结果不敬人意,很多都是中立的语句,对我们调查分析产生了很大的误导。

 现在我发现了用TextBlob来对我们爬取的评论和回答进行进行情感分析。

TextBlob是一个用于处理文本数据的Python库,它将NLTKPattern两者很好地配合。它提供了一个一致的 API,用于深入研究常见的自然语言处理 (NLP) 任务,例如词性标记、名词短语提取、情绪分析等。

但是这个是一个对英文文本情感分析。

所以我需要对中文文本进行翻译,目前翻译的软件我觉得有道词典的效果就很不错。所以我先用有道词典的API翻译,再使用TextBlob进行情感分析。

代码部分如下:

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Mon Mar 6 23:25:34 2023
  4. @author: TXS
  5. """
  6. import pandas as pd
  7. from textblob import TextBlob
  8. from translate import Translator
  9. import time
  10. import json
  11. import requests
  12. # 翻译函数,word 需要翻译的内容
  13. def translate(word):
  14. # 有道词典 api
  15. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'
  16. # 传输的参数,其中 i 为需要翻译的内容
  17. key = {
  18. 'type': "AUTO",
  19. 'i': word,
  20. "doctype": "json",
  21. "version": "2.1",
  22. "keyfrom": "fanyi.web",
  23. "ue": "UTF-8",
  24. "action": "FY_BY_CLICKBUTTON",
  25. "typoResult": "true"
  26. }
  27. # key 这个字典为发送给有道词典服务器的内容
  28. response = requests.post(url, data=key)
  29. # 判断服务器是否相应成功
  30. if response.status_code == 200:
  31. # 然后相应的结果
  32. return response.text
  33. else:
  34. print("有道词典调用失败")
  35. # 相应失败就返回空
  36. return None
  37. data1 = pd.read_excel('557665216--海天酱油为啥突然翻车了.xlsx')
  38. data2 = pd.read_excel('557679215--海天声明称「用食品添加剂误导消费者认为中国食品比外国食品差是不明真相别有用心」哪些信息值得关注.xlsx')
  39. data3 = pd.read_excel('557861088--如何看待媒体谈海天酱油事件消费者对食品添加剂的使用有哪些误解.xlsx')
  40. data4 = pd.read_excel('558022684--你还会买海天酱油吗.xlsx')
  41. data5 = pd.read_excel('558176809--行业人士称海天事件将让中国酱油行业提前年进入零添加剂时代你认可吗追求零添加有无意义.xlsx')
  42. negative_prob=[]
  43. positive_prob=[]
  44. for i in data5['回答内容']:
  45. list_trans = translate(i)
  46. result = json.loads(list_trans)
  47. t = result['translateResult'][0][0]['tgt']
  48. blob = TextBlob(t)
  49. sentiment = blob.sentiment.polarity
  50. time.sleep(0.5)
  51. negative_prob.append(sentiment)
  52. # print(na)
  53. # print(po)
  54. na_data = pd.DataFrame(negative_prob)
  55. data5['消极']=na_data
  56. data5.to_csv('data5.csv',encoding="utf_8_sig")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/72813
推荐阅读
相关标签
  

闽ICP备14008679号