Как искать предложение в твитах - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь собрать набор данных из учетных записей Twitter, которые опубликовали обновление статуса в виде выписки о диагнозе, такой как «У меня был диагностирован Х сегодня», где Х будет представлять собой либо депрессию.

Я был в состоянии использовать библиотеку TwitterSearch, но она ищет только ключевое слово, а не полное предложение.

    from TwitterSearch import *
    try:
        tso = TwitterSearchOrder() # create a TwitterSearchOrder object
        tso.set_keywords(['depression', 'diagnosed']) # let's define all words we would like to have a look for
        tso.set_language('en') # we want to see English tweets only
        tso.set_include_entities(False) # and don't give us all those entity information
    ts = TwitterSearch(
            consumer_key = 'x',
            consumer_secret = 'y',
            access_token = 'z',
            access_token_secret = 't'
 )
    print( tweet['user']['screen_name'], tweet['text'] )

Однако я хотел бы использовать регулярное выражение для получения твитов, соответствующих предложению.

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете искать полные предложения - не только ключевые слова - с помощью set_keywords

from TwitterSearch import *
try:
    tso = TwitterSearchOrder() # create a TwitterSearchOrder object
    tso.set_keywords(['I was diagnosed with depression today'])
    tso.set_language('en') # we want to see English tweets only
    tso.set_include_entities(False)

    ts = TwitterSearch(
        consumer_key = 'c',
        consumer_secret = 's',
        access_token = 'at',
        access_token_secret = 'ats'
     )

     # this is where the fun actually starts :)
    for tweet in ts.search_tweets_iterable(tso):
        print( '@%s tweeted: %s' % ( tweet['user']['screen_name'], tweet['text'] ) )

except TwitterSearchException as e: # take care of all those ugly errors if there are some
    print(e)

Таким образом, нет необходимости фильтровать результат с помощью регулярного выражения.

...