 |
|
captainhcg
V2EX member #67081, joined on 2014-07-05 19:04:07 +08:00
|
captainhcg's recent replies
另外一点很重要,推特是中文的还是英文的。中文的用 in 就可以(分词先不讨论),英文务必用正则的 \b (否则java和javascript就会混淆)。这一题推荐用正则,但我不认为在这里用正则和用all有本质区别。
你先看看这样行不行。可能有语法错误,没测试
with file("largefile") as f:
....topic_items_list = [t.split() for t in topics] # 每个topic可能有多个词组成
....for line in f:
........tweet_time = line.split(',',3)[2].split()[0] # 微博发布时间
........tweet = line.split(',',3)[-1] # 微博内容
........for topic_items in topic_items_list:
............if all(item in tweet for item in topic_items):
................pass # do sth
这个排版有问题,看不到缩进。建议你把所有缩进的空格都换成"."
如果我没猜错你用了三层for循环,100,000,000 * 1500 * n(n是啥我还没看懂)。至少在我的工作里极少用到>=3的for循环,用到了基本就是代码写得有问题了。
你把代码重排个版我再看看