![](/img/trans.png)
[英]Segregating filtered tweets based on matched keywords : Twitter4j API
[英]filtering tweets based on two condition twitter API
我已經根據位置過濾了推文
q.location(BBOX);
如果我進一步檢查這些推文是否具有我使用的一組關鍵字
q.track( “游戲”)
我的推文中包含位置信息,或者不是兩個條件都滿足。 我的陳述正確嗎? 我哪里做錯了?
不幸的是,如果您使用的是流式API,這是預期的行為-來自文檔 (重點是我的):
跟蹤,跟蹤和位置字段應被視為與OR運算符結合使用 。 track = foo&follow = 1234返回與用戶1234創建的“ foo”匹配的推文。
因此,換句話說,您應該獲得帶有bbox
位置或包含關鍵字game
Tweets。
如果您想繼續使用流式API,則可能的解決方案可能是手動檢查收到的Tweets是否存在其他情況,即如果Tweet的位置正確,然后檢查關鍵字的狀態文本等。
否則,請考慮改用搜索API 。 參見Twitter#search(Query)
,例如:
final Query query = new Query("game");
query.setGeocode(...);
final QueryResult result = twitter.search(query);
您應該發現Twitter#search(Query)
工作方式類似於Twitter網站上的搜索。
但是,請注意,通過使用搜索API,您可能會錯過一些推文:
...重要的是要知道Search API專注於相關性而非完整性。 這意味着搜索結果中可能缺少一些推文和用戶。 如果要匹配完整性,則應考慮改用Streaming API。 ( 來源 )
我不知道twitter4j API,但是twitter API允許這樣做,您可以使用twitter高級搜索測試頁面對其進行測試 。
您是否可以捕獲發出的get請求?
您是否在twitter4J中使用Streaming API? 如果是這樣,我建議您看下面的例子:
FilterQuery fq = new FilterQuery();
String keywords[] = {"health", "politics"};
double[][] loc={{-122.75,36.8},{-121.75,37.8}};
fq.locations(loc);
fq.track(keywords);
twitterStream.addListener(statusListener);
twitterStream.filter(fq);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.