如何拆分谷歌地图API返回评论中带多语言前缀的原文与翻译内容?
方案1:优先使用Google My Business API原生字段(最稳妥)
你完全不需要自己做字符串拆分,Google My Business v4/v4.1 API的reviews资源原生提供两个独立字段:
comment:用户发布的原始评论内容,无任何自动插入的翻译标记translatedComment:Google自动翻译后的内容,仅当评论语言和你请求API时指定的语言不一致时才会返回
直接拉取这两个字段存储即可,100%兼容所有语言场景,不存在拆分错误的问题。
方案2:若只能获取合并后的评论字符串,用通用正则匹配拆分
所有语言的Google自动翻译评论格式都是固定的结构,和语言无关:
第一行:
(任意翻译前缀文本) + 译文内容
第二行:(任意原文前缀文本) + 原文内容
你可以用匹配结构的正则表达式直接拆分,不需要关注括号内的文本内容,Python示例代码如下:
import re def split_review(content: str) -> tuple[str, str]: # 匹配规则:忽略换行,匹配两组"括号包裹的前缀+内容"的结构 pattern = r"^\((.*?)\)\s*(.*?)\s*\((.*?)\)\s*(.*)$" match_res = re.match(pattern, content, re.DOTALL) if match_res: translated = match_res.group(2).strip() original = match_res.group(4).strip() return translated, original # 匹配失败说明没有自动翻译,直接返回原内容作为原文 return "", content.strip()
该方案适配99%以上的多语言场景,只要是Google自动插入的翻译结构都可以正常拆分。
方案3:增加多语言前缀兜底校验(可选,提升准确率)
你可以提前收集主流语言的Google翻译/原文前缀对照表,对正则拆分的结果做二次校验,避免极端场景下的拆分错误,参考对照表示例:
| 语言 | 翻译前缀 | 原文前缀 |
|---|---|---|
| 英语 | (Translated by Google) | (Original) |
| 俄语 | (Переведено Google) | (Оригинал) |
| 西班牙语 | (Traducido por Google) | (Original) |
| 法语 | (Traduit par Google) | (Original) |
| 日语 | (Google 翻訳) | (オリジナル) |
| 韩语 | (Google 번역) | (원본) |
内容的提问来源于stack exchange,提问作者Garruk The Wildspeaker
相关产品推荐
相关产品推荐

