中文金融领域情感词典构建「建议收藏」

中文金融领域情感词典构建「建议收藏」2019年10月4日-6日Python爬虫与文本分析工作坊&课题申报高级研修班这篇文章是公众号关注者郝童鞋今早发给我的,在此谢谢郝童鞋。文章基于简单算法和人工…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

2019年10月4日-6日

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


这篇文章是公众号关注者郝童鞋今早发给我的,在此谢谢郝童鞋。

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

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

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

  2. 大邓将论文附录中的词典整理好给大家用

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

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

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

  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个正面词。

二、词典整理到csv文件中

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

640?wx_fmt=png

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

640?wx_fmt=png

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

import jieba	
import re	
import csv	
def 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有出入,应该是复制粘贴时不够自信。下面我们看看词典中的内容

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

640?wx_fmt=png

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

640?wx_fmt=png

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

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

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

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

1

640?wx_fmt=jpeg

欢迎扫码咨询!!

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172441.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月23日 上午7:16
下一篇 2022年8月23日 上午7:36


相关推荐

  • 51单片机12864串口硬件电路图和程序

    51单片机12864串口硬件电路图和程序1 12864BV2 0 液晶显示块 有不同时期生产的 他们在硬件上有可能不一样 串 并口的转换在硬件上的设置有可能不太一样 本实验所用实物如图所示 液晶正面液晶背面 2 程序 文件名 硬件串行 12864Bv2 0 显示 c 描述 该程序实现了 12864 以串行的方式进行通信

    2026年3月26日
    2
  • Neo4j安装及简单使用

    Neo4j安装及简单使用一 Neo4j 和图数据库简介 neo4j 是基于 Java 语言编写图形数据库 图是一组节点和连接这些节点的关系 图形数据库也被称为图形数据库管理系统或 GDBMS Neo4j 的是一种流行的图形数据库 其他的图形数据库是 OracleNoSQL 数据库 OrientDB HypherGraphD GraphBase InfiniteGrap AllegroGraph Neo4j 图形数据库的主要构建

    2026年1月14日
    6
  • 我说我在总结谁会信。。

    我说我在总结谁会信。。

    2021年12月5日
    39
  • 网络吞吐量详解

    网络吞吐量详解吞吐量简单的讲 对于 P2P 系统而言 当主机 A 到主机 B 传送一个文件 任何时间瞬间的瞬时吞吐量都是主机 B 接收到该文件的速率 以 bps 计算 如果文件由 F 比特组成 主机 B 接收到所有 F 比特用去 T 秒 则文件传送的平均吞吐量是 F Tbps 举个例子服务器通过路由器转发给客户端消息想象比特是流体 而链路是管道 那么吞吐量应该为 min Rc Rs 如上图所示 当 Rc 为 2Mbps 且 Rs gt R

    2026年3月26日
    2
  • linux ntp时钟服务器地址_Linux时间同步+国内常用的NTP服务器地址【NTP时间同步服务器】…

    linux ntp时钟服务器地址_Linux时间同步+国内常用的NTP服务器地址【NTP时间同步服务器】…210.72.145.44(国家授时中心服务器IP地址)133.100.11.8日本福冈大学time-a.nist.gov129.6.15.28NIST,Gaithersburg,Marylandtime-b.nist.gov129.6.15.29NIST,Gaithersburg,Marylandtime-a.timefreq.bldrdoc.gov132.163.4.1…

    2022年5月28日
    63
  • 训练集、验证集、测试集以及交验验证的理解

    训练集、验证集、测试集以及交验验证的理解在人工智能机器学习中,很容易将“验证集”与“测试集”,“交叉验证”混淆。一、三者的区别训练集(trainset)——用于模型拟合的数据样本。 验证集(developmentset)——是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。在神经网络中,我们用验证数据集去寻找最优的网络深度(nu…

    2022年5月14日
    94

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号