Skip to content

shejianyou/NLTK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLTK

from data_loader import * 
from data_preprocessing import *
from data_minner import *
from baidu_NLP import *
from Config import *
from pre_data import *
from topic import *
from sentiment import *

第1章 概念明确

本章的目的在于:界定后续章节将涉及的相关概念,统一介绍本次用到的分析工具。 此概念包括文本数据分析的相关思想、概念,文本数据分析的意义,以及常用的文本数据分析工具等。

一.什么是文本数据

1.文本数据

“文本”(text)即文字、话语,是语言的书面表现形式,可以是句子、段落或者篇章等;语言是通过实词(动词、名词、形容词)、虚词(介词、连词、语气词、标点符号)的排列组合来表达意思的,故文本是通过实词、虚词来表达意思的。就结构化数据、非结构化数据和半结构化数据而言,可将文本数据分为非结构化数据和半结构化数据,比如不包含结构化字段的纯文本(如文章摘要)为非结构化数据,包含标题、作者、分类等结构字段,又包含非结构化的文字内容,这类文本均属于半结构化数据。

2.文本数据特点

from Config import *
from data_loader import *
2.1半结构化

大多数文本数据属于半结构化数据,此一实例为网络新闻,既有结构化内容:其标题、作者、分类、来源等信息通常都会以某种特定的格式标注出来,又有非结构化内容:新闻的主体部分譬如摘要和正文等则是由连续的文字与标点组成的纯粹文本。 计算机并不能像人类具有理解非结构化自然语言的能力,故文本数据半结构化应用阻碍了数据分析与挖掘方法的应用,因此对于文本数据的结构化处理的有关方法以及文本数据的表现形式值得根据具体需求而认真对待。

2.2数据量大

此数据量大为文本数据基数大与高增长,故需要在文本数据的结构化处理以及文本数据降维、文本数据模型方面进行在保证召回率(准确率)的基础上进行的改进。

2.3高维稀疏性

一般文本数据结构化处理后得到的文本向量都会面临维度过高和稀疏的问题,维数一般都高达数千甚至上万维,如果不进行处理,则会导致文本挖掘算法计算量大,资源消耗高,同时严重影响相关挖掘算法的准确性,所以有必要进行特征筛选等降维处理。

2.4蕴含语义、情感

文本是语言的书面表现形式,其内在蕴含了不同语言环境下复杂的语义关系,如:一词多义、起承转合、时间关系等。 文本内容由特定的人编写,故除传递所表达的基本信息外,不可避免地会隐含表述者地态度或情感等。

3.文本数据分析

3.1什么是文本数据分析

文本数据分析是利用自然语言处理合分析方法对文本数据进行文本数据结构化的前置处理(具体涉及到词频分布研究、模式识别、关联分析、信息提取、可视化和预测分析等等)和文本数据挖掘(包括文本分类、文本聚类、命名实体识别、情感分析、建立实体关系模型等)的过程。 一般通过文本数据结构化的前置化处理可以初步推断文本的主要含义和文本提供者的意图。

3.2文本数据分析基本内容

(1)文本数据获取和初步清洗
如包含一些网页数据的无意义字符串
(2)自然语言处理
如分词、词性标注、句法分析、去除停用词、同义词替换
(3)命名实体识别
即利用词典或统计方法识别命名的文本特征,如:人名、地名、组织机构、特定的缩写等
(4)模式识别
文本中可能会出现像电话号码、邮箱地址这样有正规表示方式的实体。
通过这些特殊的表示方式或者其他模式来识别这些实体的过程就是模式识别。
(5)关系识别
识别代指同一对象的不同词汇
(6)文本聚类
运用无监督机器学习手段归类文本,适用于海量文本数据的分析,在发现文本话题、筛选异常文本资料方面应用广泛(聚类、逻辑回归)
(7)文本分类
即在给定分类体系下,根据文本特征构建有监督机器学习模型,达到识别文本类型或内容主旨的目的(LDA模型,不过在评论数据一般通过提取产品特征词)
(8)文本关联
传统关联规则挖掘方法在文本特征上的直接应用,包含文档类型关联、词汇关联、实体关联等内容
文本是通过实词、虚词来表达语义的。
文本之间的关联实质上是语义的关联。
故若需要进行文本之间的关联分析,需要通过对文本的实词、虚词分析。
所有的挖掘方法都建立在对文本数据进行特征化的基础上。
文本数据特征化实指将自然语言文本地每个词作为一个特征。
故所有的挖掘方法实质仍然是基于对文本的实词、虚词分析。
(9)情感分析
包括识别文本隐含的主观内容、挖掘不同形态的观点信息,如:情绪、情感、语气、观点等
(10)定量文本分析
人为或者通过机器学习来挖掘词汇间的语义、语法关系,进而识别一段文本的含义、文体。

二.文本数据分析相关概念

在进行复杂的文本数据分析之前,本节先对文本数据结构化处理会涉及到的概念及相关操作--作简要说明,主要包括分词、构建“文档-词项”矩阵、TF-IDF、词向量等。

1.1分词(Word Segmentation)

分词,是将由连续字符组成的语句按照一定规则划分成一个一个独立词语的过程。
在实际分析中,中文和英文分词是经常要处理的两种情况。在英文中,单词之间是以空格作为形式上的分界符,所以可指定“空格(space)”作为分词标记。
中文没有形式分界符,所以得借用其他划分规则。现有的分词算法可分为三大:基于规则的分词方法、基于统计的分词方法、基于字符串匹配的分词方法(就是基于词典分词)。

1.1.1基于词典分词

基于词典分词,是应用词典匹配、汉语词法或其它汉语语言知识进行分词的方法。使用的词典可以是庞大的统一化词典(如jieba),或者是分行业的垂直词典(如baiduAI的自然语言处理的分词)。
基本分词原理是:文本输入后,依据一定策略将待分析的文本与词典进行词向匹配,匹配成功则提取该词。
匹配策略有不同的分类方法:按照扫描方向可分为正向匹配(从左至右)、逆向匹配(从右至左)。

1.1.2歧义词

一般当一个字可以同时作为两个词的组成部分,并且这两个词按序同时出现在一个语句中时,就可能会出现歧义的现象。
目前的歧义一般分为三种:交叉歧义,组合歧义,真歧义

1.1.3未登录词

未登录词指在分词词典中没有收录但是已被认为词语的词汇,也可以称之为新词。

1.2停用词(Stop Words)

停用词指在文本中不影响文本主要表达meaning的“无用”内容,通常为在人类自然语言中常见且无意义的助词、虚词、代词。停用词的存在直接增加了文本数据的特征维度,提高了文本数据分析过程中的成本(此可以通过PCA主成成分来降维),若直接以包含大量停用词的文本为分析对象,还可能会导致数据分析的结果存在较大偏差。

1.3"文档-词项"矩阵(DTM矩阵)

DTM矩阵即为文本数据的信息阵,是以文档为样本、各文档分词(在实际项目中是需要过滤的)得到的词汇项并集为变量集合,词频为变量观测值的矩阵。

1.4词频-逆向文档频率(TF-IDF)

TF-IDF算法建立在以下假设之上:对某个文档最有代表性的词汇或者说对区别文档最有意义的词汇应该是那些在某个文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词汇。有的词比率很高,有的很小,则会造成(对数变换)

1.5词向量(Distributed Representation)

自然语言文本是非结构化的,而传统数据挖掘任务面向的是结构化数据。因此文本挖掘任务如何从文本中抽象出机器学习算法认识的特征向量呢?
自然地我们想到:将自然语言文本地每个词作为一个特征。因此对应地特征向量即这些特征的组合,这就是词袋模型,也叫向量空间模型。
有了词袋模型后,每个特征(即每个词)的值该如何定义呢?或者说每个词该如何编码呢?如何进一步生成我们所需要的特征向量呢?
我们自然而然地想到:设词典(全部文本数据所包含的词)地大小为n(词典中有n个词),假如某个词在词典中的位置为k,则设立一个n维向量,第k维置1,其余维全都置0,此思想为:one-hot编码。
那么一个样本的特征向量即该样本中的每个单词的one-hot向量直接相加。
此时,特征向量已被构建完成了。
那么现在的问题是:每个样本的特征向量也许会变成高维稀疏向量,这会让很多机器学习模型很难堪。另外还需很多同义词被处理。
在实际需求中,缓解“高维稀疏向量”,一是有过多的停用词,再者对分词后的词语进行名词过滤。
同义词需要进行相关词替换。

1.6词性标注(Part-of-speech Tagging,POS)

所谓词性,就是对词语的一种分类方式。现代中文词汇大致可以分为名词、动词、形容词、数词、量词、代词、介词、副词、连词、感叹词、助词和拟声词等12种;英文词汇基本分类包括名词、形容词、动词、代词、数词、副词、介词、连词、冠词和感叹词等10种。
具有两个或两个以上词性的词,即兼类词的存在是词性标注的难点。目前,针对兼类词的歧义排除,比较经典的算法可以归类为以下三类:基于规则的算法、基于概率统计模型的算法、规则和统计相结合的算法。

1.7命名体识别(Named Entity Recognition)

命名实体识别指识别文本种具有特定意义的实体,如人名、机构名、地名等专有名词和有意义的时间等,是信息检索、问答系统等技术的基础任务。

1.8句法分析(Dependency Parsing,DP)

句法分析,指根据给定的语法体系下分析句子的句法结构,划分句子中词语的语法功能,并判断词语之间的句法关系。短语结构和依存结构是目前句法分析研究中应用最广泛的两类语法体系。

1.9情感分析(Sentiment Analysis)

所谓情感分析,也可以称为意见挖掘(Opinion Mining),是通过计算机语言技术、自然语言处理方法整理和分析相关的文本数据,对主观情感性文本进行分析和推理的过程,是一个分析人们书面语言情绪、情感或态度的领域。
按照应用领域的不同,可以分为褒贬情感倾向分类、主观性内容识别和在线评论经济价值挖掘等几个方面;
按照文本类型的不同,可以分为产品评论的情感分析、新闻评论的情感分析等;
按照分析粒度的不同,可以分为篇章级、词语级、语句级三个不同粒度层次的情感分析。
从技术方法来看,有两类方向:一类是基于语义分析,另一类是基于机器学习。

三.Resource-Of-Wechat

2016_Economist
2017_Economist
2018_Economist
铅笔道全部文章
CNN_China
A_Tale_of_Two_Cities-Charles_Dickens 情感词典

About

此repository专用于上传我的文本挖掘代码以及文本资源

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages