1

TwitterStream我想使用类按语言检索或过滤。我只想获取一种语言的推文或以其他方式检索所有内容,然后识别每种推文语言。

我已经构建了这段代码,但总是getIsoLanguageCode()返回null(参见3.0.4 JavaDocs版本)。我认为他们对这种方法有问题。

TwitterStream twitterStream = TwitterPrintRandomStream.createTwitterConnection();
StatusListener listener = new StatusListener() {

    public void onStatus(Status status) {
        String tw =  status.getText() + " " + status.getIsoLanguageCode();
        System.out.println(tw);
    }
    ...
}

我也尝试了该方法Status.getUser().getLang(),但它返回的是用户的语言而不是推文。有什么办法吗?

提前致谢。

4

3 回答 3

2

我不认为你可以依赖iso_language_code- 我在 REST 或流 API 中找不到对它的引用。

Tweets 确实有一个lang属性,该属性指示 Tweet 所用的语言。这是最近添加到 API 中的,不幸的是,Twitter4J 还没有为您提供访问它的权限。

在 3.0.4 版本中有一项添加它的任务,但这项工作似乎尚未开始。不幸的是,您需要等到他们添加它,或者您可以帮助他们并提交拉取请求。

于 2013-06-11T07:54:19.137 回答
1

status.getPlace().getCountryCode()应该可以获取 ISO 3166-1 alpha 2 国家代码

于 2013-06-13T12:22:57.313 回答
1

首先,尝试获取status.getLang()并将 em 放入 String 然后将其与status.getText()if match 进行比较,您可以获得仅包含语言的推文status.getLang()

您可以尝试以下代码

String filterTweet=null
String language= status.getLang()
String filterLang="(language code)"
If (filterLang.Matches(language)){
filterTweet=status.getText()}

氰酸

于 2015-08-05T16:15:03.117 回答