|
本帖最后由 I_Like_AI 于 2018-8-30 14:52 编辑
1 简介
这是Kaggle上的Twtter用户数据集,这个数据集被用来训练一个CrowdFlower AI性别预测器。这个项目地址:https://www.crowdflower.com/usin ... -to-predict-gender/。数据集包含20,000行。数据集下载地址:https://www.kaggle.com/crowdflower/twitter-user-gender-classification/。数据集中的性别有三类,男人、女人、品牌。品牌不是具体的某个人,而是一个集体。我们将探索数据集的text列,看男人、女人、品牌的言论有何不同。
2 数据探索2.1 读取数据
- import pandas as pd
- import numpy as np
- import re
- import string
- import matplotlib
- data = pd.read_csv("../input/gender-classifier-DFE-791531.csv",encoding='latin1')
复制代码 2.2 数据清洗
言论会包括许多标点符号,和一些常用的词,它们对分别性别起不到多大作用。所以先对text列进行数据清洗。
- def cleaning(s):
- s = str(s)
- s = s.lower()
- s = re.sub('\s\W',' ',s)
- s = re.sub('\W,\s',' ',s)
- s = re.sub(r'[^\w]', ' ', s)
- s = re.sub("\d+", "", s)
- s = re.sub('\s+',' ',s)
- s = re.sub('[!@#$_]', '', s)
- s = s.replace("co","")
- s = s.replace("https","")
- s = s.replace(",","")
- s = s.replace("[\w*"," ")
- return s
- data['Tweets'] = [cleaning(s) for s in data['text']]
- data['Description'] = [cleaning(s) for s in data['description']]
- from nltk.corpus import stopwords
- stop = set(stopwords.words('english'))
- data['Tweets'] = data['Tweets'].str.lower().str.split()
- data['Tweets'] = data['Tweets'].apply(lambda x : [item for item in x if item not in stop])
复制代码 2.3 查看女性言论词频
- Male = data[data['gender'] == 'male']
- Female = data[data['gender'] == 'female']
- Brand = data[data['gender'] == 'brand']
- Male_Words = pd.Series(' '.join(Male['Tweets'].astype(str)).lower().split(" ")).value_counts()[:20]
- Female_Words = pd.Series(' '.join(Female['Tweets'].astype(str)).lower().split(" ")).value_counts()[:20]
- Brand_words = pd.Series(' '.join(Brand['Tweets'].astype(str)).lower().split(" ")).value_counts()[:10]
- Female_Words.plot(kind='bar',stacked=True, colormap='OrRd')
复制代码
图2.3-1
2.4 查看男性言论词频
- Male_Words.plot(kind='bar',stacked=True, colormap='plasma')
复制代码
图2.4-1
2.5 查看品牌言论词频
- Brand_words.plot(kind='bar',stacked=True, colormap='Paired')
复制代码
图2.5-1
3 结论
从以上分析来看,似乎没什么太大不同,可能是一些u,go,new,one比较常用的词没有过滤掉导致的。有兴趣的小伙伴可以自己下载下来自行探索下。
|
|