Я пытаюсь использовать Freebase, чтобы найти все альтернативные имена указанной компании. В настоящее время у меня есть следующий код, который работает, когда вы указываете языки, в которых вы хотите, чтобы имя было. Я бы хотел, чтобы он возвращал все псевдонимы, независимо от языка. Однако, если я не укажу языки, результаты не возвращаются. Кроме того, если я включаю все языки в запрос как один длинный список, он возвращает результаты для неправильной компании. Когда я сделал это в приведенном ниже коде, он вернул результаты для Bank of America. Есть ли способ указать все языки? Основная цель кода - найти общие аббревиатуры компаний, хотя также и полные имена полезны.Freebase, чтобы найти альтернативные названия компаний
HttpTransport httpTransport = new NetHttpTransport();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
JSONParser parser = new JSONParser();
GenericUrl url = new GenericUrl("https://www.googleapis.com/freebase/v1/search");
url.put("query", "Royal Bank of Scotland");
url.put("filter", "(all type:/organization/organization)");
url.put("limit", "1");
url.put("output", "(/common/topic/alias)");
url.put("lang", "cs");//Specify Laungauges
url.put("key", properties.get("API_KEY"));
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse httpResponse = request.execute();
JSONObject response = (JSONObject)parser.parse(httpResponse.parseAsString());
JSONArray results = (JSONArray)response.get("result");
System.out.println(results);
Да, я пробовал это, но по какой-то неизвестной причине, когда вы включаете весь список языков, он возвращает неверные результаты. Когда я попробовал это в приведенном выше коде, он дал мне альтернативные имена для Bank of America, а не RBS, тогда как когда я включил только cs, el ожидаемые результаты были возвращены. Также попробовал * и все без успеха. – user2644013
Я не могу воспроизвести ваши результаты. Я отредактировал свой ответ, чтобы включить рабочий запрос. –
Да, это работает сейчас, спасибо за вашу помощь. – user2644013