Python nltk Brown最有新闻价值并且是最浪漫的日子

来源:互联网 发布:64高清网络电视直播 编辑:程序博客网 时间:2024/05/01 09:01

思考题:
处理布朗语料库的新闻和言情文体,找出一周中最有新闻价值并且是最浪漫的日子。定义一个变量days 包含星期的链表如[‘Monday’, …]。然后使用cfd.tabulate(samples=days)为这些词的计数制表。接下来用绘图替代制表尝试同样的事情。你可以在额外的参数conditions=[‘Monday’, …]的帮助下控制星期输出的顺序。
代码如下:

days=['Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday', 'Sunday']cfd = nltk.ConditionalFreqDist((c, d) for c in ['news','romance'] for d in brown.words(categories=c))cfd.tabulate(samples=days)cfd.plot(samples=days)# 以一定比例取日子的新闻价值和浪漫性属性作为综合评价指标import matplotlib.pyplot as pltidays = [1,2,3,4,5,6,7]#代表星期一到星期日lr = []for rr in range(0,10,1):    r = rr/10;          # 默认以0.1为步长    res =[(r)*cfd['news'][d]+(1-r)*cfd['romance'][d] for d in days ]#    plt.plot(idays, res)    lr.append(res.index(max(res)))else:    print (lr)    plt.show()

结果:

[0, 0, 0, 0, 0, 0, 6, 6, 6, 6]

这里写图片描述

分析:
由图和数据可以看出,星期一和星期天是结果的两个候选解:若r<=0.5即更侧重新闻价值时,答案为星期一;若r>0.5即更侧重浪漫性时,答案为星期天。

1 0
原创粉丝点击