2013-12-14 21 views
6

這裏是我當前的代碼如何使用python獨自獲取英文推文?

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' 

在這裏,我從獲取所有語言的鳴叫。有沒有辦法限制自己只用英文獲取推文?

+2

哦,天啊!爲什麼使用分號? – inspectorG4dget

+0

這[link](http://stackoverflow.com/questions/18031393/how-to-restrict-the-language-of-results-in-twitter4j-to-english)可能指向正確的方向;最糟糕的情況是,窺探Twitter模塊的來源,看看他們是否暴露了'lang'參數。 –

+0

是不是'OAuth'位不安全發佈在stackoverflow?我不積極,但它看起來像它可能會允許任何人讀這個認證作爲這個問題的海報.. – johannestaas

回答

4

至少有4種方法......我把它們放在簡單的順序中。

  1. 收集推文後,json輸出具有標識語言的鍵/值對。所以你可以使用類似的東西來獲取所有的語言推文,並且只選擇那些來自英文賬號的推文。

    for i in range (0,1000): 
        if data['statuses'][i][u'lang']==u'en': 
         print data['statuses'][i]['text'] 
         print '\n' 
    
  2. 另一種方式來收集只在英文標識的鳴叫,你可以使用可選的「郎」參數從API只有英語(自idenfitied)鳴叫請求。看詳情here。如果您正在使用python-twitter庫,則可以在twitter.py中設置'lang'參數。

  3. 使用語言識別軟件包,如guess-language

  4. 或者如果您想要識別英文文本而不使用自識別的twitter數據(即用英文寫的中文賬號),那麼您必須進行自然語言處理。 One option。這種方法將識別普通英文單詞,然後將文本標記爲英文。