Фильтр местоположения API Twitter4j не работает

Я использую API Twitter4j для подключения к общедоступному пожарному шлангу. Я пытаюсь получить твиты, относящиеся к местоположениям или ключевым словам, но это просто не работает. Вот мой код:

String geoInfo = "37.7833,122.4167"; //Coordinates of San Francisco
geoInfo = String.valueOf(status.getGeoLocation().getLatitude()) + "," + String.valueOf(status.getGeoLocation().getLongitude()); //Get the Lat. Long. of the tweet

FilterQuery tweetFilterQuery = new FilterQuery();
 tweetFilterQuery.locations(new double[][]{new double[]{-124.848974,24.396308},new double[]{-66.885444,49.384358}}); //USA Bounding box

Я, наконец, прикрепляю это к потоку, где я хочу отфильтровать

Прикрепляю свои результаты в виде скриншота.

Проблема в том, что я получаю свои твиты, предположительно, с Дальнего Востока, поскольку большинство твитов, похоже, на малайском языке.

Во-вторых, как установить его для индийских координат, а точнее для города в Индии.

Я также хочу запустить множественный фильтр, где я могу получить свои твиты, скажем, из Мумбаи, и иметь в них определенное ключевое слово.

Выход:

58761 [Thread-11-infoBolt] INFO  backtype.storm.daemon.task - Emitting: infoBolt default [Kukurilingan???????? (at Jalan Selakaso) — https://t.co/HilfQNa7GY, Kukurilingan????????(atJalanSelakaso)—https://tco/HilfQNa7GY, , , , c2016, https://t.co/HilfQNa7GY, 0, , 0]
58762 [Thread-27-top-words] INFO  backtype.storm.daemon.executor - Processing received message source: infoBolt:3, stream: default, id: {}, [Kukurilingan???????? (at Jalan Selakaso) — https://t.co/HilfQNa7GY, Kukurilingan????????(atJalanSelakaso)—https://tco/HilfQNa7GY, , , , c2016, https://t.co/HilfQNa7GY, 0, , 0]
        TopWords    DEBUG Read Values: , , 
        TopWords    DEBUG Read Values: , , , reportSentiment: 0.3999200159968007, URL : https://t.co/HilfQNa7GY
        TopWords    DEBUG EMIT Tweet Kukurilingan???????? (at Jalan Selakaso) — https://t.co/HilfQNa7GY, matcedEmoticon: , sentimentKey: c2016 0, reportSentiment: 0.3999200159968007
58773 [Thread-27-top-words] INFO  backtype.storm.daemon.task - Emitting: top-words default [Kukurilingan???????? (at Jalan Selakaso) — https://t.co/HilfQNa7GY, Kukurilingan???????? (at Jalan Selakaso) — https://t.co/HilfQNa7GY, , , , c2016, https://t.co/HilfQNa7GY, 0, , 0.3999200159968007]

person Viswanath Sitaraman    schedule 24.07.2015    source источник


Ответы (1)


Во-первых, может быть полезно сосредоточиться на одном вопросе за раз. Мое первое наблюдение: если вы не вставили какой-то код, вы делаете вещи наверху, которые ничего не достигают.

Вы объявляете geoInfo, а затем сразу же пытаетесь заменить его местоположением твита. Чего именно вы пытаетесь достичь здесь?

Единственное, что tweetFilterQuery будет делать, это фильтровать в США, но только если вы добавите этот фильтр в поток, как вы говорите.

Вы можете установить его для города так же, как вы установили его для США, но просто измените углы поля долготы/широты.

Вы можете сделать это на основе ключевого слова, добавив:

`tweetFilterQuery.track(new String[]{searchingPhrase});`

ИЗМЕНИТЬ Похоже, вы не можете одновременно фильтровать и по местоположению, и по ключевому слову. Вы должны вручную искать в строке после того, как у вас есть результаты.

person LtDan33    schedule 07.09.2015