第8章 文本分析及其在金融运用_第1页
第8章 文本分析及其在金融运用_第2页
第8章 文本分析及其在金融运用_第3页
第8章 文本分析及其在金融运用_第4页
第8章 文本分析及其在金融运用_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章文本分析及其在金融运用从ChatGPT开始章前导读进入21世纪后,随着互联网信息技术的发展,电子形式的文本信息日益海量化,对于文本数据的分析成为信息时代的研究热点语素与分词概念。在当今人工智能时代,利用传统的信息检索技术对于海量数据的处理效果不尽如人意,而文本挖掘作为从海量文本数据中发现潜在的、有价值知识的一种有效技术,其重要性日益突出。金融领域中文本数据具有产生速度快,蕴含信息量大的特点,如何能快速、准确地挖掘金融文本中的隐藏信息进行文本分析,是目前在金融相关研究领域的重要问题。学习目标01了解掌握文本分析中的常见概念和分析方法。02掌握词频-逆文档频次(TF-IDF)算法和LDA主题模型。03把握文本大数据在当下金融学领域中的研究进展和应用场景。1.文本分析方法概述及其运营场景3.词袋模型与词向量模型2.语素与分词概念4.词频-逆文档频次(TF-IDF)算法6.文本分析在金融领域中的应用5.LDA主题模型算法目录01文本分析方法概述及其运用场景文本分析概述文本分析,也称为文本挖掘(TextMining),是从文本数据中抽取有价值的信息和知识的计算机处理技术。对象是半结构化或非结构化的文档,无确定形式并且缺乏机器可理解的语义。(而数据挖掘的对象以数据库中的结构化数据为主,通过利用关系表等存储结构来发现知识)文本挖掘提取“有意义的信息”文本分析的应用场景金融领域文本分析指运用特定的方法挖掘文本信息内容,从而对文本的可读性、情绪语调、语义特征以及相似性等文本特征进行分析。索斯鲁德(2019)利用挪威日度频率的商业新闻数据和季度GDP增长率数据,构建了日度经济周期指数。麦克马洪等人(2018)从事件分析出发对中国人民银行政策沟通效果进行了研究,包括政策沟通的类别、参与政策沟通的人员信息等。投资者和媒体关注度以及投资者情绪分析、管理层语调分析、以及文本可读性度量指标等。一些较为前沿的指标构建也日益流行,如迷雾指数(FogIndex)、新闻隐含波动率指数(NewsImpliedVolatility),以及经济政策不确定性指数等等。例如:文本分析的优缺点优

点一、提供了文本形式的非结构化数据,丰富了数据类型,从而拓展了研究对象和研究范围;二、文本大数据拓展了原来的研究边界,如引入语言学开展可读性研究;三、提供新的工具、变量和指标;四、提供新的研究视角,如前文所述的一些典型应用。缺

点一、文本信息本身并不明确,必须经过加工处理才能用于计量分析,而这可能会引入噪音甚至错误,同时数据处理的可重复性不一定能实现;二、文本数据虽然可能包含传统财务数字没有的信息,但也可能是管理层操纵文本的表现;三、应用文本大数据分析技术研究会计和金融问题,对研究者的综合能力尤其是编程和数量分析能力提出了更大挑战。文本数据处理一般流程02语素与分词语素与分词语素是语言学术语,是指语言中最小的音义结合体,它的主要功能就是作为构成词语的材料。对于表音文字如英语,可以简单的理解为前缀,词干,后缀等。根据分割原理,可将现有的分词方法归纳为:字符串匹配法:将待分析的汉字串与前定的词典词条匹配,若某个字符串可在词典中找到,则记为识别出一个词。该方法的好处是简便快速,但容易存在歧义词的问题;基于理解的分词方法在分词的同时进行句法、语义分析,以改进对歧义词的处理;基于统计的分词方法则先用机器学习模型学习已经切分好的词语的规律,进而实现对未知文本的切分,常用方法包括最大概率分词法和最大熵分词法等。基于统计的分词如果有一个句子S,它有m种分词选项如下:如果我们从中选择了最优的第r种分词方法,那么这种分词方法对应的统计分布概率应该最大,即:为了简化计算,我们通常使用马尔科夫假设,即每一个分词出现的概率仅仅和前一个分词有关,即:使用了马尔科夫假设,求联合分布:通过标准语料库,我们可以近似的计算出所有的分词之间的二元条件概率,比如任意两个词w1,w2,它们的条件概率分布可以近似的表示为:其中freq(w1,w2)表示w1,w2在语料库中相邻一起出现的次数,而其中freq(w1),freq(w2)分别表示w1,w2在语料库中出现的统计次数。基于语料库建立的统计概率,对于一个新的句子,我们就可以通过计算各种分词方法对应的联合分布概率,找到最大概率对应的分词方法,即最优分词。03词袋模型与词向量模型词袋分词词袋模型(Bag-of-Words,简称BoW)是一种从文本中提取特征的方法。词袋是文本的表示,用于描述文档中单词的出现。在该模型中,文档中单词的顺序或结构的信息都被丢弃,仅关注文档中是否出现已知单词,而不是在文档中的位置。Johnlikestowatchmovies.Marylikestoo.Johnalsolikestowatchfootballgames.构造字典(Dictionary):{"John":1,"likes":2,"to":3,"watch":4,"movies":5,"also":6,"football":7,"games":8,"Mary":9,"too":10}根据字典,重新表达为两个向量:[1,2,1,1,1,0,0,0,1,1][1,1,1,1,0,1,1,1,0,0]

维度灾难;无法保留词序信息;存在语义鸿沟问题。词向量模型自然语言处理的向量空间模型(vectorspacemodel),就是把一个单词嵌入(embedding)到一个向量空间中去的模型。因此,把一个单词表示为一个词向量通常也叫做“词嵌入”(wordembedding)。(1)独热编码:把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为0,只有一个维度的值为1,这个维度就代表了当前的词。{I,like,finance,economics,fintech,AI}[100000]->I[010000]->like[001000]->finance[000100]->economics[000010]->fintech[000001]->AI表达效率低;词汇鸿沟词向量模型独热编码解决方法:分布式表征。通过训练,将每个词都映射到一个较短的词向量上来。换句话说就是线性代数中的任一向量可以用基向量来表示。

解决维数灾难;挖掘了词之间的关联属性,提高了准确度词向量模型一种基于浅层神经网络训练的自然语言模型,本质上也属于上述词嵌入表征的一种,只不过这种向量化表征需要经过神经网络训练得到。由于需要进行大量的文本训练,为了提高速度,Word2vec经常采用两种加速方式:负采样(NegativeSampling),层次softmax(HierarchicalSoftmax),两两组合可以得到4种具体的实现方法。Word2vec使用的词向量是分布式表征的词向量表示方式。其中涉及的核心的技术是根据词频用Huffman编码,能够有效的降低计算的复杂度。与潜在语义分析(LatentSemanticIndex,LSI)、潜在狄立克雷分配(LDA)的经典过程相比,Word2vec利用了词的上下文,语义信息更加地丰富。(2)Word2vec:词向量模型Word2Vec有两种的方法:连续词袋模型(ContinuousBagofWords,CBOW):根据上下文来预测当前词语的概率,顾名思义是基于词袋模型。跳跃元语法(Skip-gram):根据当前词语来预测上下文的概率。丢失了文本中的语序信息:“我爱祖国妈妈”和“祖国妈妈爱我”词向量模型(3)Doc2vec算法:为了充分利用文本语序信息,该算法能从长文本(例如:句子、段落或文档)中学习得到固定长度的特征表示,是Word2Vec的拓展。有两种训练方式:分布记忆的段落向量。它试图在给定上下文和段落向量的情况下预测单词的概率。在一个句子或者文档的训练过程中,段落ID保持不变。分布词袋版本的段落向量。忽略输入中的上下文单词,在仅给定段落向量的情况下预测段落中一组随机单词的概率。Python代码实战直接使用gensim库中封装好的word2vec。#进行分词document_cut=jieba.cut(document)#套用word2vec模型#将对包含句子的文件进行迭代:一行=一句话,转化成一个sentence的迭代器,每一次迭代返回的sentence是一个utf-8格式的word的列表sentences=word2vec.LineSentence('./chapt8-3_segment.txt')

#调用word2vec训练,参数的含义参加完整代码文件model=word2vec.Word2Vec(sentences,hs=1,min_count=1,window=3)#应用1:遍历与“金融”最相近的词,找出其中的三字词语req_count=5forkeyinmodel.wv.similar_by_word('金融',topn=100):iflen(key[0])==3:req_count-=1print(key[0],key[1])ifreq_count==0: break;#应用2:计算两个词语之间的相似度print(model.wv.similarity('智能化','数字化'))

#应用3:找出一组词中不属于同类的词语print(model.wv.doesnt_match("金融经济文化".split()))04词频-逆文档频次(TF-IDF)算法关键词提取概述关键词提取算法一般也可以分为有监督、无监督和半监督三类。相对于有监督和半监督的方法而言,无监督的方法对数据的要求较低。既不需要一张人工生成、维护的词表,也不需要人工标准语料辅助进行训练。因此,这类算法在关键词提取领域的应用更为广泛。无监督关键词抽取算法可分为:1.基于统计特征的关键词抽取;2.基于词图模型的关键词抽取;3.和基于主题模型的关键词抽取。对原文本进行预处理第一步进行算法以及模型的构建第二步候选词的权重计算第三步选取主题,得到关键词第四步词频-逆文档频次算法词频-逆文档频次算法由两部分构成:词频(TF)算法词频描述的是一个单词在某个文档中出现的频率。一般来讲,一个单词在一个文档中出现的频率越高,则该单词对于当前文档越重要。

逆文档频率(IDF)算法统计一个词在文档集的多少个文档中出现,基本思想是:如果一个词在越少的文档中出现,则其对文档的区分能力越强。词频-逆文档频次算法就是把词频算法和逆文档频率算法进行综合使用,关于两种算法的组合,最常用的是下面这种相乘的方式:Python代码实战1.数据预训练阶段:#停用词表加载方法,定义函数defget_stopword_list()#停用词表存储路径,每一行为一个词,按行读取进#行加载#进行编码转换确保匹配准确率stopword_list=[sw.replace('\n','')forswinopen(stop_word_path,encoding='UTF-8').readlines()returnstopword_list1)加载已有的文档数据集。2)加载停用词表。3)对数据集中的文档进行分词。4)过滤干扰词。2.对目标文档进行关键词提取:1)根据词频-逆文档频次算法原理计算IDF值。#idf值统计方法deftrain_idf(doc_list):idf_dic={}#总文档数tt_count=len(doc_list)#每个词出现的文档数fordocindoc_list:forwordinset(doc):idf_dic[word]=idf_dic.get(word,0.0)+1.0#按公式转换为idf值,分母加1进行平滑处理fork,vinidf_dic.items():idf_dic[k]=math.log(tt_count/(1.0+v))Python代码实战2)统计tf值。defget_tf_dic(self):tf_dic={}forwordinself.word_list:tf_dic[word]=tf_dic.get(word,0.0)+1.0tt_count=len(self.word_list)fork,vintf_dic.items():tf_dic[k]=float(v)/tt_countreturntf_dic3)按公式计算tf-idfdefget_tfidf(self):tfidf_dic={}forwordinself.word_list:idf=self.idf_dic.get(word,self.default_idf)tf=self.tf_dic.get(word,0)tfidf=tf*idftfidf_dic[word]=tfidftfidf_dic.items()输入一段文本作为测试:“做好金融科人才培养。制定金融科技人才相关标准,推进跨地区、跨机构人才顺畅流动,在北京、上海、粵港澳大湾区建设高水平金融科技人才高地,在高层次金融科技人才集中的中心城市着力建设吸引和集聚人才的平台,形成战略支点和雁阵格局。优化金融科技人才需求目录和引进模式,健全以创新能力、质量、实效、贡献为导向的人才评价体系,切实做到人岗相适、人事相宜、人尽其才。加快金融科技人才梯队建设,建立健全在职人才培养体系,探索业务、技术人才双向交流机制,打造校企联合培养、产学研用协同攻关等合作育人新模式,加强职业操守教育,培养德才兼备的金融科技人才。完善鼓励创新、包容试错的激励机制,打通金融科技人才职业发展通道,增强人才成就感和归属感,让事业激励人才、让人才成就事业。”测试结果为:金融/科技人才/人才/模式/事业/职业/体系/高水平/高地/育人05主题模型主题模型概述主题模型(TopicModeling)通过分析原始文本的语词,以发现贯穿其中的主题。其认为在词与文档之间没有直接的联系,它们应当还有一个维度将它们串联起来,主题模型将这个维度称为“主题”。每个文档都应该对应着一个或多个的主题,而每个主题都会有对应的词分布,通过主题,就可以得到每个文档的词分布。现在常用的方法就是潜在语义分析(LatentSemanticAnalysis,LSA)和LDA主题模型。文档各种金融经济新闻报道主题金融科技词分布大数据区块链银行、证券、保险......潜在语义分析潜在语义分析(LatentSemanticAnalysis,LSA),也叫作潜在语义索引(LatentSemanticIndex,LSI),一般通过“矢量语义空间”来提取文档与词中的“概念”,进而分析文档与词之间的关系。通过使用大量的文本构建一个矩阵,然后在此矩阵上使用奇异值分解来保留列信息的情况下减少矩阵行数,之后每两个词语的相似性则可以通过其行向量的cos值来进行标示,此值越接近于1则说明两个词语越相似,越接近于0则说明越不相似。潜在语义分析的基本假设是,如果两个词多次出现在同一文档中,则这两个词在语义上具有相似性。没有刻画出词项出现次数的概率模型;无法解决多义词的问题;特征向量的方向没有对应的物理解释;奇异值分解的复杂度很高,当有新的文档,如要更新模型,则需要重新训练数据等。潜在语义分析潜在语义分析的不足:LDA主题模型LDA主题模型认为文章都是用基本的词汇组合而成,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。LDA方法基于狄利克雷分布的贝叶斯统计原理,其基本思想为生成文档—主题矩阵以及主题—词语矩阵,即基于各文档在主题上的概率分布以及词语在主题上的概率分布来阐述文档的主要含义。所以LDA主题模型的核心,就是如下公式:LDA方法它假设文档生成包括以下两个步骤:假定每个文档均有对应的主题分布,在文档的主题分布中抽取一个主题;假定每个主题都有对应的词语分布,从上一步抽取的主题所对应的词语分布中抽取一个词语。通过将这两步迭代拟合到文档中的每个词语,即可得出每个文档的主题分布和每个主题的词语分布。经过以上步骤,就可以看一下两个分布的乘积,是否符合给定文章的分布,以此来调整。Python代码实战调用gensim相关库构建一个主题模型#先建一个主题模型类classTopicModel(object):#三个传入参数:处理后的数据集,关键词数量,具体模型(LSI、LDA),主题数量def__init__(self,doc_list,keyword_num,model='LSI',num_topics=4):#使用gensim的接口,将文本转为向量化表示#先构建词空间self.dictionary=corpora.Dictionary(doc_list)#使用BOW模型向量化corpus=[self.dictionary.doc2bow(doc)fordocindoc_list]#对每个词,根据tf-idf进行加权,得到加权后的向量表示self.tfidf_model=models.TfidfModel(corpus)self.corpus_tfidf=self.tfidf_model[corpus]self.keyword_num=keyword_numself.num_topics=num_topics我们以1.2万字的2022年央行《金融科技发展规划》为语料,LSI模型的结果为:科技/金融/体系/技术/产学研/标准/业务/人才/机构/机制,LDA模型的结果为:人才/科技人才/产学研/目录/标准/事业/职业/体系/平台/激励机制。06文本分析在金融领域中的应用股吧评论的文本挖掘金融市场情绪是金融市场上投资者对金融市场表现的情感态度的倾向。以股票市场为例,当股票市场行情向好时,舆情中会更多地出现“上涨,飘红”等字样,表明此时投资者情绪是积极的;反之,当股票市场行情向下时,舆情中会更多的出现“下跌,飘绿”等字样,表明此时投资者情绪是消极的。这里我们以股吧评论的文本挖掘为例,在此基础上可以进一步发现股评对股市指标的变化规律具有解释作用。股吧股民情绪的文本分析步骤:以大连理工大学中文情感词汇本体库,按照七个维度整理情绪词语列表:①

定义情绪计算函数,对键入进行分词,根据情绪词语列表进行情感词频统计,调试函数能正常运行;②

导入股吧帖子标题,对标题文本使用情绪计算函数,得到每个标题在七个情绪维度的得分;③

合并原文本和各文本的情绪词频统计后,进行检查,查看情绪的划分是否符合标题的语义,这是个不断优化的过程;④

拓展:可以按照最后更新日期,将评论标题的情绪词频加和到日度层面,按照每日词频最高的情绪,定义当日股吧股民的主导情绪。⑤

股吧评论的文本挖掘①查看大连理工大学中文情感词汇本体库,根据“情感分类”,划分出7个情绪词列表:#导入并查看大连理工大学中文情感词汇本体库importpandasaspddf=pd.read_excel('大连理工大学中文情感词汇本体.xlsx')df=df[['词语','词性种类','词义数','词义序号','情感分类','强度','极性']]df.head()#构建7大维度的情绪词列表(此处仅展示Happy和Good两个维度,详见代码文件)foridx,rowindf.iterrows():#按行遍历ifrow['

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论