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

如何在R中将数据集中的阿拉伯语文本转换为英文用于EDA

在R中将阿拉伯语事故类型列转换为英文的方法

方法一:手动映射(推荐,适用于固定类别)

道路事故类型通常是有限的标准化类别,手动构建翻译字典是最准确的方式,能避免API翻译的误差:

  1. 先提取acci_name列的唯一值,明确需要翻译的类别:
unique_accident_types <- unique(df$acci_name)
print(unique_accident_types)
  1. 构建阿拉伯语到英文的翻译字典(根据输出的唯一值,对应事故类型的专业英文表述):
translation_dict <- c(
  "التصادم الجانبي" = "Side Collision",
  "انقلاب المركبة" = "Vehicle Rollover",
  "التصادم الأمامي" = "Front Collision",
  "اصطدام بحاجة ثابتة" = "Collision with Fixed Object"
  # 按需添加剩余类别
)
  1. 用字典替换原列生成英文列:
# Base R 实现
df$acci_name_en <- df$acci_name
levels(df$acci_name_en) <- translation_dict

# dplyr 实现
library(dplyr)
df <- df %>%
  mutate(acci_name_en = recode(acci_name, !!!translation_dict))

方法二:使用翻译API(适用于非标准化/大量文本)

如果类别较多或文本非标准化,可以调用翻译API批量转换,以googleLanguageR包为例:

  1. 安装并加载包:
install.packages("googleLanguageR")
library(googleLanguageR)
  1. 设置Google Cloud翻译API密钥(需先在Google Cloud平台创建项目、启用翻译API并获取密钥):
gl_auth("your_api_key.json") # 或通过环境变量配置密钥
  1. 批量翻译并合并回数据集:
# 提取唯一值减少API调用次数
unique_types <- unique(df$acci_name)
translated_types <- gl_translate(unique_types, target = "en", source = "ar")

# 合并翻译结果到原数据
translation_df <- data.frame(acci_name = translated_types$sourceText, acci_name_en = translated_types$translatedText)
df <- merge(df, translation_df, by = "acci_name", all.x = TRUE)

注意事项

  • 编码问题:读取数据集时需指定正确编码,避免阿拉伯语乱码:
df <- read.csv("your_data.csv", encoding = "UTF-8")
  • 术语准确性:翻译后需核对事故类型的专业英文表述,避免歧义影响EDA分析。
  • API限制:免费API存在调用次数配额,商用场景需注意费用和限流规则。

内容的提问来源于stack exchange,提问作者Satya Pamidi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:45:39