我正在寻找一种方法来删除文本中的diacritics和其他字母标记,并以适合文本搜索索引的方式简化它。
为了删除变音符号,我已经找到了这些:
我想知道通用解决方案,语言无关。 (此外,此参考列表可能对某些人有用。)
删除变音符号适用于äöüò等。但我也想要:
例如,我想索引名称Røyksopp,有时候也就像Röyksopp一样,简化名称为Royksopp。或者KoЯn应该是KoRn。
答案 0 :(得分:3)
一些ICU魔术:
echo "ë ö ø Я Ł ɲ æ å ñ 開 당" | uconv -x any-name | perl -wpne 's/ WITH [^}]+//g;' | uconv -x name-any | uconv -x any-latin -t iso-8859-1 -c | uconv -f iso-8859-1 -t ascii -x latin-ascii -c
产量
e o o A L n ae a n ki dang
这使用了cmdline工具uconv,但ICU的Java或C或C ++ API也可以这样做,而且ICU几乎可以绑定任何语言。
注意Я - > A因为这是正确的行为。你想要的不是Unicode如何定义这个角色 - 责怪KoЯn滥用它。
答案 1 :(得分:0)
在特定于Python的问题中,提出了一个通用的解决方案,至少可以删除变音符号:
但这对ø不起作用。