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

中文金融领域情感词典构建「建议收藏」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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字符串常量池深入解析[通俗易懂]

    字符串常量池深入解析[通俗易懂]字符串常量池字符串常量池概述一、Java中两种创建字符串对象的方式的分析。二、Intern的实现原理(JDK1.8)三、JDK1.7的Intern的执行四:几种特殊的情况的代码参考的部分文章概述  在分析字符串常量池之前,先来分析一下java的内存区域,然后再各种的情况分析一下各种情况下的情况;在《深入理解java虚拟机》这本书上是这样写的:对于H…

    2022年7月28日
    3
  • js android 换行符,JavaScript字符串换行符?

    js android 换行符,JavaScript字符串换行符?我刚刚用这段愚蠢的JavaScript测试了几个浏览器:functionlog_newline(msg,test_value){if(!test_value){test_value=document.getElementById(‘test’).value;}console.log(msg+’:’+(test_value.match(/\r/)?’CR’:”)+…

    2022年5月10日
    42
  • Python 一行代码输出心形图案

    Python 一行代码输出心形图案Python3pythonprint('\n'.join([''.join([('Love'[(xy)%4]if((x0.05)2+(y0.

    2022年7月6日
    23
  • 科研伦理与学术规范期末考试1题库「建议收藏」

    科研伦理与学术规范期末考试1题库「建议收藏」**科研伦理与学术规范期末考试1题库**自行复制到自己的文档当中便于搜索1.科研伦理与学术规范引论科研伦理与学术规范引论试题1、下列说法错误的是?A、所有的规范的评判都涉及到“善恶正邪”的价值判断B、伦理学已经从传统的以人为中心走向现代的以行为为中心C、现代伦理学主要关注以行为、准则、规范、义务D、规范则未必均是在道德层面上具有调整性参考答案:A2、哈佛模式下的引证规范的特点是?A、注释引证式B、插句式C、循环数字编码式D、MLA引用格式参考答案:B3、关于科研伦理和学术

    2022年7月11日
    17
  • python十进制转二进制函数_python 十六进制转二进制

    python十进制转二进制函数_python 十六进制转二进制Python2python十进制转2进制有内置函数bin方法1:in:bin(1)output:’0b1’方法2:n=int(input(‘请输入要转换进制的数值:’))#x=2#转换为二进制,所以这里取x=2b=[]#存储余数whileTrue:#一直循环,商为0时利用break退出循环…

    2022年10月9日
    5
  • wind river hypervisor 2.0.2.1

    wind river hypervisor 2.0.2.1

    2022年1月2日
    50

发表回复

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

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