如何动态删除阿拉伯语变音符号我正在设计一本电子书“chm”,并有多个HTML页面包含阿拉伯语文本,但有时搜索引擎要突出显示一些阿拉伯语单词,因为它的变音符号,所以它是可能的,当页面加载使用JavaScript函数,将剥离阿拉伯语变音符号文本??但必须有选项再次启用,所以我不想从HTML中删除它的物理,但临时,
问题是我不知道从哪里开始,什么是正确的功能使用
Thank you:)
例如
Text : الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ
converted to : الحمد لله رب العالمين
8条答案
按热度按时间vh0rcniy1#
This site有一些Javascript Unicode规范化的例程,可以用来做你正在尝试的事情。如果没有别的,它可以提供一个很好的起点。
如果你可以预处理数据,Python有很好的Unicode例程来简化这些类型的转换。如果你可以预处理你的CHM文件来产生一个单独的索引文件,然后可以合并到你的CHM中,这可能是一个很好的选择:
ppcbkaq52#
删除阿拉伯语变音符号(8个基本变音符号或全部52个变音符号)的较短方法可以如下所示:
删除基本变音符号
删除所有阿拉伯语变音符号
xa9qqrwz3#
以下是基于Arabic Unicode block的另一种方法:
一些字母仍然可以被认为有变音符号,例如
ژ
“jeh”,它看起来像ر
“reh”。但由于它在阿拉伯语中有不同的基本名称,我使它不会被剥夺其“额外标记”成为“reh”。这种情况发生在少数情况下,例如ڡ
“feh”和ڢ
“feh下面的点”,但是ڤ
和ڦ
被赋予了基本的名字,但是没有ڥ
。不知道最好的方法来处理这些。我不知道什么是变音符号的确切定义,什么不是100%的程度,但这应该是一个好的开始。此外,“hamza + letter”连字分别转换为hamza和letter。
如果你知道如何改善这一点,请评论,并添加一个修复,如果你愿意。
8nuwlpux4#
我写了这个函数,它处理阿拉伯语和英语混合字符串,删除特殊字符(包括变音符号),并规范化一些阿拉伯语字符,如将所有的ة转换为Å。
zxlwwiss5#
试试这个
http://www.suhailkaleem.com/2009/08/26/remove-diacritics-from-arabic-text-quran/
代码是C#而不是javascript。仍然试图弄清楚如何在javascript中实现这一点
编辑:显然在javascript中这很容易。字符串被存储为单独的“字母”,它们可以很容易地被删除。
编辑:这是另一种使用BuckData http://qurandev.github.com/的方法
优点Buck使用更少的带宽在Javascript中,你可以搜索整个Buck古兰经文本在1个镜头。直观相比,阿拉伯语搜索Buck到阿拉伯语和阿拉伯语到Buck是一个简单的js调用。在这里播放现场示例:http://jsfiddle.net/BrxJP/您可以在几毫秒内从Buck文本中删除所有元音。为什么要这样做?你可以在JavaScript中搜索,忽略taskheel的差异(Fathah,Dammah,Kasrah)。这会导致更多的命中。Regex + buck文本可以带来令人敬畏的优化。所有的搜索都可以在本地运行。http://qurandev.appspot.com如何生成数据?只需使用一对一的Map:http://corpus.quran.com/java/buckwalter.jsp
41zrol4v6#
下面是一段JavaScript代码,它几乎可以随时删除阿拉伯语变音符号。
注意:您可以根据自己的喜好覆盖arabicNormChar。
chhkpiq47#
使用此正则表达式捕获所有tashkeel
[-]
kmynzznz8#
我尝试了以下解决方案,效果很好:
参考:https://www.overdoe.com/javascript/2020/06/18/arabic-diacritics.html