24

1600 万の文字列変数のベクトルからドイツ語 (またはフランス語) のアクセントを削除する最適な方法は何ですか?

たとえば、「シェーグレン症候群」を「シェーグレン症候群」に

1 文字から 1 文字への変換は、次のような音訳よりも優れています。

ä => ae ö => oe ü => ue.

たとえば、正規表現を使用することは 1 つのオプションですが、より良い方法 (R パッケージ) はありますか?

gsub('ü','u',gsub('ö','o',"Sjögren's syndrome ( über) "))

R 以外のプラットフォーム用の SO ソリューションはありますが、R には適していません。

4

2 に答える 2

28

文字変換を使用iconvしてASCIIに変換するために使用します(サポートされている場合):

iconv(c("über","Sjögren's"),to="ASCII//TRANSLIT")
[1] "uber"      "Sjogren's"
于 2012-11-28T17:09:11.000 に答える
24

リンクされた回答の1つが示唆しています

library(stringi)
stri_trans_general("Zażółć gęślą jaźń", "Latin-ASCII")

[1] "Zazolc gesla jazn"
于 2016-04-27T18:35:20.933 に答える