04.10 情感分析之词干提取以及停用词的移除(二)

这篇文章主要介绍如何将文本转换为特征向量前的一些准备工作,主要内容包括:

1、清洗文本数据

2、标记文档

3、词袋模型

一、清洗文本数据

清洗文本需要将文本中所包含的一些不必要的字符删除。

1、删除不必要的字符

print(data["review"][0][-50:])
is seven.

Title (Brazil): Not Available

发现评论中含有一些HTML标记符、标点符号、以及其他的非字母符号。HTML标记符在对于我们对评论做情感分析的时候没有影响,至于标点符号可能会影响句子的语义,为了简化处理我们将标点符号进行删除,保留表情符号(如":)"),因为表情符号对于电影评论情感的分析很有帮助。下面,我们通过python的正则表达式来删除这些不必要的字符。

python的正则表达式提供了一种字符串搜索特定字符串的方便有效方法,正则表达式也要很多的技巧和方法,如果对正则表达式有兴趣的话可以自己去了解一下。在这里我们只是简单的使用一下,所以对正则表达式不会有太过详细的介绍。这里介绍一下三个关于正则表达式的教程

Google开发者:https://developers.google.cn/edu/python/regular-expressions

re模块官方文档:https://docs.python.org/3/library/re.html

菜鸟教程:http://www.runoob.com/python/python-reg-expressions.html

情感分析之词干提取以及停用词的移除(二)

2、标记文档

对于英文文档我们可以利用其天然的空格作为单词的分隔符,如果是中文的时候,可以利用一些分词库如jieba分词。在句子中,我们可能会遇见先"runners"、"run"、"running"单词不同的形式,所以我们需要通过词干提取(word stemming)来提取单词原形。最初的词干提取算法是由Martin F. Porter在1979年提出的,被称为porter stemming算法。我们可以通过安装python的自然语言工具包NLTK,官网安装链接:http://www.nltk.org/install.html,在NLTK中已经是实现了Porter Stemming算法,还有实现了比它更高级的Snowball stemmer和Lancaster stemmer与porter stemming相比,它们更加的提取速度更快。可以通过pip命令进行安装

pip install nltk

情感分析之词干提取以及停用词的移除(二)

3、停用词的移除

停用词大致可以分为两类,一类是功能词,这些功能词非常普遍,与其他的词相比,功能词没有什么实际的含义,比如"the"、"is"、"at"、"which"等。还有一类是词汇词,比如"want"等。停用词对于电影评论的情绪分类没有任何意义,所以我们需要将一些停用词进行删除。通过nltk.download函数获取NLTK提供的停用词,并使用这些停用词来移除电影评论中的停用词。NLTK库提供的停用词,一共有179个,下面给出部分的停用词

情感分析之词干提取以及停用词的移除(二)

情感分析之词干提取以及停用词的移除(二)


分享到:


相關文章: