非常简单的Twitter名字人口统计

demographer的Python项目详细描述


#人口统计学家从twitter的名字中获取极其简单的人口统计信息,作者:josh carroll<;carroll.carroll.joshk@gmail.com>;,mark dredze<;mdredze@cs.jhu.edu.edu>;,rebecca knowles<;rknowle2@jhu.edu>;
支持:python 2.7.7.7.7.python;作者:josh carroll<;carroll.carroll.josh@gmail.com>;,mark dredze<;mdredze@cs.jhu.jhu.edu.edu>;,rebebecca knowles<;rknowle2+

>;**人口统计学家**:研究主题的人CTS包括人口的地理分布、出生率和死亡率、社会经济状况、年龄和性别分布,以确定对人口增长、结构和发展的影响。(dictionary.com)


demographer是一个python包,它根据名称标识人口统计特征。它是为twitter设计的,在twitter中,它取用户的名字并返回他或她可能的人口统计信息。
许多使用twitter数据的下游应用程序从了解用户信息中获益。基于人口统计学的观点和趋势分析是社会科学许多领域中常见的基石分析。虽然一些社交媒体平台为用户提供了人口统计数据,但Twitter却没有。


有很多*论文提出了使用用户的帖子或关注者进行人口统计识别的方法。这些方法可能非常好,而且可能比只查看许多任务的名称要好。为什么只看名字?通常情况下,用户只有一条tweet,获取更多数据是不可行的。在这些设置中,内容分析是不可行的;一条tweet是不够的。人口统计学家是为这些设置而设计的。即使只有一条tweet,我们也可以做出合理的猜测。
我们在"user"字段中使用"name"字段,而不是"username"字段。这是因为即使是拥有与自己名字完全无关的用户名的Twitter用户,有时也会在"name"字段中使用自己的真名(或名字的某个部分,或类似的名字)。


总的来说,这个工具非常好,可能是完成这项任务的最佳工具(见下面引用的文章)。具体名称取决于。有些名字很容易识别一些人口统计特征,有些名字则不可能。这些名称上的分布按任务变化,因此很难保证数据集之间的准确性。该工具专注于西方名字,因此可能在中文或阿拉伯语名字上做得不好。

是的!我们设计的包具有高度的可扩展性。如果您有新类型的培训数据或完全不同的方法,您应该能够将其添加到包中。你需要将"人口统计学家"分类。


当前版本包括基于美国人口普查数据的性别。你经常可以准确地猜出性别,因为许多名字几乎只用于一种性别。


要了解更多信息,请查看我们的论文:


Rebecca Knowles、Josh Carroll、Mark Dredze。人口学家:非常简单的名字人口统计学。EMNLP自然语言处理与计算社会科学研讨会,2016年。[[pdf](http://aclweb.org/antogology/w16-5614)]



_C. P."gender.c"的数据在这里:
```
demographer/data/namu dict.txt.gz
```
,并在GNU免费文档许可证1.2版下重新分发。


{w16-5614,
作者="Knowles,Rebecca and Carroll,Josh and Dredze,Mark",
标题="人口统计学家:非常简单的姓名人口统计",
书名="EMNLP NLP研讨会d计算社会科学",
year="2016",
publisher="计算语言学协会",
pages="108--113",
location="德克萨斯州奥斯汀",
url="http://aclweb.org/antology/w16-5614"
}
````


/>```
pip install demographer
```
如果您想从头开始构建自己的数据文件和分类器,请运行脚本"get data.sh"




下面是一个如何注释单个tweet的示例。请注意,此示例使用随库分发的示例tweet文件(通过pip安装的用户可以从存储库根目录的"data"目录下载"faketweets.txt"。

>;从人口统计学家导入过程中导入tweet
>;
>;导入json
>;
>;tweet=json.loads(open('data/faketweets.txt').readline())
>;
>;result=process_tweet(tweet)

此命令加载数据以初始化底层人口统计学家。

`result`存储字典对象列表,每个对象对应于一个人口统计学家的输出。这里有一个"result"示例:

>;[{u'gender':[{u'count':1099936,u'prob':0.9977160044772844,u'value':u'f'},{u'count':2518,u'prob':0.002283995522715687,u'value':u'm'}]]

在这个示例中,列表中的第一个字典是gender的输出。它包含概率估计(m)ale和(f)emale。

输入文件包含tweets,每个tweets用json编码,每行一个对象。输出文件包含相同的tweets,其中有一个新的字段"demographics",该字段包含上面的列表。

>;python-m demographer.cli.process\u tweets--input input\u file--output\u file
>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
解析空白和标点的Java分隔符模式?   java JPA多实体管理器工厂   找不到java ClientRegistrationRepository Bean   java将对象数组转换为JPA实体数组?   java log4j到log4j2属性文件配置   java从动态添加的jPanel获取文本   使用Jlink打包的java应用程序找不到属性文件   带有JMH和模式的java OutOfMemory。平均时间   java如何将RestController更改为MVC控制器?   java如何知道文件是表示根还是我的计算机?   Java复制构造函数未按预期工作   java循环多个扫描仪输入,这些输入一起工作,直到一个特定的输入   如何从麦克风获取蜂鸣音音频输入并用java进行处理   如何在Javascript中迭代Java集合   java JPA HIbernate在生成的类中缺少列   java Android Firebase数据库子节点   java如何按优先级进行迭代?   java Android Toast消息显示   Java如何检索浏览器cookie id?   扩展集合泛型类的java泛型类