中文金融领域情感词典构建

2019年10月4日-6日python

Python爬虫与文本分析工做坊 & 课题申报高级研修班web



这篇文章是公众号关注者郝童鞋今早发给个人,在此谢谢郝童鞋。正则表达式

文章基于简单算法和人工判断,使用多阶段剔除法,构建了 中文金融情感词典CFSDChineseFinancialSentimentDictionary, 这个词典能帮到那些想用文本分析研究会计金融领域的中文文档的研究者。CFSD词典有1489个负面词,1108个正面词。而且简单讨论了CFSD词典的应用领域。算法

本篇教程主要分为两部分:微信

  1. 这篇论文如何构建 中文金融情感词典app

  2. 大邓将论文附录中的词典整理好给你们用机器学习

1、构建中文金融情感词典

情感分析目前有两大方式,情感词典法和机器学习法。基于情感词典的文本分析,必需要有好用的词典。但因为语言差别,英文的情感词典没法直接应用于中文的情感分析,并且目前中文的情感词典(如HOWNET、DLUTSD、NTUSD)都是通用性词典(大可能是形容词副词),并非专业领域词典。Loughran和 McDonald (2011)曾经指出研究商业领域问题的文本数据不该该使用非商业领域数据集构建出的词典。编辑器

所以本文做者使用HOWNET、DLUTSD、NTUSD三种词典做为初始词典,并搜集了在线路演纪要(online roadshow transcripts)、业绩说明电话会议纪要(earnings conference call transcripts)、IPO招股报告(IPO prospectus)及公司年报构建了基础语料库。基于算法和人工判断, 使用多阶段剔除法来构建 中文金融情感词典CFSD。具体步骤:post

  1. 合并HOWNET、DLUTSD、NTUSD三个情感词典,去除重复词学习

  2. 收集了1411篇在线路演纪要、7138篇业绩说明电话会议纪要、2043IPO招股报告和29737公司年报。jieba被用于分割文档,构建 基础语料

  3. 计算步骤1全部的词在 基础语料 中的词频,词频数为0的词语不予考虑,剔除掉。与金融不相关的词语也剔除掉,最终构建了 CFSD0.0版本中文金融情感词典。

  4. 全部的CFSD0.0版本的词语都来自与三个通用情感词典(HOWNET、DLUTSD、NTUSD),但这三个词典并不包含金融领域常出现的正面词和负面词。咱们人工向 CFSD0.0版情感词典加入了金融领域最经常使用的100个正面词100个负面词,构建出 CFSD0.1版中文金融情感词典.

  5. Gensim是python中的一个文本分析库,在本步骤主要用来经过大量的语料训练处词向量。词向量可使用余弦cos计算出类似性。在本步骤,计算出CFSD0.1版中每一个词的词向量,进而从 基础语料 中发现每一个词(CFSD0.1中的词)最类似的50个词。剔除掉与金融不关的词(包括类似词、同义词),构建出 CFSD0.2版的中文金融情感词典

  6. 合并 CFSD0.0CFSD0.1CFSD0.2,剔除掉重复词,最终构建出 CFSD中文金融情感词典

构件好的CFSD词典有1489个负面词,1108个正面词。

2、词典整理到csv文件中

论文后面富有CFSD情感词典,以下


我想先将这些内容所有复制到txt中,正面词表复制粘贴到 正面词典.txt, 负面词表复制粘贴到 负面词典.txt


经过中文正则表达式 [\u4e00-\u9fa5]+ 把txt文件里面全部的中文词抽取出来,存到csv文件中。开始~

  
  
   
   
            
   
   



import jiebaimport reimport csvdef extract_keywords(infile, outfile, header): raw_kws_string = open(infile).read() kws = re.findall('[\u4e00-\u9fa5]+', raw_kws_string) csvf = open(outfile, 'w', encoding='gbk', newline='') writer = csv.writer(csvf) writer.writerow((header,)) for kw in set(kws): writer.writerow((kw,)) csvf.close()extract_keywords(infile = '正面词典.txt', outfile = '正面词典.csv', header = 'postive')extract_keywords(infile = '负面词典.txt', outfile = '负面词典.csv', header = 'negative')

如今咱们的项目文件夹中出现了 正面词典.csv负面词典.csv , 如今咱们能够试着读取一下 正面词典.csv

  
  
   
   
            
   
   

import pandas as pd#正面词典.csv中有1109个词df = pd.read_csv('正面词典.csv', encoding='gbk')len(df)

Run

  
  
   
   
            
   
   
1109

负面词典.csv中有1488个词

  
  
   
   
            
   
   
df2 = pd.read_csv('负面词典.csv', encoding='gbk')len(df2)

Run

  
  
   
   
            
   
   
1488

词典中的词数与论文中的 1108和 1489有出入,应该是复制粘贴时不够自信。下面咱们看看词典中的内容

  
  
   
   
            
   
   
#正面词典前5df.head(5)

  
  
   
   
            
   
   
#负面词典前5df2.head(5)

至于在python中如何使用这些词典进行文本分析和计算, !插播广告^_^


2019年10月4日-6日,杭州 

Python爬虫与文本分析工做坊 & 课题申报高级研修班

咨询请加微信,记得备注”工做坊”

1

欢迎扫码咨询!!

后台回复" 2019中秋快乐", 下载CFSD中文金融情感词典


本文分享自微信公众号 - 大邓和他的Python(DaDengAndHisPython)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索