学科分类
目录
数据分析

预处理的流程

导入文本数据后,并不能直接被用来分析,而是要进行一系列的预处理操作,主要包括分词、词形统一化、删除停用词等,这些都是文本预处理要完成的步骤。

文本预处理一般包括分词、词形归一化、删除停用词,具体流程如图1所示。

img

图1 文本预处理的流程

图1中列出了文本预处理的每个步骤,其中左侧为示例,右侧为预处理流程。最开始的时候文本为“I am looking at the scenery”,它经过第一步分词处理之后,按空格将整个句子划分成多个单词,这里面有个别单词用的是将来进行时的形式,比如“looking”,这时可以执行下一步骤到词形归一化,把不影响词性的后缀(如ing)去掉,提取词干“look”,然后继续下一步骤到删除停用词,比如am、the等都属于停用词,去除完以后将剩余的单词组合成一个列表进行返回。

接下来,针对文本预处理的流程进行具体介绍。

(1) 文本分词

文本分词是预处理过程中必不可少的一个操作,它可以分为两步,第一步是构造词典,第二步是分词算法的操作。其中,词典的构造比较流行的是双数组的trie树,分词算法常见的主要有正向最大匹配、反向最大匹配、双向最大匹配、语言模型方法、最短路径算法等等。

目前文本分词已经有很多比较成熟的算法和工具,在网上可以搜索到很多,本书使用的是NLTK库和jieba库,分别用作英文和中文的分词操作。

(2) 词形归一化

基于英文语法的要求,文档中经常会使用单词的不同形态,比如live、lives(第三人称单数)、living(现在分词),另外也存在大量意义相近的同源词,比如able、unable、disability。如果希望只输入一个词,就能够返回它所有的同源词文档,那么这样的搜索是非常有用的。

词形归一化包括词干提取和词形还原,它们的目的都是为了减少曲折变化的形式,将派生词转化为基本形式。例如:

am, are, is—be

cars, car's, cars'—car

不过,词干提取和词形还原所代表的意义不同,前者通常是一个很粗略的去除单词两端词缀的过程,而后者是指利用词汇表和词形分析去除曲折的词缀,以返回词典中包含的词的过程。

(3) 删除停用词

删除停用词也是比较重要的,主要是因为并不是文本中的每个单词或字符都能够表明文本的特征,比如说“the”、“的”、“你”、“I”、“他”等,这些词应该从文本中清除掉。

点击此处
隐藏目录