第9章 文本及在线数据的挖掘_第1页
第9章 文本及在线数据的挖掘_第2页
第9章 文本及在线数据的挖掘_第3页
第9章 文本及在线数据的挖掘_第4页
第9章 文本及在线数据的挖掘_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第9章文本及在线数据的挖掘文本数据挖掘(TextMining)是指从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程。从这个意义上讲,文本数据挖掘是数据挖掘与分析的一个分支。文本挖掘利用智能算法,分析大量的非结构化文本源(如文档、电子表格、客户电子邮件、问题查询、网页等),抽取或标记关键字概念、文字间的关系,并按照内容对文档进行分类,获取有用的知识和信息。第9章文本及在线数据的挖掘第9章文本及在线数据的挖掘在线分析处理是一种重要的商务智能分析方法。这种技术主要对多维数据集进行多角度、多层次的分析,帮助管理者获取业务洞察。在线数据分析也称联机分析处理,是一门新兴的软件技术,它专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以应分析人员的要求,快速灵活地进行大数据量的复杂查询处理,并且以一种直观易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业的经营状况,了解市场需求并制定正确的方案,以增加效益。第9章文本及在线数据的挖掘第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.1文本数据的预处理

1.字符及字符串统计

2.字符串连接与拆分

3.字符串查询与替换9.1.2文本挖掘及可视化

1.文本挖掘的概念与方法

2.Python分词包jieba

3.文本数据的收集与分词

4.词频与词云分析及可视化9.1.1文本数据的预处理1.字符及字符串统计直接使用len()函数可分别对字段自身长度、列表长度和嵌套列表长度进行统计,len()函数也可以直接对中文字段进行操作。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.1文本数据的预处理1.字符及字符串统计9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Ins='abcdef’#字符串的定义len(s)#字符串的长度Out6InS=["Python","Data","Visual","暨南大学","管理学院"];#字符串列表长度len(S)#字符串的个数Out5In[len(s)forsinS]#字符串列表中各字符串长度Out[6,4,6,4,4]9.1.1文本数据的预处理2.字符串连接与拆分(1)字符串的连接方法1:加号'+'直接使用加号'+'就可以实现对两个或多个字符串进行连接。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化In'Excel'+''+'and'+''+'Python'Out'ExcelandPython'9.1.1文本数据的预处理2.字符串连接与拆分(1)字符串的连接方法2:字符串格式化输出有时对连接有自定义操作,这时可以采用字符串格式化输出,这种方法更为常用。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化Inwebsite='%s%s%s%s%s'%('Excel','','and','','Python’);websiteOut'ExcelandPython'9.1.1文本数据的预处理2.字符串连接与拆分(1)字符串的连接方法3:join()如果操作的对象是列表,也可以采用join()函数。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化InlistStr=['Excel','','and','','Python']''.join(listStr)Out'ExcelandPython'9.1.1文本数据的预处理2.字符串连接与拆分(2)字符串的拆分Python内置了针对字串的拆分函数split()。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化InS1='中国;广东省;广州市;天河区'S1.split(';’)#按;拆分Out['中国','广东省','广州市','天河区']InS2='暨南大学、管理学院、企业管理系'S2.split('、’)#按、拆分Out['暨南大学','管理学院','企业管理系']9.1.1文本数据的预处理2.字符串连接与拆分(2)字符串的拆分针对字符串列表(相当于一段段文本),可以自定义一个列表拆分函数list_split()。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化9.1.1文本数据的预处理2.字符串连接与拆分第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化InS3=['广州大学;广州发展研究院','暨南大学;文学院;历史系','暨南大学;管理学院']Indeflist_split(lists,sep):#列表拆分函数new_list=[]foriinrange(len(lists)):new_list.append(list(filter(None,lists[i].split(sep))))returnnew_listInlist_split(S3,';')Out[['广州大学','广州发展研究院'],['暨南大学','文学院','历史系'],['暨南大学','管理学院']]9.1.1文本数据的预处理3.字符串查询与替换(1)in函数在Python中in可以实现直接查询(集合操作)。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化In'暨南大学'inS2OutTrue9.1.1文本数据的预处理3.字符串查询与替换(1)in函数根据in的特点可以自定义一个字符串列表查询函数find_words()。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化Indeflist_find(lists,word):return[lists[i]foriinrange(len(lists))if(wordinlists[i])==True]Inlist_find(S3,'暨南大学')Out['暨南大学;文学院;历史系','暨南大学;管理学院']9.1.1文本数据的预处理3.字符串查询与替换(2)replace函数replace函数可以对字符串的内容进行替换。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化InS2.replace('、',';')Out'暨南大学;管理学院;企业管理系'9.1.1文本数据的预处理3.字符串查询与替换(2)replace函数也可以自定义一个针对字符串列表的字符串替换函数。第9章文本及在线数据的挖掘9.1文本数据挖掘与可视化Indeflist_replace(lists,old,new):return[lists[i].replace(old,new)foriinrange(len(lists))]Inlist_replace(S3,'暨南大学','中山大学')Out['广州大学;广州发展研究院','中山大学;文学院;历史系','中山大学;管理学院']9.1.2文本挖掘及可视化1.文本挖掘的概念与方法文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程。文本挖掘是数据挖掘的一个应用分支,用于基于文本信息的知识发现。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化1.文本挖掘的概念与方法文本挖掘利用智能算法,如神经网络、基于案例的推理、可能性推理等,并结合文字处理技术,分析大量的非结构化文本源(如文档、电子表格、客户电子邮件、问题查询、网页等),抽取或标记关键字概念、文字间的关系,并按照内容对文档进行分类,获取有用的知识和信息。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化1.文本挖掘的概念与方法文本挖掘是从数据挖掘发展而来,但并不意味着简单地将数据挖掘技术运用到大量文本的集合上就可以实现文本挖掘,还需要做很多准备工作。文本挖掘的准备工作由文本收集、文本分析和特征修剪三个步骤组成。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化1.文本挖掘的概念与方法(1)文本收集:需要挖掘的文本数据可能具有不同的类型,且分散在很多地方。需要寻找和检索那些所有被认为可能与当前工作相关的文本。一般地,系统用户都可以定义文本集,但是仍需要一个用来过滤相关文本的系统。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化1.文本挖掘的概念与方法(2)文本分析:与数据库中的结构化数据相比,文本具有有限的结构,或者根本就没有结构;此外文档的内容是人类所使用的自然语言,计算机很难处理其语义。文本数据源的这些特殊性使得现有的数据挖掘技术无法直接应用于其上,需要对文本进行分析,抽取代表其特征的元数据,这些特征可以用结构化的形式保存,作为文档的中间表示形式。其目的在于从文本中扫描并抽取所需要的事实。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化1.文本挖掘的概念与方法(3)关键词词云分析词云就是对文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使用户只要一眼扫过文本就可以领略文本的主旨。好的数据可视化,可以使得数据分析的结果更通俗易懂。“词云”就是数据可视化的一种形式。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化2.Python分词包jiebaJieba(结巴分词)号称宇宙最强Python分词工具,是Python语言中最流行的一个分词工具,在自然语言处理等场景被广泛使用。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化2.Python分词包jieba(1)安装9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘In#!pipinstalljiebaOutRequirementalreadysatisfied:jiebainc:\users\lenovo\anaconda3\lib\site-packages(0.42.1)9.1.2文本挖掘及可视化2.Python分词包jieba(2)简单分词9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inimportjiebawords1=jieba.lcut("我爱中国暨南大学");words1Out['我','爱','中国','暨南大学']句子切分成了5个词组的列表。9.1.2文本挖掘及可视化2.Python分词包jieba(3)全模式分词9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inwords2=jieba.lcut("我爱中国暨南大学",cut_all=True);words2Out['我','爱','中国','暨南','暨南大学','南大','大学']全模式分出来的词覆盖面更广。9.1.2文本挖掘及可视化2.Python分词包jieba(4)提取关键词从一个句子或者一个段落中提取前K个关键词,topK为返回前topK个权重最大的关键词,withWeight返回每个关键字的权重值。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化2.Python分词包jieba9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Insentence="词云就是对文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使用户只要一眼扫过文本就可以领略文本的主旨。其作用是提供用户在业务中的转化率和流失率;揭示了各种业务在网站中受欢迎的程度;发现业务流程中存在的问题,以及改进的效果。"Inimportjieba.analyseasjaja.extract_tags(sentence,topK=5)#句中出现次数最多的5个词Out['文本','关键词','流失率','用户','词云']9.1.2文本挖掘及可视化2.Python分词包jieba9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inja.extract_tags(sentence,topK=5,withWeight=True)#出现次数最多的5个词及权重Out[('文本',0.7778130951626087),('关键词',0.5806607855354349),('流失率',0.30218864460869566),('用户',0.2966233074965217),('词云',0.25988625006304344)]9.1.2文本挖掘及可视化3.文本数据的收集与分词(1)粤港澳大湾区发展规划纲要《粤港澳大湾区发展规划纲要》是进一步提升粤港澳大湾区在国家经济发展和对外开放中的支撑引领作用,支持香港、澳门融入国家发展大局,增进香港、澳门同胞福祉,保持香港、澳门长期繁荣稳定,让港澳同胞同祖国人民共担民族复兴的历史责任、共享祖国繁荣富强的伟大荣光。由中共中央、国务院于2019年2月印发实施。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.1.2文本挖掘及可视化3.文本数据的收集与分词(2)规划纲要正文(节选)9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Intxt=open("GBAtxt.txt","r",encoding='GBK').read()txt[:200]#显示前200个字符Out'《粤港澳大湾区发展规划纲要》\n前言\n粤港澳大湾区包括香港特别行政区、澳门特别行政区和广东省广州市、深圳市、珠海市、佛山市、惠州市、东莞市、中山市、江门市、肇庆市(以下称珠三角九市),总面积5.6万平方公里,2017年末总人口约7000万人,是我国开放程度最高、经济活力最强的区域之一,在国家发展大局中具有重要战略地位。建设粤港澳大湾区,既是新时代推动形成全面开放新格局的新尝试,也是推动“一国两制”事'9.1.2文本挖掘及可视化3.文本数据的收集与分词(3)分词及权重分析9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inwords=jieba.lcut(txt)#使用精确模式对文本进行分词words[:10]#显示前10个词Out'《','粤港澳','大湾','区','发展','规划','纲要','》','\n','前言']9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘InWi=ja.extract_tags(txt,topK=10,withWeight=True)#文中出现次数最多的10个词及权重pd.DataFrame(Wi,columns=['关键词','权重'])Out关键词权重0粤港澳0.1491大湾0.1292建设0.0943港澳0.0864合作0.0855澳门0.0726发展0.0717创新0.0708支持0.0659香港0.0579.1.2文本挖掘及可视化4.词频与词云分析及可视化(1)词频分析9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Indefwords_freq(words):#定义统计文中词出现的频数函数counts={}#通过键值对的形式存储词语及其出现的次数forwordinwords:iflen(word)==1:continue#单个字不计算在内else:#遍历所有词语,每出现一次其值加1counts[word]=counts.get(word,0)+1return(DataFrame(counts.items(),columns=['关键词','频数']))Inwordsfreq=words_freq(words);wordsfreq9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Out关键词频数0粤港澳1171大湾1182发展2013规划194纲要1.........2188劳工12189学术界12190建立联系12191公众22192意见反馈1[2193rowsx2columns]9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inwordsfreq.sort_values(by='频数’,ascending=False,inplace=True);wordsfreqkeys=wordsfreq.set_index('关键词');keys[:10]#按词频排序,并设关键词为索引,取排名前10个关键词9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Out频数关键词发展201建设192合作155支持128创新122大湾118粤港澳117香港98港澳98国际919.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Inkeys[:10].plot(kind='barh');Out9.1.2文本挖掘及可视化4.词频与词云分析及可视化(2)词云分析>pipinstallWordCloud#安装词云包9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘InfromwordcloudimportWordCloud#加载词云包Instrings="".join(words)#用.join将分词连接为字符串,用空格分隔WC=WordCloud(max_words=50,max_font_size=200,width=1200,height=800,font_path='STZHONGS.TTF',background_color="white")plt.imshow(WC.generate(strings));plt.axis("off")9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘Out9.1.2文本挖掘及可视化4.词频与词云分析及可视化注意在做该图时并未删除一些停止词。停止词是指在句子中无关紧要的词语,例如标点符号、指示代词等等,做分词前要先将这些词去掉。分词方法cut不支持直接过滤停止词,需要手动处理。限于篇幅这里从略。9.1文本数据挖掘与可视化第9章文本及在线数据的挖掘9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析1.行政区划数据的抓取2.居民消费数据的抓取9.2.2网络数据爬虫及分析1.股票数据的抓取与分析2.Python爬虫步骤3.爬虫数据的分析练习题9(网上存在大量的在线数据,如何获取这些数据是大家所关心的.下面我们以中商情报网(/)的中商产业研究院数据库(/)平台为例介绍这类数据的获取和分析。9.2在线数据的获取与分析第9章文本及在线数据的挖掘中商情报网是国内第三方市场研究机构和企业综合咨询服务提供商。已构建起企业商业情报数据库,致力于为企业中高层管理人员、企事业发展研究部门人员、市场投资人士、投行及咨询行业人士、投资专家等提供各行业的市场研究资料和商业竞争情报;致力于为国内外各行业企业、科研院所、社会团体和政府部门提供专业的行业市场研究、行业专项咨询、项目可行性研究、IPO咨询、商业计划书等服务。9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析1.行政区划数据的抓取中商情报网上的很多数据都是以表格形式出现的,对少量的表格数据,我们可以用简单的拷贝方式获取数据。进入网页/data/area/440000/,可选取数据并复制到Python中。9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析1.行政区划数据的抓取9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析1.行政区划数据的抓取9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析2.居民消费数据的抓取9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.1简单数据的获取及分析2.居民消费数据的抓取9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘很多网站都会以表格的形式展示数据,但如果表格中的数据较多或有多页数据时,显然使用复制的方法是不可行的。如对于下图的我国宏观经济的综合数据,可通过爬虫技术获取这些数据。从下图可以看出,我们需要的数据都保存在表格中,所以这里可以使用pandas获取表格数据。在pandas库中有一个方法read_html可以直接读取网页中的图表,然后遍历出每一个表格。9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘打开网址/stock/a/,其中有几个主表数据。9.2在线数据的获取与分析第9章文本及在线数据的挖掘9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘若表数据量不大,也可以用前文介绍的复制的方法抓取数据,但若表内容较多,这时使用复制的方法显然是不可行的,需通过编程的方法抓取数据。9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取InImportrequestsurl=‘/stock/a’#A股信息html=requwsts.get(url).content.decode(‘utf-8);In#获取第1张表格的数据:A股公司营业收入排行榜pd.read_html(html,header=0)[0]9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取In#获取第2张表格的数据:A股公司净利润排行榜pd.read_html(html,header=0)[1]9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取In#获取第3张表格的数据:A股公司利润总额排行榜pd.read_html(html,header=0)[2]9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘1.A股收益数据的获取9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘2.A股股票信息的获取及分析9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘2.A股股票信息的获取及分析获取这种数据需要通过代码进行网页爬虫,由于股票数据设计很多页,这时可通过循环遍历出每一个表,然后将获取的数据保存在表格中即可。下面仅介绍获取广东省上市公司(共599家)的数据并进行简单分析。9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘2.A股股票信息的获取及分析9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘2.A股股票信息的获取及分析由于每页只显示20只股票的数据,所以需通过编程来获取数据,首先构建一个获取当前页的函数,通过pageNum的数字来获取不同页。9.2.2复杂数据的获取及分析9.2在线数据的获取与分析第9章文本及在线数据的挖掘

温馨提示

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

评论

0/150

提交评论