我有一个小的python程序从twitter流中提取关键字的推文
想要将关键字与收到的tweets链接。我可以在python中有效地做到这一点
我可能有200多把钥匙
例如:
keywords =“key1,key2,key3”
收到4条推文,我想直接链接传入的文本和密钥..
如下
1)tweets msgs key1 tweets tweets text - > KEY1
2)tweets msgs key2 tweets tweets text - > KEY2
3)tweets msgs key3 tweets tweets text - > KEY3
4)tweets msgs key1 tweets tweets text - > key1
更新
目前正在使用 for循环来迭代密钥列表并使用查找来查看密钥是否存在于推文文本中。但我觉得应该有更好更有效的方式在python中执行此操作。
for title in title_list:
if tweet_lower.find(title) != -1:
setattr(status, 'title',title)
break
答案 0 :(得分:0)
使用Python's collection module中的defaultdict
。
In [1]: from collections import defaultdict
In [2]: tweet_keyword_storage = defaultdict(list)
In [3]: tweet_keyword_storage['key1'].append('tweets msgs key1 tweets tweets text')
In [4]: tweet_keyword_storage['key2'].append('tweets msgs key2 tweets tweets text')
In [5]: tweet_keyword_storage['key3'].append('tweets msgs key3 tweets tweets text')
In [6]: tweet_keyword_storage['key1'].append('tweets msgs key1 tweets tweets text')
In [7]: print tweet_keyword_storage
defaultdict(<type 'list'>, {'key3': ['tweets msgs key3 tweets tweets text'], 'key2': ['tweets msgs key2 tweets tweets text'], 'key1': ['tweets msgs key1 tweets tweets text', 'tweets msgs key1 tweets tweets text']})