2013-12-14 16 views
6

Ecco il mio codice correntecome ottenere da soli i tweet inglesi usando 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' 

Ecco, vado a prendere i tweet da tutte le lingue. C'è un modo per limitarmi a recuperare i tweet solo in inglese?

+2

oh Dio! Perché i punti e virgola? – inspectorG4dget

+0

Questo [collegamento] (http://stackoverflow.com/questions/18031393/how-to-restrict-the-language-of-results-in-twitter4j-to-english) potrebbe indicare la giusta direzione; Nella peggiore delle ipotesi, cerca nella fonte del modulo Twitter per vedere se espongono il parametro 'lang'. –

+0

Il bit 'OAuth' non è sicuro da pubblicare su stackoverflow? Non sono positivo, ma sembra che possa permettere a chiunque stia leggendo questo di autenticarsi come poster di questa domanda .. – johannestaas

risposta

4

Ci sono almeno 4 modi ... li ho messi nell'ordine della semplicità.

  1. Dopo aver raccolto i tweet, l'output di JSON ha una coppia chiave/valore che identifica la lingua. Quindi puoi usare qualcosa di simile per prendere tutti i tweet della lingua e selezionare solo quelli che provengono da account inglesi.

    for i in range (0,1000): 
        if data['statuses'][i][u'lang']==u'en': 
         print data['statuses'][i]['text'] 
         print '\n' 
    
  2. Un altro modo per raccogliere solo i tweets che vengono identificati in inglese, è possibile utilizzare il parametro opzionale 'lang' di chiedere l'API solo inglese (auto-idenfitied) tweets. Vedi i dettagli here. Se si utilizza la libreria python-twitter, è possibile impostare il parametro 'lang' in twitter.py.

  3. Utilizzare un pacchetto di riconoscimento della lingua come guess-language.

  4. Oppure, se si desidera riconoscere il testo in inglese senza utilizzare i dati di Twitter identificati automaticamente (ad esempio un account cinese che sta scrivendo in inglese), è necessario eseguire Natural Language Processing. One option. Questo metodo riconoscerà le parole inglesi comuni e quindi contrassegnerà il testo come inglese.

Problemi correlati