Python 从Twitter数据中获取词频(按日期)

Python 从Twitter数据中获取词频(按日期),python,twitter,mapreduce,nlp,Python,Twitter,Mapreduce,Nlp,我有我过滤过的实时推特流数据。看起来是这样的: 2017年01月26日印度RT@bnowalk:我希望执政的民主党人有南达科他州国家公园社交媒体实习生那样的勇气 2017-01-26印度我没有非侵入性的 2017-01-27印度从零到分布式数据存储 2017年01月27日印度梅赛德斯-奔驰Unimog–通过@myvan_com实现的全能 2017-01-27印度RT@TonewCustomer:有兴趣指导新来者或难民艺术家吗?联系@NANToronto@torontarts@TOArtsFdn#

我有我过滤过的实时推特流数据。看起来是这样的:

2017年01月26日印度RT@bnowalk:我希望执政的民主党人有南达科他州国家公园社交媒体实习生那样的勇气

2017-01-26印度我没有非侵入性的

2017-01-27印度从零到分布式数据存储

2017年01月27日印度梅赛德斯-奔驰Unimog–通过@myvan_com实现的全能

2017-01-27印度RT@TonewCustomer:有兴趣指导新来者或难民艺术家吗?联系@NANToronto@torontarts@TOArtsFdn#cdnimm

2017-01-28印度我的女王,我的环球小姐2016。马克辛女王,祝你好运2016年密苏里大学菲律宾大学

2017-01-28印度2人跟着我,1人不跟着我//自动检查

2017-01-28印度多重性伴侣

我希望我的输出如下所示:

2017-01-27 2

2017-01-28 3

2017-01-26 3

这是我到现在为止写的:

total = 0

with open('pp.txt') as f:
    for line in f:
        finded = line.find('india')
        if finded != -1 and finded != 0:
            total += 1

print (total)
我不知道如何从这里得到“印度”这个词在特定日期的频率


任何帮助都将不胜感激。谢谢。

您需要一种按日期存储这些的方法,所以我们需要一些容器。我打算用字典

date_dict = dict()

with open(with open('pp.txt') as f:
    for line in f:
        date = line[0:10]
        india_count = line.lower().count('india'):
        if date in date_dict:
            date_dict[date] += india_count
        else:
            date_dict[date] = india_count
这样就可以将日期和频率输入到数据结构中。但是要想把它弄出来,你需要根据你想要的重新组织一下

因此,让我们将数据转换为元组列表,然后按日期排序:

首先将日期和频率放入一个列表中——我们将为字典中的每个键(日期)创建一个元组列表。该值将是单词india的频率

my_dates = [(k,v) for k,v in date_dict.items()]
然后按日期排序-这里我们按每个元组中的第一个(第0个)值排序

my_dates.sort(key=lambda tup: tup[0])