簡體   English   中英

根據兩個條件的Twitter 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM