围绕以twitter为代表英语文本进行分析.doc
《围绕以twitter为代表英语文本进行分析.doc》由会员分享,可在线阅读,更多相关《围绕以twitter为代表英语文本进行分析.doc(10页珍藏版)》请在三一文库上搜索。
1、围绕以twitter为代表英语文本进行分析编者按:自然语言处理(NLP)是数据科学研究的一个温床,它最常见的应用之一是情感分析。从民意调查到指定整个营销策略,现在,这种技术已经完全重塑了企业的工作方式,这也是为什么每个数据科学家都要对它有所了解的原因之一。本文将围绕以twitter为代表英语文本进行分析,在文中,我们会逐步介绍常规情感分析所需的一系列步骤:从数据预处理开始,到探索文本数据,再到结合上下文产生理解,然后从数据中提取数字特征,并最终用这些特征集来训练模型,使它具备识别情感的能力。理解任务目标实践是检验真理的唯一标准,它同样也是学习的一个好方法。为了让读者更贴近教程,这里我们选用An
2、alytics Vidhya上的一个竞赛任务:Twitter情感分析。里面包含下文使用的数据集。在开始任务前,我们先来读读任务描述,理解任务目标:这项任务的目的是检测推文中的仇恨言论。为了简单起见,这里我们只把包含种族主义和性别歧视的推文视为仇恨言论,因此,任务目标是从给定推文中分类出包含种族主义、性别歧视观点的推文。任务提供的训练样本有其相应的分类标签,其中标签“1”表示推文包含种族主义/性别歧视观点,标签“0”则是不包含。我们的目标是用训练集训练模型,让它在测试集上准确预测推文标签。推文预处理和清洗当我们进行探索时,电脑中的新问题就像现实生活中的陌生环境,我们对它一无所知,但它却处处包含我
3、们所需的信息。上图是两个办公室,一个凌乱不堪,一个整洁有序,你觉得自己在哪儿能更快找到文档呢?这不是我们自己的房间,所以毫无疑问的,第二个。同理,如果我们的数据能以结构化的格式排列,模型也能更容易从中找到正确信息。数据预处理是我们面对任何问题时必不可少的一步,在这个任务中,我们要做的是清除和推文情感不怎么相关的各种噪声,比如标点符号、特殊字符、数字和表示语气的词。这些内容在文本上下文中没有太大权重,再加上我们之后要提取数字特征,去除这些内容有助于之后获得质量更高的特征空间。首先,我们检查数据,并加载必要的库:import reimport pandas as pdimport numpy as
4、 npimport matplotlib.pyplot as pltimport seaborn as snsimportstringimport nltkimport warningswarnings.filterwarnings(ignore, category=DeprecationWarning)%matplotlib inlinetrain = pd.read_csv(train_E6oV3lV.csv)test = pd.read_csv(test_tweets_anuFYb8.csv)记得检查一下训练集的前几行,看看有没有问题:train.head()可以看到,数据一共有三列:i
5、d、标签和推文文本。标签是二进制目标变量,而推文包含我们将清洗和预处理的文字。以下是数据预处理的几个要求:为了照顾隐私,数据集把用户名一致标记为user,这个句柄对推文内容毫无用处,需要删除。文中的标点符号、特殊字符和数字也没有多大含义,也起不到区分作用,需要删除。对于情感分析,一些非常短的词也没有实际价值,比如“pdx”“his”“all”,需要删除。一旦我们执行了上述三个步骤,我们就可以将每个推文分成单个单词或词例,这是任何NLP任务中必须的步骤。第4条推文中出现了一个“love”,考虑到其他推文中可能会出现类似的“loves”“loving”“lovable”,我们可以把它们都缩成词根“
6、love”,减少数据中唯一单词的总数,同时也不会丢失大量信息。1. 删除推文句柄user如上所述,推文包含许多Twitter句柄(user),我们需要删掉它们。为了方便起见,这个步骤可以结合训练集和测试集,把两边的句柄同时删掉,防止之后进行重复操作。combi = train.append(test, ignore_index=True)下面是我们定义的函数,用于删除推文中不需要的内容。它有两个参数,一个是原始文本字符串,另一个是要从字符串中删去的内容:def remove_pattern(input_txt, pattern):r = re.findall(pattern, input_tx
7、t)for i in r:input_txt = re.sub(i, , input_txt)return input_txt接着,我们可以创建一个新的列tidy_tweet,用它存储清洗后的推文:#remove twitter handles(user)combi tidy_tweet = np.vectorize(remove_pattern)(combi tweet ,“ w *” )2. 删除标点符号、数字和特殊字符之前提到了,标点符号、数字和特殊字符也没有多大用处,所以在删除句柄时,我们可以一并把它们处理了:# remove special characters, w for w i
8、n x.split() if len(w)3)处理完毕后,我们需要回过头来重新检查数据集的前几行,看看有没有错误。combi.head()如上图所示,我们可以明显看出原始推文和tidy_tweet之间的区别,后者删除了大量不必要的噪声,只保留重要单词。4. 分词现在,我们已经对数据完成清洗,接下来就是在本文中标记出单独的单词或词例,所谓分词就是把文本切分成一个个单独的词的过程。tokenized_tweet = combitidy_tweet.apply(lambda x: x.split()tokenized_tweet.head()5. 提取词干词干是词的一部分,由词根和词缀构成,放在我们
9、的任务中,就是把英文单词的后缀“ing”“ly”“es”“s”等剥离。from nltk.stem.porter import *stemmer = PorterStemmer()tokenized_tweet = tokenized_tweet.apply(lambda x: stemmer.stem(i) for i in x) # stemmingtokenized_tweet.head()推文中单词的可视化理解到目前为止,我们已经完成对数据的预处理,之后就是探索这些数据,从中获得重要理解。在开始探索前,结合任务目标,我们可能会产生一些新的问题:整个数据集中出现频率最高的单词是哪个?仇恨
10、言论和非仇恨言论推文中,出现频率最高的单词又分别是哪个?一条推文中有几个词例?哪种趋势和数据集本身有关?哪种趋势和这两种言论有关?它们和相应情感相符吗?1. 找出推文中的常用词:WordCloud为了查看单体在整个训练集中的分布情况,一种可行的方法是绘制WordCloud图,这是一种可视化形式,能把出现频率较高的词放大,把出现频率最高的较低的词缩小。all_words = .join(text for text in combitidy_tweet)from wordcloud importWordCloudwordcloud = WordCloud(width=800, height=500
11、, random_state=21, max_font_size=110).generate(all_words)plt.figure(figsize=(10, 7)plt.imshow(wordcloud, interpolation=bilinear)plt.axis(off)plt.show()如上图所示,大多数单词是积极的或中立的,其中“happy”“love”最为常见,从它们身上我们找不到和仇恨言论有关的内容。所以接下来,我们会为标签为“1”和“0”的两类数据单独绘制WordCloud,并以此查看词频分布情况。2. 非种族主义/性别歧视推文中的单词normal_words = .jo
12、in(text for text in combitidy_tweetcombilabel = 0)wordcloud = WordCloud(width=800, height=500, random_state=21, max_font_size=110).generate(normal_words)plt.figure(figsize=(10, 7)plt.imshow(wordcloud, interpolation=bilinear)plt.axis(off)plt.show()和之前一样,大多数词是积极的或中立的,其中“happy”“smile”“love”最常见。3. 种族主义/
13、性别歧视推文的单词negative_words = .join(text for text in combitidy_tweetcombilabel = 1)wordcloud = WordCloud(width=800, height=500,random_state=21, max_font_size=110).generate(negative_words)plt.figure(figsize=(10, 7)plt.imshow(wordcloud, interpolation=bilinear)plt.axis(off)plt.show()我们可以清楚地看到,大多数词语都有负面含义。这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 围绕 twitter 代表 英语 文本 进行 分析
链接地址:https://www.31doc.com/p-3407243.html