gpt4 book ai didi

unicode - 简化字符串、删除变音符号的通用方法

转载 作者:行者123 更新时间:2023-12-04 05:22:43 27 4
gpt4 key购买 nike

我正在寻找一种方法来删除 diacritics和文本中的其他字母标记,并以适合文本搜索索引的方式对其进行简化。

为了去除变音符号,我已经找到了这些:

  • PHP 问题:1 , 2
  • Java 问题:1 ,相关:2
  • Bash 问题:1
  • .Net 问题:1 , 2
  • Javascript 问题:1
  • Python 问题:1

我想知道一个通​​用的解决方案,独立于语言。 (此外,此引用列表可能对某些人有用。)

删除 äöüò 等的变音符号。但我还想要:

  • ø → o
  • Я → R
  • Ł → L
  • ɲ → n
  • æ → a(它也可以是“ae”,但在我的例子中,“a”更有意义,因为我也想用“a”替换“ae”)

例如,我想为名称 Røyksopp 编制索引,该名称有时也作为 Röyksopp 出现在简化名称 Royksopp 下。或者 KoЯn 应该是 KoRn。

最佳答案

一些 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 具有几乎所有语言的绑定(bind)。

注意 Я -> A 因为这是正确的行为。您想要的不是 Unicode 定义该字符的方式 - 责怪 KoЯn 滥用它。

关于unicode - 简化字符串、删除变音符号的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com