资源简介 课时4 文本数据处理课时目标1.了解文本数据处理的一般过程和方法。2.掌握分词的方法和技巧。1.文本数据处理主要应用在搜索引擎、情报分析、自动摘要、自动校对、论文查重、文本分类、垃圾邮件过滤、机器翻译、自动应答等方面。2.文本内容是非结构化的数据,需将文本从无结构的原始状态转化为结构化。3.典型的文本处理过程主要包括:分词、特征提取、数据分析、结果呈现等。(1)分词中文分词是中文文本信息处理的基础,机器翻译、全文检索等涉及中文的相关应用中都离不开中文分词。分词是将连续的字序列按照一定的规范重新组合成词序列的过程,也就是将一个汉字序列切分成一个一个单独的词。常见的分词方法有:①基于词典;②基于统计;③基于规则。常见的分词系统有分词系统 简介jieba分词 Python开源项目,基于词典IKAnalyzer Java 开源分词工具包NLPIR 北京理工大学大数据搜索与挖掘实验室,非商业应用免费语言云哈工大社会计算与信息检索研究中心 在线API接口调用BosonNLP玻森中文语义开放平台提供 在线API接口或库调用(2)特征提取一般采用的方式为根据专家的知识挑选有价值的特征,或者用数学建模的方法构造评估函数自动选取特征等。目前大多采用评估函数进行特征提取的方式,评估函数大多是基于概率统计设计的,这就需要用庞大的训练数据集才能获得对分类起关键作用的特征。随着深度学习、大数据分析等技术的发展,文本特征提取将更加准确、科学。4.文本数据分析与应用在取得特征词后,对文本的分析就需要根据项目的需求,确定解决问题的路径,选取合适的工具、设计算法抽取出文本中隐含的价值。(1)标签云标签云用词频表现文本特征,将关键词按照一定的顺序和规律排列,如频度递减、字母顺序等,并以文字大小的形式代表词语的重要性。广泛应用于报纸、杂志等传统媒体和互联网。(2)文本情感分析文本情感分析是指通过计算机技术对文本的主观性、观点、情绪、极性的挖掘和分析,对文本的情感倾向做出分类判断。文本情感分析主要应用于网络舆情监控、用户评论、分析与决策、信息预测等众多领域。 例1 Python中文分词模块jieba采用的分词方法属于 ( )A.基于词典 B.基于统计C.基于规则 D.以上都有可能答案 A解析 教材中有介绍中文分词模块jieba分词模块中的词典。变式训练1 依据上下文中相邻字出现的频率,同时出现的次数越高就越可能组成一个词,这种分词方法属于 ( )A.基于词典 B.基于统计C.基于规则 D.以上都有可能答案 B解析 频率是要经过统计的。例2 下列关于文本数据处理的说法,正确的是 ( )A.处理的文本信息通常是结构化数据B.特征提取是中文文本信息处理的基础C.目前的分词算法能实现完全准确的进行分词D.处理的目的是从大规模的文本数据中提取出符合需要的有用模式和隐藏的信息答案 D解析 处理的文本信息是非结构化数据;中文分词是中文文本信息处理的基础。变式训练2 文本数据处理的主要应用有 ( )①搜索引擎 ②自动摘要 ③论文查重 ④列车查询 ⑤微博评论典型意见A.①④⑤ B.①②③⑤C.②③④ D.②③④⑤答案 B解析 “列车查询”中主要应用了结构化数据,①②③⑤中主要应用了非结构化的文本数据。例3 2022年10月16日,习近平总书记在中国共产党第二十次全国代表大会上作了《高举中国特色社会主义伟大旗帜为全面建设社会主义现代化国家而团结奋斗》的报告,大会后全文发表。现将该报告内容存储在“new.txt”文件中,经程序处理后的数据保存为“newfc.txt”文件。分别如图a、图b所示。图a图b(1)处理文件“new.txt”中的数据生成“newfc.txt”文件的过程,一般称为 。 (2)编写如下Python程序,读取“newfc.txt”文件的数据,并统计其中各词语(2个及以上汉字构成)出现的次数,在画线位置填写合适的代码,完善程序。import pandas as pdf=open('newfc.txt','r',encoding='utf-8').read () #读取文件words = f.split()#利用空格、换行符将字符串f分割成列表counts = {}#建立空字典,用于存放词语及其出现的次数for word in words: #统计其中各词语(2个及以上汉字构成)出现的次数 if ① : if word not in counts: counts[word] = 0 ② #利用字典生成相应的Series,根据值降序排列s=pd.Series(③ ).sort_values (ascending=False) for i in ④ : #从高到低输出出现次数最多的10个词语 print(i)答案 (1)分词 (2)①len(word)>1②counts[word]+=1 ③counts④s.head(10).index或者s.index[:10]解析 本题考查文本数据处理、pandas处理数据(如字典作为Series结构数据的源数据,排序sort_values()以及head()函数等)等操作(1)根据图b的状态,可以看出生成“newfc.txt”文件的过程是文本处理过程中的分词。(2)①处描述的是该词的长度是2个及以上汉字,可以填入len(word)>1或len(word)>=2;当有长度大于等于2个汉字的词第一次出现的时候,添加一个新的键值对,先设置counts[word]为0,②处该词出现的次数加1,可以填入counts[word]+=1;③处利用字典counts的数据生成相应的Series结构数据,可以填入counts;字典作Series的原始数据时,字典的键作为索引index,字典的值作为数据列,i要遍历对象s经过降序排序后的前10条数据的索引值,所以④处需要填入的是s.head(10).index或者s.index[:10]。变式训练3 在网上搜索朱自清的《绿》文章,如图所示。(1)搜索的信息并保存为txt文件,该过程称为 。 (2)“绿.txt”文件是文本的类型是 。(填字母:A.结构化数据/B.半结构化数据/C.非结构化数据) (3)制作标签云的代码如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagewcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')text=open('data/绿.txt',encoding='utf-8').read()seg_list= f=collections.Counter(seg_list)wcg.fit_words(f)wcg.to_file('output/b.png')划线处语句是调用jieba对象的cut函数对变量为text文件进行分词,则该处语句为 。 (4)得到的云标签如图所示。该图片的文件名是 ,表示该文本特征是 (至少写出3个)。 答案 (1)采集信息 (2)C (3)jieba.cut(text) (4)b.png 我的着了绿 梅雨潭解析 获取信息的过程,称为信息的采集。从文件的内容来看,属于非结构化信息。jieba对象的cut函数对文本文件进行切割,应为jieba.cut(文件名)。标签云用词频表现文本特征,一般以文字大小的形式代表词语的重要性。 1.有关大数据的文本数据处理,下列说法正确的是 ( )A.jieba模块的分词算法属于基于统计的分词方法B.大数据文本情感分析是电脑将自己的情感表现出来C.文本处理过程中一般先进行数据分析,再分词、提取特征,最后呈现结果D.标签云一般根据词频表现文本特征,以文字大小代表词语的重要性答案 D解析 A选项jieba模块的分词算法属于基于字典。C选项文本处理的一般过程为:分词、特征提取、数据分析、结果呈现。2.下列关于中文分词方法的描述中,属于基于词典的分词方法的是 ( )A.在分析句子时与词典中的词语进行对比,词典中出现的就划分为词B.依据上下文中相邻字出现的频率统计,同时出现的次数越高就越可能组成一个词C.让计算机模拟人的理解方式,根据大量的现有资料和规则进行学习,然后分词D.依据词语与词语之间的空格进行分词答案 A解析 B选项基于统计。C选项基于规则。3.在中文文本分析中,一般不用做文本的特征项的是 ( )A.字 B.词C.短语 D.段落答案 D4.下列数据分析中可能涉及文本情感分析的是 ( )A.博主地域分析 B.微博评论内容分析C.微博发布设备分析 D.博主男女比例分析答案 B5.某研究小组对采集的省内微博数据进行了研究,用不同的颜色来表示心情,在区域地图上展示了不同地区的人在不同时间的情绪变化,该研究小组所使用的文本数据分析是 ( )A.词频统计 B.标签云C.文本情感分析 D.文本挖掘答案 C解析 根据题目描述可知,本题是通过计算机技术对文本的情绪进行挖掘和分析,并对文本的情感倾向做出分类判断,因此属于文本情感分析,答案为C。一、基础巩固 1.下列数据处理中,不属于文本数据处理的是 ( )A.根据白名单和黑名单机制,进行垃圾邮件的识别B.在线客服通过自动应答技术回答问题C.实时监测景区的人流数据,控制过多的游客进入景区D.分析消费者的意见数据,挖掘用户观点,辅助运营决策答案 C解析 C选项只是掌握游客数量,没有进行分词等文本操作。2.下列数据处理中,不属于文本数据处理的是 ( )A.将中文翻译成其他国家的文字B.输入姓名、单位等信息,制作通讯录C.检测的论文内容与对比库中的资料进行对比,检测论文可信度D.解析大量合同文档,有效监控风险条款,节省人力和时间成本答案 B解析 制作通讯录的材料是结构化数据。3.文本数据处理的主要步骤由以下部分选项组成:①文本校对 ②特征抽取 ③数据分析④分词 ⑤文本获取 ⑥结果呈现正确的顺序是 ( )A.⑤②④③⑥ B.⑤③④②⑥C.⑤④②③⑥ D.⑤④①③②⑥答案 C解析 考查文本处理的4个过程,该过程中没有文本校对这个步骤。4.下列数据分析中可能没有涉及文本情感分析的是 ( )A.用户评论内容分析B.用户年龄分布分析C.预测股票走势和价格D.用户投诉商品会话答案 B解析 评论内容有坏有好,预测股票走势会带来情感,用户投诉商品会有偏向。但用户年龄分布分析比较客观。5.下列有关文本数据分析与应用的说法正确的是 ( )A.文本的情感分析带有主观感情B.标签云只统计各个字词出现的概率C.标签云比较适合用户评论分析与决策D.需要根据项目的需求,确定解决问题的路径,选取合适的工具答案 D解析 用户评论分析与决策往往带有主观想法。6.分析某城市的介绍,创建的标签云如图所示。其中用作文本的特征项的是 ( )A.字 B.词 C.句子 D.段落答案 B解析 观察标签云可知,用作文本的特征项的是词,因此答案为B。7.某文本数据集的标签云如图所示,下列说法正确的是 ( )A.对数据集中文本分词后可直接创建标签云,无须特征提取B.标签云须显示该数据集包含的全部词语C.该数据集中,词语“玩偶”比“注意力”的出现频率高D.最能表现该数据集中文本特征的词有“车顶”“玩偶”“路口”答案 C解析 A选项分词后,还要统计。B选项可以包含部分词语。D选项路口并不是主要特征。8.下列关于数据可视化的描述中,错误的是 ( )A.标签云是基于语句的文本内容可视化B.数据可视化将数据以图形图像等形式表示C.数据可视化可以直观的呈现数据中蕴含的信息D.数据可视化增强了数据的解释力与吸引力答案 A解析 A选项标签云用词频表现文本特征。9.编写一个Python程序,为一篇主题关于“碳中和”的文章制作标签云,如图所示。下列说法不正确的是 ( )A.这篇文章属于结构化数据B.该程序可以使用jieba模块进行分词C.基于词典和基于统计的分词方法一般是结合使用的D.标签云用词频表现文本特征,词频越高的文字越大答案 A解析 本题考查对文本数据处理的理解。A选项文本内容是非结构化的数据。10.若字符串str1="小明打死老虎",有如下Python程序:import jieba#1.全模式:['小','明','打死','打死老虎','死老虎','老虎']fc1=jieba.lcut(str1,cut_all=True)#2.精简模式:['小明','打死老虎']fc2=jieba.lcut(str1,cut_all=False)下列有关文本分词处理,说法正确的是 ( )A.使用jieba分词处理的文本内容属于结构化的数据B.文本处理过于复杂,语文作文机器自动阅卷目前无法实现C.采用全模式分词产生的分词数量一定多于精简模式的分词数量D.文本的处理过程主要包括:分词、特征提取、数据分析、结果呈现等答案 D11.制作“中国”词云Python代码如下:import jiebaimport imageiofrom wordcloud import wordCloudtext=① #读取文本文件“中国.txt”到text对象中 mask=imageio.imread('中国.jpg')wcg=wordCloud(background_color="white",font_path='STZHONGS.TTF',mask=mask)seg_list=② #对文本进行分词 f=collections.Counter(seg_list)wcg.fit_words(f)③ #创建词云图片文件“中国.png” 运行该程序段,内置的collections库用Counter函数统计词频。请回答下列问题︰(1)结合代码,根据以上提示,则①②处对文本文件进行读取和分词的语句应分别填入的是① ,② 。 (2)若要创建如下图所示的词云,则③必应填入的语句是 。 (3)图中所出现的词是根据词频统计进行显示的。结合以上代码进行分析,则统计词频的语句是 。 答案 (1)①open("中国.txt").read②jiaba.cut(text) (2)wcg.to_file("中国.png")(3)f=collections.Counter(seg_list)二、能力提升12.制作标签云的代码如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagemask=np.array(Image.open("assets/heart.jpg"))wcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf',mask=mask)text=open('data/浙江师范大学.txt', encoding='utf-8').read()seg_list=jieba.cut(text)f=collections.Counter(seg_list) ① wcg.fit_words(f)wcg.to_file('output/c.png')运行该程序段,输出如图a所示的标签云。内置的collections库用Counter函数可以统计各个字词出现的频率。请回答下列问题:图a(1)结合代码,根据以上提示,则对文本文件进行分词的语句是 。 (2)若要输出各个字词及出现的次数,运行过程如图b所示,则划线①处应填入的代码为 。 图b答案 (1)seg_list=jieba.cut(text)(2)print(f)解析 统计各个字词出现的频率语句应为f=collections.Counter(seg_list),则seg_list就是分词的结果,因此分词的语句是seg_list=jieba.cut(text)。若要打印出这个字典信息,使用print()方法。13.阿泽同学使用百度搜索关键字“元旦”,将采集到的结果数据存储为文本文件,如图a所示,统计其中各词语(2个及2个以上文字构成)出现的次数并以衢州地图为轮廓将其制作成标签云,如图b所示。请回答下列问题:(1)编写如下Python程序,读取文件,并统计各词语(2个及2个以上文字构成)出现的次数。请在划线处填写合适代码,完善程序。import jiebaimport ostxt=open(″① ″,″r″).read() words=jieba.cut(txt,cut_all=False)counts={}for word in words: if ② : continue else: if word in counts: counts[word]+=1 else: ③ #生成词云代码略(2)下列描述正确的是 (多选,填字母)。 A.文本数据处理主要应用在搜索引擎、情报分析、自动摘要、自动校对、自动应答等方面B.基于词典的分词方法、基于统计的分词方法和基于规则的分词方法是常用的中文分词算法,其中基于规则的统计方法在实际应用中较多C.标签云用词频表现文本特征,将关键词按照一定的顺序和规律排列,并以文字大小的形式代表词语的重要性D.典型的中文文本处理过程主要包括:分词、特征提取、数据分析、结果呈现等E.数据可视化增加了读者的阅读难度答案 (1)①″元旦.txt″ ②len(word)==1或len(word)<2 ③counts[word]=1(2)ACD解析 (1)①以只读模式打开文本文件并且进行处理,文件名需要加上后缀:″元旦.txt″②用jieba进行分词后,words中为词汇列表,每次遍历其中的一个词汇,2个或2个以上字构成的词汇需要统计次数置于字典counts中,因此需要coutinue即跳过当前循环继续下一次循环的条件为:len(word)==1或len(word)<2。③此处表示当前遍历到的词汇在counts字典中没有,此时需要新增元素,并且将值变为1:counts[word]=1。(2)B选项中基于词典的统计方法在实际应用中较多。 展开更多...... 收起↑ 资源预览