如何将阿拉伯字母组合成单词

Gai*_*ter 5 algorithm nlp arabic

我必须从xml文件中读取阿拉伯字母并将其显示为单词

输入:?????输出:?????? 看起来像..

我不知道该如何用任何语言,要读取哪种算法,我需要一些起点来完成此任务

我也不确定是否添加了正确的标签,请随意进行更改。

eSn*_*iff 0

参考:http: //en.wikipedia.org/wiki/Arabic_alphabethttp://en.wikipedia.org/wiki/Arabic_characters_in_Unicode

\n\n

首先,我对阿拉伯语单词形式了解不多,我只是阅读了有关它的维基百科文档(上面链接)。感谢您给我一个阅读它的理由,但如果我完全搞砸了,请原谅我:-)...

\n\n

问题似乎是根据字符在单词中的位置将字符映射到它的正确“大小写”,对吗?我基于您在示例中显示的更改。不管怎样,在英语中这就像第一个字母大写一样。在阿拉伯语中,似乎有 4 个字符大小写(开始、中间、结束和孤立)。如果这是正确的,这里有一个 C# 示例,它执行此映射:

\n\n
class ArabicMapper\n{ \n    enum CaseMap{End=0, Middle=1, Beginning=2, Isolated=3};\n    Dictionary<char, char[]> charMap; // This maps base letters to one of their four cases.\n    public ArabicMapper()\n    {\n        //Create the char map for each letter in the alphabet. {BaseLetter, {End, Middle, Beginning, Isolated}}\n        charMap = new Dictionary<char, char[]>();\n        charMap.Add(0627, new char[] { FE8D, 0627, 0627, FE8E }); // \xca\xbealif : Not sure of the rules for middle/beginning, so just using the isolated...\n        charMap.Add(0628, new char[] { FE90, FE92, FE91, FE8F }); // b\xc4\x81\xca\xbe :\n        //... and so on for each char ...\n\n    }\n    public string charsToWord(char[] word)\n    {\n\n        if (word.Length >= 2)\n        {\n            StringBuilder finalWord = new StringBuilder();\n\n            for(int i=0; i<word.Length; i++)\n            {\n                if (i == 0)\n                    finalWord.Append((charMap[word[i]])[CaseMap.Beginning]);\n                else if(i == word.Length-1)\n                    finalWord.Append((charMap[word[i]])[CaseMap.End]);\n                else\n                    finalWord.Append((charMap[word[i]])[CaseMap.Middle]);\n            }\n            return finalWord.ToString();\n        }\n        else\n        {\n            (charMap[word[0]])[CaseMap.Isolated].ToString();\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

PS 我没有测试这段代码,所以它可能不起作用。请将其视为伪代码。

\n