You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Delphi调用Google Translate API如何获取词性分类信息?

获取谷歌翻译的词性分类信息

嗨,我明白你的困惑——网页版谷歌翻译能给出词性分类,但你用Translate v2 API只能拿到翻译文本对吧?其实这是因为Translate v2 API的核心定位是文本翻译,本身并不返回词典级别的词性、多释义这类额外信息,网页版显示的那些内容是谷歌额外整合了它的词典数据库才有的。

不过有几个靠谱的方案可以帮你拿到词性信息,我给你梳理一下:

方案1:结合Google Cloud Natural Language API

这个API专门负责文本的语法分析,包括词性标注。你可以分两步走:

  • 先用你现有的Translate v2封装把希伯来语单词翻译成英语;
  • 再把翻译后的英语单词传给Natural Language API的analyzeSyntax接口,就能拿到词性、形态等详细信息。

举个Delphi的简单调用示例(需要先在谷歌云平台启用该API并获取API密钥):

procedure GetPartOfSpeech(const TranslatedWord, APIKey: string);
var
  HTTP: TIdHTTP;
  RequestBody: TStringStream;
  ResponseJson: string;
begin
  HTTP := TIdHTTP.Create(nil);
  RequestBody := TStringStream.Create(
    Format('{"document":{"type":"PLAIN_TEXT","content":"%s"},"encodingType":"UTF8"}', 
    [TranslatedWord]), TEncoding.UTF8);
  try
    HTTP.Request.ContentType := 'application/json';
    HTTP.Request.CustomHeaders.Add(Format('Authorization: Bearer %s', [APIKey]));
    ResponseJson := HTTP.Post('https://language.googleapis.com/v1/documents:analyzeSyntax', RequestBody);
    
    // 这里需要解析JSON响应,比如用TJSONObject
    // 找到tokens数组里每个元素的partOfSpeech字段,比如ADJ(形容词)、NOUN(名词)等
    ShowMessage('词性信息已获取,响应内容:' + ResponseJson);
  finally
    HTTP.Free;
    RequestBody.Free;
  end;
end;

方案2:升级到Google Translate v3 API

如果你能把封装升级到v3版本,那就更直接了——v3 API支持请求包含词典条目的翻译结果。只需要在调用translateText接口时,添加include_dictionary_entries=true参数,返回的结果里就会包含对应的词性、多个释义等词典级数据,不用额外调用其他API。

不过要注意,v3 API的调用方式和v2略有不同,需要调整你的Delphi封装逻辑,同时也要在谷歌云平台启用v3版本的翻译API。

方案3:非官方词典接口(不推荐生产环境)

还有一些非官方的谷歌词典接口可以直接请求词性信息,但这类接口没有官方支持,随时可能失效,而且可能违反谷歌的服务条款,所以只适合测试用,不建议在正式项目里使用。

另外要提醒一下,这些谷歌云的API都是有免费额度的,但超出后会产生费用,记得在谷歌云控制台监控使用情况哦。

内容的提问来源于stack exchange,提问作者Steven Chesser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:52:02