从带有特定关键字的推文中获取国家

Get country from tweet with certain keywords

我正在使用来自 Cloudera 的 Flume 的 TwitterSource。我想按国家/地区使用某些关键字获取推文。当我想从荷兰获取推文时,我不确定该比较什么。我有以下结果没有被处理:

public void onStatus(Status status) {
    if(status.getPlace().getCountry().equalsIgnoreCase("netherlands")) {
        headers.put("timestamp", String.valueOf(status.getCreatedAt().getTime()));
        Event event = EventBuilder.withBody(DataObjectFactory.getRawJSON(status).getBytes(), headers);
        channel.processEvent(event);
    }
}

我不为此使用 FilterQuery 的原因是因为我想将其用于关键字。如果我把它结合起来,那将是合乎逻辑的 OR 而不是 AND。

FilterQuery query = new FilterQuery().track(keywords);

经过分析,您会发现大多数推文都没有附加位置信息。此外,即使附加了位置,城市、州或国家也可能不可用或不正确。我还发现推文中根本不存在此类国家/地区名称。 因此,您必须将城市名称(或州名称)映射到国家/地区名称,然后检查该国家/地区是否与荷兰匹配。使用 Google 地图来实现这一点。

另外,您可能会发现我的回答 here 很有帮助。