gpt4 book ai didi

api - Twitter4j 只收集某个国家

转载 作者:行者123 更新时间:2023-12-02 20:50:46 25 4
gpt4 key购买 nike

对于我目前正在进行的一个项目,我需要仅从一个国家/地区的流中收集推文。尽管 Twitter4j 流 API 允许按语言过滤,但结果不够准确。所以我想到在过滤器之上放一个过滤器,通过检查推文的国家属性是否被填充。当我检查是否有值时,这工作正常:

if(status.getPlace().getCountry() != null) {
System.out.println("User: " + status.getUser().getName());
System.out.println("Text: : " + status.getText());
System.out.println("Country: " + status.getPlace().getCountry());
System.out.println("Language: " + status.getLang());
}
}

TwitterStream ts = new TwitterStreamFactory(cb.build()).getInstance();
ts.addListener(listener);

FilterQuery filter = new FilterQuery();

String[] language = {"country"};
String[] keywords = {"some keywords"};

filter.track(keywords);
filter.language(language);

ts.filter(filter);

但是如果我检查某个国家/地区,例如德国 我没有收到任何推文:

if(status.getPlace().getCountry() != "germany") {
System.out.println("User: " + status.getUser().getName());
System.out.println("Text: : " + status.getText());
System.out.println("Country: " + status.getPlace().getCountry());
System.out.println("Language: " + status.getLang());
}
}

如果有人可以帮助我,那就太好了。

最佳答案

filter.track(keywords);
filter.language(language);

请记住,上面的代码意味着track(keywords) OR language(language)。这不是逻辑“与”。

如果您只想要来自一个国家/地区且包含某些关键字的推文,请删除 filter.language(language) 并在获得状态后检查该国家/地区。

if(status.getPlace().getCountry().equalsIgnoreCase("germany")) {}

//字符串比较

如果德国没有人使用您指定的过滤器发推文,您将不会收到来自德国的推文。

关于api - Twitter4j 只收集某个国家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com