library(dplyr)
library(tidyverse)
library(deeplr)

有料版を使う(何度も走らせられないので緊張する)。

データの読み込み

library(openxlsx)
eric.psyc.nodp <- read.xlsx("../Data/eric_psyc_nodp.xlsx")

Deepl APIの情報(非表示)

動作確認

# available_languages(auth_key = api)

言語の指定

source_lang <- "EN"
target_lang <- "JA"

関数
- https://note.com/text_tier2718/n/n3451567126a7 に載っている関数を使う

deepL <- function(Sentence, source_lang = "EN", target_lang = "JA", api_key = api_key) {
 a <- system(
   paste0(
     'curl -s https://api.deepl.com/v2/translate -d "auth_key=',
     api_key,
     '" -d "text=',
     str_replace_all(Sentence, pattern = '"', replacement = "'"), # 翻訳文中に""があるとpaste0と干渉してエラーを起こすので''に変換
     '" -d source_lang="',
     source_lang,
     '" -d "target_lang=',
     target_lang,
     '"'
   ),
   intern = T
 )
 b <- strsplit(
   strsplit(
     as.character(a),
     '\"text\":\"'
   )[[1]][2],
   '\"}]}'
 )[[1]][1]
 Sys.sleep(1)

 return(b)
}

翻訳

translation <- map(eric.psyc.nodp$abstract, function(x) {
 deepL(
   Sentence = x,
   source_lang = source_lang,
   target_lang = target_lang,
   api_key = api
 )
})
eric.psyc.ja <- mutate(eric.psyc.nodp, abstract_ja = translation)

library(openxlsx)
write.xlsx(eric.psyc.ja, "../Data/eric_psyc_ja.xlsx")

結果は別のページで(何かとお金がかかるので)