男女成绩判定python,词频统计:用Python挖掘《时代周刊》的男女评价

原标题:词频统计:用Python挖掘《时代周刊》的男女评价

报纸对于男性和女性的描述会有差别吗?快速回答这一问题的一个方式就是直接对比描述男女的语句中的词汇,本节将提供一个使用Python进行这种分析的案例。

我们选取了纽约时报 2013.02.27-2013.03.06 一周内的新闻,从 LexisNexis 数据库下载了除了修正和讣告外可获得的全部文章,总计 1379 篇,平均每天的新闻量在 200 篇左右。

在分析之前,我们利用 Python 对数据进行了如下预处理:移除元数据、将每篇文章的文本存储在单独的文件中,再将所有的文件存储在“ articles ”文件夹中。虽然这种处理方式不是最有效的,但是文本数据常以这种形式出现,所以有必要进行这一操作以便于后续处理方法的讲解。

首先要加载几个模块,而需要下载的工具包只有文本数据处理和分析的强大套件 NLTK 。在本例中,只使用 NLTK 函数将文本分为句子,此外,glob 是检索字典内容的重要模块;string.punctuation 则是一个包含所有ASCII标点符号的字符串,也就是常见的 !"#$%&'()*+,-/:;<=>?@[]^_{|}~. 。

5c1896b8f339e6d02cf51c0ffa3f5bc5.png

本例分析的核心目的是:识别某段言论谈论的是男性、女性、男性和女性或者都不是。

作为初始判断,如果一句话出现类似“he”、“dad”或者“Mr.”的词汇,就认为该语句描述的是男性;如果一句话出现类似“she”、“mother”或者“Ms.”的词汇,就认为该语句描述的是女性。

这种分类方式虽然不是最精确的,但是出于文本分析的特性,用该方法进行分类十分有效。为了使这些基础词汇的选定更具科学性,我们参考了 Danielle Sucher 在其浏览器插件 Jailbreak the Patriarchy 提供的词汇列表。

9782ee88d03278e20e73e456ca5226af.png

可以看到,在这里将分类词汇保存为集合(set)而不是列表,这是因为我们后续需要查看句子中的词汇是否与这些分类词汇重叠,Python会返回集合的交集。

接着我构造了下面的函数,用于定义语句性别分类。这个函数的输入为句子词汇的集合,它能够根据句子中目标词汇出现的频数初步判断句子的类别。

aace056053ff8dddcd29f9b7718146fd.png

本例有意忽略了对专有名词的判断,特别是人名(很难讲 'Boehner' 就一定是一个男性的名字),所以需要一个识别出这类词的方式,以把它们提取出来。采用的方法是:记录一个词汇首字母大写和非大写的次数。当我们拥有的文本数据足够多,且不考虑句子首字母一定为大写的情况时,以这种方法来识别专有名词的效果还是相当不错的。

0504957ccf5d6b0857d11a820a1b1211.png

可以看到,上述函数利用了 .get( ) 来检索专有名词字典存储的值,这是为了避免当字典里不存在相应键值时返回错误信息。

propernouns[wordlower].get(case,0) :当大小写同时存在时,返回 word_lower 的值,否则,返回0。

只有当词汇不存在时,except 语句才会被执行。

本例会同时使用两个计数器跟踪记录每句话的每个词汇,这一函数没有任何输出,但是改变了wordfreq、 wordcounter 和 sentence_counter 字典。返回搜狐,查看更多

未完待续:课程内容较多,请复制链接通过电脑学习,获得最佳学习效果。 http://datacademy.io/lesson/111

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值