经管文本分析 | 金融学文本大数据挖掘方法与研究进展阅读笔记
姚加权张锟澎罗平《经济学动态》2020年第4期沈艳陈赟黄卓《经济学(季刊)》 2019年第4期前言本文是刊载于《经济学(季刊)》2019年第4期《文本大数据分析在经济学和金融学中的应用:一个文献综述》和《经济学动态》2020年第4期《金融学文本大数据挖掘方法与研究进展》的阅读笔记在金融学领域的传统实证研究文献中,研究数据多局限于财务报告数据、股票市场数据等结构化数据(structured data
姚加权 张锟澎 罗平 《经济学动态》2020年第4期
沈艳 陈赟 黄卓 《经济学(季刊)》 2019年第4期
前言
本文是刊载于《经济学(季刊)》2019年第4期《文本大数据分析在经济学和金融学中的应用:一个文献综述》和《经济学动态》2020年第4期《金融学文本大数据挖掘方法与研究进展》的阅读笔记
在金融学领域的传统实证研究文献中,研究数据多局限于财务报告数据、股票市场数据等结构化数据(structured data)。而在大数据时代,计算机技术的不断提高使得数据类型更加丰富,文本大数据已经成为计算机可以解读和分析的数据,并能够对非传统领域的经济现象展开研究。文本非结构化数据(unstructured data)能够为金融学领域提供更丰富的研究内容和研究视角
金融学文本大数据挖掘步骤和方法
(一)语料获取
- 手工收集
- 网络抓取
(二)文本预处理
- 文档解析
- 信息披露的电子化文档统称为富格式文档(richly formatted documents)
- 绝大多数为PDF格式
- 通过不精确的PDF解析文档获取文本信息可能会给后续的文本分析带来严重的影响
- 文本定位与数据清洗
- 文本信息的定位:例如运用正则表达式定位财务报告的MD&A
- 文本噪音内容的清洗和删除:主要包括广告、超文本标记语言(HTML)、直译式脚本语言(JavaScript)等代码以及图片等
- 文本的分词
- 主要采用jieba分词
- 中文文本分词存在的三个难点:
- 切分颗粒度:例如容易将“机器学习”切分成“机器”和“学习”
- 歧义词的识别:应当选择精确分词模式(精确模式、全模式、搜索引擎模式)
- 新词的识别:使用自定义词典
- 词性的标注
- 停用词去除
- 停用词是指对句子语法结构很重要但本身传达意义较少的词语:例如标点符号,特殊符号,连接词等
- 会增加文本数据的维度,提高文本分析的成本
- 是否去除停用词需根据研究内容而定:例如研究文本情感,保留语气词以及特定的标点符号,例如“呵呵”、“哈哈”、“!”等,均有利于衡量文本的情感程度
(三)文档表示
文本数据属于稀疏的高纬度数据,计算机处理存在困难,因此对文本数据进行预处理后,还需要将文档中的信息以特定的方式表示出来。文档表示方法主要包括词云(word cloud)、词袋模型(bag of words, BOW)、词嵌入(word embeding)和主题模型(topic model)
- 词云
- 文本大数据的可视化技术
- 使用
wordcloud
库实现
- 词袋模型
- 不考虑文档之间以及词语之间的顺序和语法要素,仅将文本看作若干个词语的集合
- 表示方法主要包括:
- 独热表示(one-hot representation)
首先,根据原始文本库出现的全部词语构建一个词表,并对每个词编号 1 , 2 , 3 ⋯ , N 1,2,3\cdots,N 1,2,3⋯,N
然后,将词语 j j j用一个 N N N维向量 w j w_j wj来表示,该向量的第 j j j个位置的元素维1,其余均为0
最后,将每一个词语都转换为一个向量,在文档 t t t中,通过加总所有词的向量,文档 t t t就可以转化为 1 × N 1\times N 1×N的向量 W t W_t Wt,其中 w t j ( j = 1 , ⋯ , N ) w_{tj}(j=1,\cdots ,N) wtj(j=1,⋯,N)第 j j j个词语在文本t中出现的频率
若原始文本库共有 t = 1 , ⋯ , T t=1,\cdots,T t=1,⋯,T个文档,采用独热表示法后,原始文本库就可以转化为 T × N T\times N T×N的数学矩阵
-
词频-逆文档频率法(term frequency-inverse document frequency, TF-IDF)
显然,独热表示方法是以词频高低对词语赋予权重的,但是大量高频词并无多少意义,例如停用词,即使出现频率相同,常见词的价值也明显低于不常见词。因此,需要对每一个词语赋予其权重来更好地表示每个词语在文档中的作用
Loughran和McDonald(2011)运用TF-IDF方法计算了特定词语在文档中的权重
基本思想:如果某个词在一篇文档中出现的频率高,并且在语料库中其他文档中很少出现,则认为这个词具有很好的类别区分能力
词频TF:Term Frequency,衡量一个term在文档中出现得有多频繁,平均而言出现越频繁得词,其重要性可能就越高。考虑到文章长度得差异,需要对词频做标准化: T F i j = 1 + l o g ( t f i j ) l + l o g ( a i ) TF_{ij}=\frac{1+log(tf_{ij})}{l+log(a_i)} TFij=l+log(ai)1+log(tfij),其中, t f i j tf_{ij} tfij为第 j j j个文档中词语 i i i出现的总次数, a j a_j aj为第 j j j个文档中包含的词语数
逆文档频率IDF:Inverse Document Frequency,用于模拟在原始文本库的实际使用环境中,某一个term有多重要, I D F i = l o g N d f i IDF_{i}=log\frac{N}{df_i} IDFi=logdfiN,其中, N N N为原始文本库的文档总数, d f i df_i dfi为包含词语 i i i的文档数量
词频-逆文档频率TF-IDF: T F − I D F i j = T F i j × I D F i TF-IDF_{ij}=TF_{ij}\times IDF_i TF−IDFij=TFij×IDFi, T F − I D F i j TF-IDF_{ij} TF−IDFij表示词语 i i i在第 j j j个文档的权重
总的来说,TF-IDF与一个词在文档中出现的次数成正比,又与该词在整个原始文本库中的出现次数成反比
- 使用
pandas
、sklearn
、gensim
库实现 - 局限性
- 忽略了文档中词语顺序和词语之间的语意关系,可能产生歧义。例如“我帮你”VS“你帮我”在词袋模型里会得到相同的向量特征。可以将单个词语扩展成长度为n的词组,即n元词组(n-gram),进一步保留词语的顺序信息
- 向量的维度取决原始文本库中词语的数量,当原始文本库中词语数量过多,很可能产生维度灾难
- 词嵌入
- 将维数为所有词的数量的高维空间“嵌入”到低维连续向量空间中的技术
e i = E × W i e_i=E\times W_i ei=E×Wi,其中 e i e_i ei表示第 i i i个词通过嵌入矩阵 E E E(embedding matrix)映射到实数域上的词向量, W i W_i Wi为第 i i i个词的独热向量表示。由于该向量的每个元素值可以是连续值而不只是0或者1, e i e_i ei的维度 N e N_e Ne可以远低于原来的词向量维度
- 通过词嵌入技术,可以将词语映射成低维连续向量空间中的向量,通过向量之间的距离和位置来表示文档中词语的上下文、语法、和语义的相似性以及与其他词语的关系
- Word2Vec技术是常用的词嵌入技术
- CBOW(continuous bag of words)神经网络模型
- Skip-Gram神经网络模型
- 使用
gensim
库实现
- 主题模型
- 最常用的主题模型是LDA(latent dirichlet allocation)模型
- LDA模型是在大规模语料集中提取主题信息的无监督机器学习方法
本质上,LDA认为:文档中的每个词都是文档通过“以一定概率选择某个主题,再从该主题中以一定概率选择某个词”得到的
- LDA模型中涉及到的数学知识
- 多项式分布:主题和词汇的概率分布服从多项式分布
- Dirichlet分布:上述多项式分布的参数为随机变量,均服从Dirichlet分布(选择Dirichlet分布主要是因为算法容易实现)
- Gibbs抽样:直接求LDA的精确参数分布计算量太大,实际上不可行,因此通过Gibbs抽样减小计算量,得到逼近的结果
LDA模型假定全部文档 M M M中存在 K K K个主题,每个文档 m m m包含 N m N_m Nm个词语,并且每个词语都是由其中一个主题生成。主题服从一个多项式分布 θ m \theta_m θm,而每个主题 k k k与词汇表中的 V V V个单词的一个多项式分布 ϕ k \phi_k ϕk相对应,并且假定分布 θ m \theta_m θm和分布 ϕ k \phi_k ϕk具有共轭的Dirichlet分布,该共轭的Dirichlet分布的超参数为 α \alpha α和 β \beta β。通过语文文档中的主体个数,LDA模型可以将每篇文档的主体以概率分布的形式给出,其中每个主体对应一类词语分布,根据词语分布可以挑选出一些关键词对该主体进行描述
在LDA模型下,文档的生成过程如下图所示:(1)和从Dirichlet分布 α \alpha α中抽样得到文档 m m m的主题多项式分布 θ m \theta_m θm,从Dirichlet分布 β \beta β抽样得到主题 k k k的词语多项式分布 ϕ k \phi_k ϕk, k = 1 , ⋯ , K k=1,\cdots ,K k=1,⋯,K;(2)从主题多项式分布 θ m \theta_m θm中抽样得到文档 m m m的第n个词的主题 Z m , n Z_{m,n} Zm,n;(3)从主题 Z m , n Z_{m,n} Zm,n对应的词语多项式分布 ϕ Z m , n \phi_{Z_{m,n}} ϕZm,n抽取词语 W m , n W_{m,n} Wm,n;(4)重复上述步骤 N m N_m Nm次
- LDA模型的优势
- 克服了手动编码的局限性,能够对大量文本文档进行分类
- 能够提供可靠且具有可复制性的文本主题分类,排除了人工文本分类的主观性
- 不需要研究者为划分类别预先指定相应的规则和关键词
- LDA模型的局限性
- 预设主题个数会受到人的主观因素影响,从而影响主题的生成和文本的主题分类
(四)文档的特征提取
-
文本的可读性
- 迷雾指数(Li,2008)、年报中的字数(You和Zhang,2009)、年报电子文档的大小(Loughran和McDonald,2014)
- 以上方法具有一定局限性,在考虑公司年报文本可读性时,应当考虑将企业的业务复杂性因素剔除
-
文本情绪
- 词典法
- 监督机器学习
- 在文本分析领域学者常用的有监督机器学习方法为朴素贝叶斯(naive Bayesian)和支持向量机(support vector machine,SVM)
-
语义关联性
- 根据某一类词语去识别文本语义特征的过程
- 首先依照某一类关键词构建词表,然后计算词表中词语在文档中的词频,进而识别出文本中与关键词语义相关的语义特征。例如陈诗一和陈登科(2018)利用环境关键词在政府工作报告中的词频,度量地方政府环境政策和治理力度
- 可以同时运用词嵌入技术,拓展相关类型的关键词。例如胡楠等(2020)采用“种子词+Word2Vec相似词扩充”的方法对企业竞争战略进行度量。首先通过梳理竞争战略经典文献,构建关于竞争战略关键词词库,即种子词,然后运用Word2Vec技术在语料库中扩充与种子词最为相似的前十个近义词,最后再计算关键词本文词频
-
文本相似度
- 利用文本向量构建余弦相似度指标构建文本相似度指标
假设文本 d 1 d_1 d1和 d 2 d_2 d2对应的文本向量分别为 a = ( w a 1 , w a 2 , ⋯ , w a n ) a=(w_{a1},w_{a2},\cdots,w_{an}) a=(wa1,wa2,⋯,wan), b = ( w b 1 , w b 2 , ⋯ , w b n ) b=(w_{b1},w_{b2},\cdots,w_{bn}) b=(wb1,wb2,⋯,wbn)
文本 d 1 d_1 d1和 d 2 d_2 d2的余弦相似度计算公式如下:
c o s i n e s i m i l a r i t y ( d 1 , d 2 ) = a × b ∥ a ∥ × ∥ b ∥ = ∑ 1 n w a i × ∑ 1 n w b i ∑ 1 n w a i 2 × ∑ 1 n w b i 2 cosine\quad similarity(d_1,d_2)=\frac{a\times b}{\|a\|\times \|b\|}=\frac{\textstyle\sum_{1}^{n}{w_{ai}} \times \textstyle\sum_{1}^{n}{w_{bi}}}{\sqrt{\textstyle\sum_{1}^{n}{w_{ai}^2}}\times \sqrt{\textstyle\sum_{1}^{n}{w_{bi}^2}}} cosinesimilarity(d1,d2)=∥a∥×∥b∥a×b=∑1nwai2×∑1nwbi2∑1nwai×∑1nwbi
其中, n n n为特征个数, w a i w_{ai} wai, w b i w_{bi} wbi为特征 i i i在两本文本中的权重。该公式取值在0和1之间,数值越大表明两个向量之间的夹角越小,文档的相似度越大
更多推荐
所有评论(0)