问题描述
我开始通过流媒体 API 提取推文。但是,我注意到有些推文不包含我在文本中定义的关键词,但是,也有一些推文是例如对包含此类关键字的推文的回复。
如何确保只考虑文本中包含该词的推文?
非常感谢您的帮助!
#Load packages and define parameters
import tweepy
key_words = ["xx"]
class TwitterStreamer():
def __init__(self):
pass
def stream_tweets(self,twitter_data_title,key_words):
listener = StreamListener(twitter_data_title)
auth = tweepy.OAuthHandler(api_key,api_secret_key)
auth.set_access_token(access_token,access_secret_token)
stream = tweepy.Stream(auth,listener)
stream.filter(track=key_words)
class StreamListener(tweepy.StreamListener):
def __init__(self,twitter_data_title):
self.fetched_tweets_filename = twitter_data_title
def on_data(self,data):
try:
print(data)
with open(self.fetched_tweets_filename,'a') as tf:
tf.write(data)
return True
except BaseException as e:
print("Error on_data %s" % str(e))
return True
def on_exception(self,exception):
print('exception',exception)
stream_tweets(twitter_data_title,key_words)
def on_error(self,status):
print(status)
def stream_tweets(twitter_data_title,key_words):
listener = StreamListener(twitter_data_title)
auth = tweepy.OAuthHandler(api_key,api_secret_key)
auth.set_access_token(access_token,access_secret_token)
stream = tweepy.Stream(auth,listener)
stream.filter(track=key_words)
if __name__ == '__main__':
twitter_streamer = TwitterStreamer()
twitter_streamer.stream_tweets(twitter_data_title,key_words)
解决方法
推文的文本和一些实体字段被视为匹配项。具体来说,会检查 Tweet 的文本属性、链接和媒体的 expand_url 和 display_url、主题标签的文本以及用户提及的 screen_name 是否匹配。
因此,如果您只想要文本与您提供的关键字相匹配的推文,则您必须自己删除那些文本中不包含您提供的关键字的推文。