twitter - 使用朴素贝叶斯分类来识别 Twitter 用户的性别

标签 twitter machine-learning classification text-mining

我已经成为学校项目的一部分,到目前为止,这个项目很有趣,而且变得更有趣了。我拥有大约 600,000 条推文(每条都包含屏幕名称、地理位置、文本等),我的目标是尝试将每个用户分类为男性或女性。现在使用 Twitter4J,我可以获得用户的全名、好友数量、转发次数等。因此,我想知道将查看用户名和进行文本分析相结合是否是一个可能的答案。我原本想我可以把它做成一个基于规则的分类器,我可以首先查看用户的名字,然后分析他们的文本并尝试得出 M 或 F 的结论。我猜我在使用诸如朴素贝叶斯,因为我没有真正的真值?

对于名字,我会检查某种字典来解释这个名字是男性还是女性。我知道有些情况很难说,但这就是为什么我也会查看他们的推文文本。我还忘了提及;有了这 600,000 条推文,每个用户至少有两条推文可供我使用。

任何有关用户性别分类的想法或意见将不胜感激!我在这方面没有太多经验,我希望学习任何我能掌握的东西。

最佳答案

I'm guessing I would have trouble using something such as naive bayes since I don't have the real truth values?

任何监督学习算法,例如朴素贝叶斯,都需要准备训练集。如果没有某些数据的实际性别,您就无法构建这样的模型。另一方面,如果您推出一些规则库系统(例如基于用户姓名的系统),您可以尝试半监督方法。使用基于规则的系统,您可以为数据创建一些标签,假设您的基于规则的分类器是 RC 并且可以回答“男性”、“女性”、“不知道”,您可以使用 RC 以自然的方式创建数据 X 标签:

X_m = { x in X : RC(x)="Male" }
X_f = { x in X : RC(x)="Female" }

完成后,您可以使用所有数据为监督学习模型创建一个训练集,除了用于创建RC的数据 - 因此在本例中 -用户的姓名(我假设,RC 回答“男性”或“女性”,前提是它完全“确定”)。因此,您将训练一个分类器,它将尝试从所有附加数据(如使用的单词、位置等)中概括性别概念。我们称之为SC。之后,您可以简单地创建一个“复杂”分类器:

C(x) = "Male" iff RC(x)= Male" or 
                  (RC(x)="Do not know" && SC(x)="Male")
       "Female" iff RC(x)= Female" or 
                    (RC(x)="Do not know" && SC(x)="Female")

通过这种方式,您一方面可以以基于规则的方式使用最有值(value)的信息(用户名),同时利用监督学习的力量来处理“困难案例”,而无需掌握“基本事实”第一名。

关于twitter - 使用朴素贝叶斯分类来识别 Twitter 用户的性别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291153/

相关文章:

android - 在 phonegap 应用程序上使用 Twitter 登录

machine-learning - 如何将网络摄像头图像转换为 RGB 深度

machine-learning - 几乎为零目标的神经网络

python - 如何提取/剪切模型分类的部分图像?

python - Keras ImageDataGenerator——作为 Save_Prefix 分类?

python - 朴素贝叶斯 : Imbalanced Test Dataset

performance - MATLAB 中的直方图交集核优化

java - 从 Java 应用程序创建推文

java - 使用 Twitter4j 获取 100 多条 HitTest 门推文

ios - Twitter 屏幕名称在 Parse 中返回 null