Freebase寻找替代公司名称

时间:2015-01-14 12:52:20

标签: java freebase named-entity-recognition

我正在尝试使用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);

1 个答案:

答案 0 :(得分:1)

lang参数采用逗号分隔的语言列表。如果你真的想要所有,你可以使用当前的整个列表:

“EN,ES FR,DE,它,PT,ZH,JA,KO,RU,SV,音响,DA,NL,EL,RO,TR,胡,TH,PL,CS,ID,BG,英国,加拿大,欧盟,没有,SL,SK,小时,SR,AR,喜,VI,FA,GA,IW,LV,LT,GL,是,HY,LO,千米,SQ,FIL,ZXX“

来自https://www.googleapis.com/freebase/v1/search?help=langs&indent=true

上记录的https://developers.google.com/freebase/v1/search-cookbook#language-constraints

此查询适用于我:

https://www.googleapis.com/freebase/v1/search?query= “皇家%20Bank%20of%20Scotland” &安培;过滤器=(所有%20type:/组织/组织%20)及限制= 1&安培;输出=(/普通/主题/别名%20 )及朗= EN,ES FR,DE,它,PT,ZH,JA,KO,RU,SV,音响,DA,NL,EL,RO,TR,胡,TH,PL,CS,ID,BG ,英国,加拿大,欧盟,没有,SL,SK,小时,SR,AR,喜,VI,FA,GA,IW,LV,LT,GL,是,HY,LO,千米,SQ,FIL,ZXX