美文网首页
基于文本及用户信息及社交网络的性别分类

基于文本及用户信息及社交网络的性别分类

作者: niracler | 来源:发表于2019-06-28 11:29 被阅读0次

1 背景及目的

本文旨在研究中文微博用户的性别分类问题,即根据微博提供的中文文本信息对注册用户的性别 进行识别。虽然基于微博的性别分类已经有一定研究,但是针对中文的性别分类工作还很缺乏。本文首先 提出分别利用用户名和微博文本构建两个分类器对用户的性别类型进行判别,并对不同的特征(例如:字 特征、词特征等)进行了研究分析;

image.png

2 整体的流程

image.png

3 准备数据集

第一步是准备数据集,包括加载数据集和执行基本预处理,然后把数据集分为训练集和验证集。

3.1 数据来源

niracler的爬虫(代码)

image.png

3.2 数据格式

微博用户名数据

Key Value
user_id 用户ID
nickname 用户昵称;
weibo_num 微博数;
following 关注数;
followers 粉丝数;

微博用户关系网络数据

Key Value
user_id 用户ID
follow_id 他关注的用户ID

微博内容数据

Key Value
user_id 用户ID
weibo_content 存储用户的所有微博
weibo_place 存储微博的发布位置
publish_time 存储微博的发布时间
up_num 存储微博获得的点赞数
retweet_num 存储微博获得的转发数
comment_num 存储微博获得的评论数
publish_tool 存储微博的发布工具

微博用户基础数据

Key Value
user_id 用户ID
base_info 用户基础信息
other_info 用户其他信息

3.3 数据量

当前用户数:142056
当前用户信息数:68942
当前follow关系数:1114676
当前微博文章数:528558
待爬取用户数:883318
待爬取用户信息数:0
待爬取follow关系数:2234432
待爬取微博文章数:316856

3.4 进行初步的数据预处理

image.png

3.5 特征工程

接下来是特征工程,在这一步,原始数据将被转换为特征向量,另外也会根据现有的数据创建新的特征。为了从数据集中选出重要的特征,有以下几种方式:计数向量作为特征, TF-IDF向量作为特征, 单个词语级别TF-IDF, 多个词语级别TF-IDF(N-Gram), 词性级别TF-IDF

3.5.1 计数向量作为特征

计数向量是数据集的矩阵表示,其中每行代表来自语料库的文档,每列表示来自语料库的术语,并且每个单元格表示特定文档中特定术语的频率计数:

3.5.2 TF-IDF介绍

TF-IDF的分数代表了词语在文档和整个语料库中的相对重要性。TF-IDF分数由两部分组成:第一部分是计算标准的词语频率(TF),第二部分是逆文档频率(IDF)。其中计算语料库中文档总数除以含有该词语的文档数量,然后再取对数就是逆文档频率。

TF(t)=(该词语在文档出现的次数)/(文档中词语的总数)
IDF(t)= log_e(文档总数/出现该词语的文档总数)
TF-IDF向量可以由不同级别的分词产生(单个词语,词性,多个词(n-grams))

  • 词语级别TF-IDF:矩阵代表了每个词语在不同文档中的TF-IDF分数。
  • N-gram级别TF-IDF: N-grams是多个词语在一起的组合,这个矩阵代表了N-grams的TF-IDF分数。
  • 词性级别TF-IDF:矩阵代表了语料中多个词性的TF-IDF分数。

4 模型训练

最后一步是建模,利用标注数据集训练机器学习模型。

4.1 朴素贝叶斯

利用sklearn框架,在不同的特征下实现朴素贝叶斯模型。朴素贝叶斯是一种基于贝叶斯定理的分类技术,并且假设预测变量是独立的。朴素贝叶斯分类器假设一个类别中的特定特征与其它存在的特征没有任何关系。

image.png

4.2 线性分类器(Logistic Regression)

实现一个线性分类器(Logistic Regression):Logistic回归通过使用logistic / sigmoid函数估计概率来度量类别因变量与一个或多个独立变量之间的关系。

image.png

4.3 支持向量机模型

支持向量机(SVM)是监督学习算法的一种,它可以用来做分类或回归。该模型提取了分离两个类的最佳超平面或线。

image.png

4.4 Bagging Model

实现一个随机森林模型:随机森林是一种集成模型,更准确地说是Bagging model。它是基于树模型家族的一部分
[图片上传失败...(image-afdd34-1561692288187)]

4.5 神经网络

神经网络被设计成与生物神经元和神经系统类似的数学模型,这些模型用于发现被标注数据中存在的复杂模式和关系。一个浅层神经网络主要包含三层神经元-输入层、隐藏层、输出层。

4.5.1 神经网络的结构


Layer (type) Output Shape Param #

dense_1 (Dense) (None, 2500) 12502500


dense_2 (Dense) (None, 1250) 3126250


dense_3 (Dense) (None, 500) 625500


dense_4 (Dense) (None, 100) 50100


dense_5 (Dense) (None, 2) 202

Total params: 16,304,552
Trainable params: 16,304,552
Non-trainable params: 0


4.5.2 神经网络的结果

Screenshot_20190628_110903.png

4.6 各种方法的结果对比

image.png

5 待改进的地方

  1. 爬虫写的一点都不优雅

  2. 跑模型的时间实在太仓促了

  3. 应当尝试一下词嵌入模型

  4. 没有整理好代码以及PPT,有点乱

  5. 没有用上boosting算法

  6. 没有用上像是粉丝数这样的数据

  7. 中间结果应该存起来

6 参考文章

  • 中文微博用户性别分类方法研究
  • figure of imshow() is too small
  • 手把手教你在Python中实现文本分类(附代码、数据集)
  • Scrapy 使用写死的cookie 来爬需要登录的页面
  • 新浪微博爬虫,用python爬取新浪微博数据
  • 分布式网络数据抓取系统设计与实现
  • 使用 Docker Swarm 搭建分布式爬虫集群
  • 2019最新AI 自然语言处理之深度机器学习顶级项目实战课程
  • scikit-learn SVM.SVC() is extremely slow

相关文章

  • 基于文本及用户信息及社交网络的性别分类

    1 背景及目的 本文旨在研究中文微博用户的性别分类问题,即根据微博提供的中文文本信息对注册用户的性别 进行识别。虽...

  • 第六天 实现Logistic回归

    数据集 | 社交网络 该数据集包含了社交网络中用户的信息。这些信息涉及用户ID,性别,年龄以及预估薪资。一家汽车公...

  • 网易云音乐的思考

    网易云音乐的社交属性分析 网易音乐捆绑音乐社交,提高用户的粘性,社交更多是基于音乐及周边的弱社交属性(采取关注及粉...

  • 用户需求研究步骤解析-《匹配度》中相关内容笔记

    用户需求研究大体上按照四个方面进行信息归纳和整理:用户(目标用户的分类及特征),行业(竞争产品的确认及产品的基本情...

  • 卷积神经网络CNN的文本分类原理和实战

    基于卷积神经网络CNN的文本分类原理和实战 前言 本文介绍了CNN在NLP中的应用:文本分类。 文本分类:是自然语...

  • [R - ml]聚类

    社交网络用户画像 美国的中学生在社交网站上的信息聚类 性别,年龄,有多少个朋友个人描述的内容谈论内容:足球、游泳、...

  • 用户及用户组管理

    Ubuntu用户及用户组管理 查看信息 创建用户及组 删除用户及组 添加用户到组

  • 基于内容的推荐算法

    1.产生背景 基于内容的推荐算法是基于标的物的相关信息、用户信息及用户对标的物的操作行为来构建推荐算法模型,为...

  • 文本分类

    文本分类的一般流程: 预处理 文本表示及特征选择 构造分类器 分类 文本分类的应用 垃圾邮件的判定:是否为垃圾邮件...

  • 从社交玩法的本质看社交电商未来的发展趋势

    社交玩法,也就是用户分享产品信息到各个社交场景,在此过程中每个用户在作为消费者的同时也作为信息传播者及流量中心,实...

网友评论

      本文标题:基于文本及用户信息及社交网络的性别分类

      本文链接:https://www.haomeiwen.com/subject/ptrscctx.html