擅长:python、mysql、java
<p>胡安给出了正确的答案。我只是用这个过滤德国:</p>
<pre><code># Bounding boxes for geolocations
# Online-Tool to create boxes (c+p as raw CSV): http://boundingbox.klokantech.com/
GEOBOX_WORLD = [-180,-90,180,90]
GEOBOX_GERMANY = [5.0770049095, 47.2982950435, 15.0403900146, 54.9039819757]
stream.filter(locations=GEOBOX_GERMANY)
</code></pre>
<p>这是一个相当粗糙的盒子,包括一些其他国家的部分。如果你想要更细的颗粒,你可以组合多个盒子来填写你需要的位置。</p>
<p>不过,需要注意的是,如果使用geotags进行过滤,则会大大限制tweets的数量。这是来自我的测试数据库的大约500万条Tweets(查询应该返回实际包含地理位置的Tweets的百分比年龄):</p>
<pre><code>> db.tweets.find({coordinates:{$ne:null}}).count() / db.tweets.count()
0.016668392651547598
</code></pre>
<p>因此,在我的1%流样本中,只有1.67%包含地理标签。不过,还有其他方法可以确定用户的位置:
<a href="http://arxiv.org/ftp/arxiv/papers/1403/1403.2345.pdf">http://arxiv.org/ftp/arxiv/papers/1403/1403.2345.pdf</a></p>