Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于双条件twitter API的推文过滤_Java_Search_Twitter_Filter_Twitter4j - Fatal编程技术网

Java 基于双条件twitter API的推文过滤

Java 基于双条件twitter API的推文过滤,java,search,twitter,filter,twitter4j,Java,Search,Twitter,Filter,Twitter4j,我已经根据位置使用 q、 位置(bbox) 如果我有进一步检查这些推文是否有我使用的一组关键字 q、 轨道(“游戏”) 我的推文要么有位置,要么有文字,但这两个条件都不满足。 我的陈述正确吗?我哪里出错了?我不知道twitter4j API,但是twitter4j API允许这样做,您可以使用进行测试 您是否能够捕获发出的get请求?您是否在twitter4J中使用流式API?如果是这样,我可以建议您看下面的一个示例: FilterQuery fq = new FilterQuery();

我已经根据位置使用

q、 位置(bbox)

如果我有进一步检查这些推文是否有我使用的一组关键字

q、 轨道(“游戏”)

我的推文要么有位置,要么有文字,但这两个条件都不满足。
我的陈述正确吗?我哪里出错了?

我不知道twitter4j API,但是twitter4j API允许这样做,您可以使用进行测试


您是否能够捕获发出的get请求?

您是否在twitter4J中使用流式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);

不幸的是,如果您使用的是流式api,这是预期的行为-来自(我的重点):

“轨迹”、“跟随”和“位置”字段应视为与OR运算符组合使用。track=foo&follow=1234返回与“foo”匹配或由用户1234创建的tweet

因此,换句话说,您应该获得带有
bbox
位置或包含关键字
game
的tweet

如果您想继续使用流式api,一个可能的解决方案可能是手动检查接收到的推文的其他情况,即如果推文的位置正确,则检查关键字等的状态文本

否则,请考虑使用。例如,见:

final Query query = new Query("game");
query.setGeocode(...);
final QueryResult result = twitter.search(query);
你会发现
Twitter\search(Query)
的工作原理更像Twitter网站上的搜索

但是,请注意,通过使用搜索api,您可能会错过一些推文:

…重要的是要知道搜索API关注的是相关性而不是完整性。这意味着搜索结果中可能缺少一些推文和用户。如果要匹配完整性,则应该考虑使用流式API。 ()


是的。我尝试了twitter高级搜索,我得到了结果,但我想在twitter4j API中实现这一点:(你能捕获使用twitter4j时发出的http请求吗?如果你能证明它没有为twitter4j查询生成正确的URL,那么你可以提交twitter4j bugI,我也这么做了,但得到了其中任何一个查询的结果。twitter4j要么基于位置,要么基于关键字。但我想得到tweets基于位置,这些推文应该有关键词。它应该可以工作。如果你在推文内容中有url,请检查url是否有一个关键词。这意味着推文内容中不必有关键词。如果你决定继续使用流式API,那么加起来就是@Jonathan的答案(如果您希望获得实时结果并减轻负担,我建议您这样做):请注意twitter的API在您定义的边界框之外返回结果的问题:。意味着您应该验证地理标记是否在您感兴趣的范围内。