Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python单独获取英语推文?_Python_Twitter_Nltk - Fatal编程技术网

如何使用python单独获取英语推文?

如何使用python单独获取英语推文?,python,twitter,nltk,Python,Twitter,Nltk,这是我目前的代码 from twitter import * t = Twitter(auth=OAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)) t.statuses.home_timeline() query=raw_input("enter the query \n") data = t.search.tweets(q=query) for

这是我目前的代码

from twitter import *

t = Twitter(auth=OAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, 
        ACCESS_TOKEN, ACCESS_TOKEN_SECRET))

t.statuses.home_timeline()
query=raw_input("enter the query \n")
data = t.search.tweets(q=query)

for i in range (0,1000):    
    print data['statuses'][i]['text']
    print '\n'

在这里,我从所有语言中获取推文。有没有办法限制自己只能用英语发推特?

至少有4种方法。。。我把它们按简单的顺序排列

  • 收集tweet后,json输出有一个标识语言的键/值对。因此,您可以使用类似的方法获取所有语言推文,并仅选择来自英语帐户的推文

    for i in range (0,1000):
       if data['statuses'][i][u'lang']==u'en':
          print data['statuses'][i]['text']
          print '\n'
    
  • 另一种只收集以英语标识的tweet的方法是,您可以使用可选的“lang”参数从API only English(自我识别)tweet请求。见详情。如果正在使用库,则可以在中设置“lang”参数

  • 使用语言识别软件包,如

  • 或者,如果您想在不使用自识别twitter数据的情况下识别英文文本(即使用英文编写的中文帐户),则必须进行自然语言处理。此方法将识别常见的英语单词,然后将文本标记为英语


  • 天哪!为什么用分号?这可能指向正确的方向;最坏的情况是,查看Twitter模块的源代码,看看它们是否公开了
    lang
    参数。在stackoverflow上发布
    OAuth
    不是有点不安全吗?我不是肯定的,但它看起来可能允许任何阅读此文章的人验证为此问题的海报johannestaas,谢谢你提供的信息,我真的忘记了。请禁用你的密钥并获取新密钥。我们可以删除编辑,但如果你想对任何事情感到安全,那就太晚了。