点击上方
Datartisan数据工匠
可以订阅哦!
作者简介:Nitin Panwar,英特尔数据科学家,研究领域主要为数据科学、机器学习和数据分析。
文章地址:http://nitin-panwar.github.io/Text-prepration-before-Sentiment-analysis/ 有删改
在分析文本数据中的情感之前,有必要对文本进行预处理,本文介绍并梳理了需要执行的文本清洗与预处理步骤:
一、 去除数字
数字在文本分析中一般没有意义,所以在进一步分析前需要去除它们。
二、去除链接地址
链接地址显然也需要在进一步分析前被去掉,可以使用正则表达式达到这个目的。
三、去除停用词
停用词是在每个句子中都很常见,但对分析没有意义的词。比如英语中的“is”、“but”、“shall”、“by”,汉语中的“的”、“是”、“但是”等。语料中的这些词可以通过匹配文本处理程序包中的停用词列表来去除。
四、词干化
词干化,指的是将单词的派生形式缩减为其词干的过程,已经有许多词干化的方法。词干化主要使用在英文中,如“programming”、“programmer”、“programmed” 、“programmable”等词可以词干化为“program”,目的是将含义相同、形式不同的词归并,方便词频统计。
五、后缀丢弃算法
后缀丢弃算法(Suffix-dropping algorithms)可以丢弃一个单词的后缀部分。如前文提到的“programming”、“programmer”、“programmed”、“programmable”等词可以词干化为其词根“program”,但像“rescuing”、“rescue”、“rescued”这样的词则被词干化为“rescu”,其并非一个单词或词根,而是将后缀丢弃后得到的形式。
六、词形还原算法
词形还原算法(Lemmatisation algorithms)将语料中的每个词还原为其原形,或者能表达完整语义的一般形式,如“better”还原为“good”、“running”还原为“walk”等。该算法的实现基于对文本的理解、词性标注和对应语言的词库等。
七、n-gram分析
n-gram分析指的是将字符串按一定最小单元分割为长度为n的连续子串,保留最有意义的子串,以方便后续分析。如当n=1时(称为unigram),以单个字母为最小单元,单词“flood”可以被分割为“f”、“l”、“o”、“o”、“d”。对于更大的n,比如n=5,在单词“flooding”的五元连续子串中,显然需要保留“flood”。不过在n=4时,“flooding”中的“ding”也可能被判断为一个有意义的词。对于一个完整的句子而言,常用单词作为最小分割单元。
八、去除标点符号
标点符号显然对文本分析没有帮助,因此需要去除。
九、去除空白字符
可以使用正则表达式去掉词前后的空白字符,只保留词本身。
十、检查特殊字符
在进行了去除空白字符、数字和标点符号等操作后,一些形式特殊的链接地址等额外内容可能仍然未被去除,需要对处理后的语料再进行一次检查,并用正则表达式去除它们。
更多课程和文章尽在微信号:
「datartisan数据工匠」