假名和汉字混合罗马化到r中的罗马字



我有一个很大的日语单词字符向量(混合汉字和假名),需要将其罗马化(为罗马字)。

然而,使用可用的函数(zipangu::str_conv_romanhira()audubon::strj_romanize()),我没有得到想要的结果。

以"北大海道"为例,zipangu::str_conv_romanhira()将其转换为中文拼音,audubon::strj_romanize()只转换假名字符。

如何将假名和汉字混合文本转换为罗马汉字。

library(zipangu)
library(stringi)
library(audubon)

str_conv_romanhira("北海道", "roman")
#> [1] "běi hǎi dào"
stri_trans_general("北海道", "Any-Latin")
#> [1] "běi hǎi dào"
strj_romanize("北海道")
#> [1] ""

据我所见,没有任何R包提供日语汉字到罗马汉字的音译(至少目前没有在CRAN上)。然而,通过R使用python模块pykakasi来实现这一点非常简单:

library(reticulate)
py_install("pykakasi")  # Only need to install once
# Make module available in R
pykakasi <- import("pykakasi")
# Alias the convert function for convenience
convert <- pykakasi$kakasi()$convert
convert("北海道")
[[1]]
[[1]]$orig
[1] "北海道"
[[1]]$hira
[1] "ほっかいどう"
[[1]]$kana
[1] "ホッカイドウ"
[[1]]$hepburn
[1] "hokkaidou"
[[1]]$kunrei
[1] "hokkaidou"
[[1]]$passport
[1] "hokkaidou"
# Function to extract romaji and collapse
to_romaji <- function(txt) {
paste(sapply(convert(txt), `[[`, "hepburn"), collapse = " ")
}
# Test on some longer text
lapply(c("北海道", "石の上にも三年", "豚に真珠"), to_romaji)
[[1]]
[1] "hokkaidou"
[[2]]
[1] "ishi no ueni mo sannen"
[[3]]
[1] "buta ni shinju"

相关内容

  • 没有找到相关文章

最新更新