当前位置:   article > 正文

TFIDF | 有权重的计算文本情感得分

加权情感得分

2021暑期 | Python数据挖掘暑假工作坊

腾讯课堂 | Python网络爬虫与文本分析

在论文

Kai Li, Feng Mai, Rui Shen, Xinyan Yan, Measuring Corporate Culture Using Machine Learning, The Review of Financial Studies,2020

中,

  • 除了使用词向量人工构建五大类文化词典,

  • 还使用了tfidf作为权重,计算企业每条文档五大类文化的得分情况。

情感分析

  • 无权重。直接计算文本中正、负情感词出现的次数

  • 有权重。tf-idf, tf是词频,idf是权重。


Tfidf法

scikit库除了CountVectorizer类,还有TfidfVectorizer类。TF-IDF这个定义相信大家应该已经耳熟能详了:

  • TF 词语出现越多,这个词越有信息量

  • IDF 词语越少的出现在文本中,词语越有信息量。


原始数据

  1. import pandas as pd
  2. corpus = ["hello, i am glad to meet you",
  3.            "it is wonderful",
  4.            "i hate you",
  5.            "i am sad"]
  6. df1 = pd.DataFrame(corpus, columns=['Text'])
  7. df1


构造tfidf

  1. from sklearn.feature_extraction.text import TfidfVectorizer
  2. def createDTM(corpus):
  3.     """构建文档词语矩阵"""
  4.     vectorize = TfidfVectorizer()
  5.     #注意fit_transform相当于fit之后又transform。
  6.     dtm = vectorize.fit_transform(corpus)
  7.     #vectorize.fit(corpus)
  8.     #dtm  = vectorize.transform(corpus) 
  9.     #打印dtm
  10.     return pd.DataFrame(dtm.toarray(), 
  11.                         columns=vectorize.get_feature_names()) 
  12. df2 = createDTM(df['text'])
  13. df2

合并df1和df2

  1. df = pd.concat([df1, df2], axis=1)
  2. df

  1. #积极词典
  2. pos_words = ['glad''hello''wonderful']
  3. #消极词典
  4. neg_words = ['sad''hate']
  1. #积极词典
  2. df[pos_words]

df[pos_words].sum(axis=1)
  1. 0 0.873439
  2. 1 0.577350
  3. 2 0.000000
  4. 3 0.000000
  5. dtype: float64
  1. df['Pos'] = df[pos_words].sum(axis=1)
  2. df

经过以上操作,很简便的对文本的正面情感进行了计算。同理,也可以对负面情感进行计算,此处省略。


输出

最后保存,输出为csv文件。

df.to_csv('output/tfidf有权重的情感分析.csv')

2021暑期 | Python数据挖掘暑假工作坊

腾讯课堂 | Python网络爬虫与文本分析

近期文章

腾讯课堂 | Python网络爬虫与文本分析

B站视频 | Python自动化办公
读完本文你就了解什么是文本分析

文本分析在经管领域中的应用概述

综述:文本分析在市场营销研究中的应用

中文金融情感词典发布啦 | 附代码

wordexpansion包 | 新增词向量法构建领域词典

语法最简单的微博通用爬虫weibo_crawler
大邓github汇总, 觉得有用记得star
hiResearch 定义自己的科研首页
whatlies包 | 简单玩转词向量可视化
Jaal 库 轻松绘制动态社交网络关系图
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
Clumper | dplyr式的Python数据操作包

Clumper库 | 常用的数据操作函数

Clumper库 | Groupby具体案例用法

Clumper库 | 其他数据分析

plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
YelpDaset: 酒店管理类数据集10+G
漂亮~pandas可以无缝衔接Bokeh  

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

闽ICP备14008679号