内容正文:
4.2.3 文本数据处理
第四章
第四章
1
文本数据处理是大数据处理的重要分支之一,目的是从大规模的文本数据中提取出符合需要的、感兴趣的和隐藏的信息。
据资料表明,非结构化文本数据占文本数据总量的80%以上,而计算机只认识“符号语言”,并不能直接处理非结构化形式的“自然语言”。
非结构化数据
结构化数据
什么是文本数据处理?
2
百度搜索:高中信息技术难不难?
文
本
数
据
处
理
论文查重
垃圾邮件过滤
搜索引擎
情报分析
自动摘要、自动校对
论文查重、文本分类
垃圾邮件过滤
机器翻译
自动应答
文本数据处理应用
古代小故事
有位书生到亲戚家做客,谈话间外面下起雨来,这时天色将晚,他只得打算住下来。但亲戚却不乐意,于是就在纸上写了一句话:
下雨天留客天留人不留。
书生看了,明白亲戚的意思,却又不好明说,就心想一不做、二不休,干脆加了几个标点:下雨天,留客天,留人不?留!亲戚一看,这句话的意思完全反了。也就无话可说,只好给书生安排了住宿。
下雨天留客天留人不留
下雨,天留客,天留,人不留
下雨天,留客天,留人不?留!
这幅对联是什么意思?
人多病少财富
养猪大如山老鼠头头死
酿酒缸缸好造醋坛坛酸
非结构化数据:各类的办公文档、文本、图片、XML、HTML、各类报表、图像、音频、视频
结构化:行数据,二维表结构,遵循数据格式与长度规范
非结构化数据
结构化数据
分词
数据分析
文本数据源
特征提取
结果呈现
便于计算机处理
文本数据处理的一般过程
分词:将连续的子序列按照一定的规范重新组合成词序列的过程
分词
基于字典的分词方法(jieba):
在分析句子时与词典中的词语进行对比,词典中出现的就划分为词。
基于统计的分词方法:
依据上下文中相邻字出现的频率统计,同时出现的次数越高就越有可能组成一个词,一般与基于字典的分词方法结合使用
基于规则的分词方法:
模拟人的计算方式,根据大量的现有资料和规则进行学习,进而分词,目前处于实验阶段
字符匹配
概率统计
自主学习
一般采用词典法和统计法两者结合
名称 简介
Jieba分词 Python开源项目
IKAnalyzer Java开源分词工具包
NLPIR 北京理工大学大数据搜索与挖掘实验室,非商业应用免费
语言云 哈尔滨工业大学社会计算与信息检索研究中心,在线API接口调用
BosonNLP 玻森中文语义开放平台,在线API接口或库调用
分词工具
函数 对应模式
cut 默认精确分词模式:将句子最精确地切分开
cut(s,cut_all=Ture) 全模式分词:将句子中所有成词的词语都扫描出来
jieba实例
12
jieba实例
s="我来到了西北皇家理工学院,发现这儿真不错"
seg_list=jieba.cut(s,cut_all=True)
我/来到/了/西北/皇家/理工/理工学/理工学院/工学/工学院/学院/,/发现/这儿/真不/真不错/不错
s="我来到了西北皇家理工学院,发现这儿真不错"
seg_list=jieba.cut(s,cut_all=False)
我/来到/了/西北/皇家/理工学院/,/发现/这儿/真不错
13
import jieba #引入jieba分词模块
sentence=input("请输入文本:") #定义文本
sent=jieba.cut(sentence,cut_all=True) #全模式分词
print(sent) #输出结果
import jieba
sentence=open(‘文件名’,’r’).read()
sent=jieba.cuts(sentence) #精准分词模式
print(sent)
jieba实例
print(“/”.join(s)) #以/分隔 文本/本数/数据/数据处理/处理/的/过程
print(“/”.join(b)) #以/分隔 文本/数据处理/的/过程
print(list(b)) [“文本”,“数据处理”,“的”,“过程”]
14
中文文本可以采用字、词或短语作为表示文本的特征项。目前,大多数中文文本分析中都采用词作为特征项,这种词称作特征词
相比较而言词的切分难度小且更能表达文本含义。
通常可以直接用分词算法和词频统计得出的结果作为特征词,但若文本很大,特征词会很多,用特征提取效率更高
特征词
15
①根据专家知识库挑选有价值的特征。
②用数学建模的方法构造评估函数自动选取特征。
目前大多采用评估函数进行特征提取的方式,评估函数大多是基于概率统计设计的,这就需要用庞大的训练数据集才能获得对分类起关键作用的特征。随着深度学习、大数据分析等技术的发展,文本特