From 7c49ba8536d5996486200766d7da4174978f0c61 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 Jun 2022 01:55:14 +0430 Subject: [PATCH] ver2.0 --- .gitignore | 3 + .../DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 61221 bytes ...548dea1d-6710-447d-84dc-a07492f54078.vsidx | Bin 0 -> 46368 bytes ...5a079693-0b16-49f2-814e-cec1b525d720.vsidx | Bin 0 -> 42592 bytes ...5e887efe-ac0a-43cc-a94e-355d326020f7.vsidx | Bin 0 -> 57936 bytes ...90b8f540-788f-47e8-81d9-020c5aea7fca.vsidx | Bin 0 -> 53452 bytes .vs/AsoSoftLibrary/FileContentIndex/read.lock | 0 .vs/AsoSoftLibrary/v17/.futdcache.v1 | Bin 0 -> 100 bytes .vs/AsoSoftLibrary/v17/.suo | Bin 0 -> 36864 bytes .../asosoftlibrary.metadata.v2 | Bin 0 -> 126408 bytes .../asosoftlibrary.projects.v2 | Bin 0 -> 579393 bytes AsoSoft-logo.png | Bin 0 -> 2692 bytes AsoSoftLibrary.csproj | 49 +- AsoSoftLibrary.csproj.user | 9 + AsoSoftLibrary.sln | 25 + AsoSoftNormalization.cs | 311 ------------ AsoSoftNumerals.cs | 89 ---- G2P.cs | 449 ++++++++++++++++++ Normalize.cs | 373 +++++++++++++++ Number2Word.cs | 94 ++++ README.md | 121 +++-- Sort.cs | 31 ++ Transliteration.cs | 138 ++++++ ...es.Designer.cs => replaceFiles.Designer.cs | 217 ++++----- AsoSoftResources.resx => replaceFiles.resx | 20 +- resources/G2PCertain.txt | 44 ++ resources/G2PExceptions.txt | 6 + .../NormalizeUnicodeAdditional.txt | 0 .../NormalizeUnicodeDeep.txt | 0 resources/Phoneme2Ascii.txt | 36 ++ resources/Phoneme2IPA.txt | 42 ++ 31 files changed, 1488 insertions(+), 569 deletions(-) create mode 100644 .gitignore create mode 100644 .vs/AsoSoftLibrary/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/AsoSoftLibrary/FileContentIndex/548dea1d-6710-447d-84dc-a07492f54078.vsidx create mode 100644 .vs/AsoSoftLibrary/FileContentIndex/5a079693-0b16-49f2-814e-cec1b525d720.vsidx create mode 100644 .vs/AsoSoftLibrary/FileContentIndex/5e887efe-ac0a-43cc-a94e-355d326020f7.vsidx create mode 100644 .vs/AsoSoftLibrary/FileContentIndex/90b8f540-788f-47e8-81d9-020c5aea7fca.vsidx create mode 100644 .vs/AsoSoftLibrary/FileContentIndex/read.lock create mode 100644 .vs/AsoSoftLibrary/v17/.futdcache.v1 create mode 100644 .vs/AsoSoftLibrary/v17/.suo create mode 100644 .vs/ProjectEvaluation/asosoftlibrary.metadata.v2 create mode 100644 .vs/ProjectEvaluation/asosoftlibrary.projects.v2 create mode 100644 AsoSoft-logo.png create mode 100644 AsoSoftLibrary.csproj.user create mode 100644 AsoSoftLibrary.sln delete mode 100644 AsoSoftNormalization.cs delete mode 100644 AsoSoftNumerals.cs create mode 100644 G2P.cs create mode 100644 Normalize.cs create mode 100644 Number2Word.cs create mode 100644 Sort.cs create mode 100644 Transliteration.cs rename AsoSoftResources.Designer.cs => replaceFiles.Designer.cs (87%) rename AsoSoftResources.resx => replaceFiles.resx (81%) create mode 100644 resources/G2PCertain.txt create mode 100644 resources/G2PExceptions.txt rename Resources/NormalizerReplacesOptional.txt => resources/NormalizeUnicodeAdditional.txt (100%) rename Resources/NormalizerReplacesRequierd.txt => resources/NormalizeUnicodeDeep.txt (100%) create mode 100644 resources/Phoneme2Ascii.txt create mode 100644 resources/Phoneme2IPA.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4602f20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin +/obj +/Properties \ No newline at end of file diff --git a/.vs/AsoSoftLibrary/DesignTimeBuild/.dtbcache.v2 b/.vs/AsoSoftLibrary/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..efba9ac99fa7e86b92ca97dc28275c1f03c6e5dd GIT binary patch literal 61221 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
!m7l!|KUbbiS49_3Z4>MS7;J1B{tup6(S|J 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 literal 0 HcmV?d00001 diff --git a/.vs/AsoSoftLibrary/FileContentIndex/548dea1d-6710-447d-84dc-a07492f54078.vsidx b/.vs/AsoSoftLibrary/FileContentIndex/548dea1d-6710-447d-84dc-a07492f54078.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..230f9789fd2391e46bd7b58f9eeabbcf7ea4f060 GIT binary patch literal 46368 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

ZQhvZ7Pm0>H>R#{u+Y?Y_0*;WNx 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 literal 0 HcmV?d00001 diff --git a/.vs/AsoSoftLibrary/FileContentIndex/90b8f540-788f-47e8-81d9-020c5aea7fca.vsidx b/.vs/AsoSoftLibrary/FileContentIndex/90b8f540-788f-47e8-81d9-020c5aea7fca.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..9f6890eb4b516def7b03e504cb43f8f650642242 GIT binary patch literal 53452 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 literal 0 HcmV?d00001 diff --git a/.vs/AsoSoftLibrary/FileContentIndex/read.lock b/.vs/AsoSoftLibrary/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/.vs/AsoSoftLibrary/v17/.futdcache.v1 b/.vs/AsoSoftLibrary/v17/.futdcache.v1 new file mode 100644 index 0000000000000000000000000000000000000000..88f39e819fc7df13d1534d7e993f196b94e92bd8 GIT binary patch literal 100 zcmZQ%U|`U8v5IkV4U2Is&JWH{EAh!pDoQM>MC0lu7Z()eXE6cQ^E&6}rDdj<7A2Ns p=I61xq$ZW7a|GlhmZaqu<+3^ERXPWR`eX=KMa9ZZ6^^>a0RUOOAvFL1 literal 0 HcmV?d00001 diff --git a/.vs/AsoSoftLibrary/v17/.suo b/.vs/AsoSoftLibrary/v17/.suo new file mode 100644 index 0000000000000000000000000000000000000000..509e8081d798c023a80df28b40b9fdecfa08c9fe GIT binary patch literal 36864 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

6^+Po@8gIJm&yl}?OZVAHD;HBA+IsJ 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

Nv)qA-2puQ)eeK3JT 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�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 literal 0 HcmV?d00001 diff --git a/AsoSoftLibrary.csproj b/AsoSoftLibrary.csproj index 410028e..a6100b1 100644 --- a/AsoSoftLibrary.csproj +++ b/AsoSoftLibrary.csproj @@ -1,4 +1,4 @@ - + netcoreapp3.1 @@ -6,20 +6,59 @@ AsoSoft Class Library Aso Mahmudi AsoSoft Class Library offers basic natural language processing (NLP) algorithms for the Kurdish Language (ckb: Central branch of Kurdish). + MIT + https://github.com/AsoSoft/AsoSoft-Library + AsoSoft-logo.png + kurdish normalization natural-language-processing + AsoSoft Library for the Kurdish language processing (ckb: Central branch of Kurdish). +Normalizer and Numeral Converter classes + https://github.com/AsoSoft/AsoSoft-Library + 2.0.0 + ReadMe.md - + + + + + + + + + + + + + + + + + + + True True - AsoSoftResources.resx + replaceFiles.resx - + PublicResXFileCodeGenerator - AsoSoftResources.Designer.cs + replaceFiles.Designer.cs + + + + True + \ + + + True + \ + + + diff --git a/AsoSoftLibrary.csproj.user b/AsoSoftLibrary.csproj.user new file mode 100644 index 0000000..17b4106 --- /dev/null +++ b/AsoSoftLibrary.csproj.user @@ -0,0 +1,9 @@ + + + + + + Designer + + + \ No newline at end of file diff --git a/AsoSoftLibrary.sln b/AsoSoftLibrary.sln new file mode 100644 index 0000000..f966da8 --- /dev/null +++ b/AsoSoftLibrary.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32616.157 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AsoSoftLibrary", "AsoSoftLibrary.csproj", "{69039AA0-A7AD-4F12-B1B9-13263A9DC47F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {69039AA0-A7AD-4F12-B1B9-13263A9DC47F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69039AA0-A7AD-4F12-B1B9-13263A9DC47F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69039AA0-A7AD-4F12-B1B9-13263A9DC47F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69039AA0-A7AD-4F12-B1B9-13263A9DC47F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {95A3F2E7-0611-4D99-8A85-055D3FE5E265} + EndGlobalSection +EndGlobal diff --git a/AsoSoftNormalization.cs b/AsoSoftNormalization.cs deleted file mode 100644 index 771eb85..0000000 --- a/AsoSoftNormalization.cs +++ /dev/null @@ -1,311 +0,0 @@ -using System.Collections.Generic; -using System.Text; -using System.Text.RegularExpressions; - -namespace AsoSoftLibrary -{ - public class AsoSoftNormalization - { - - private static string replaceByList(string text, List replaceList) - { - for (int i = 0; i < replaceList.Count; i += 2) - text = Regex.Replace(text, replaceList[i], replaceList[i + 1]); - return text; - } - - // ================= Non-Standard Fonts Conversion ================= - - // converts Kurdish text written in AliK fonts into Unicode standard - public static string AliK2Unicode(string text) => replaceByList(text, new List() { - "لاَ|لآ|لاً", "ڵا", - "لً|لَ|لأ", "ڵ", - "ة", "ە", - "ه" + "([^ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆەهھیێأإآثذصضطظكيىةڎۊؤ]|$)", "هـ$1", - "ض", "چ", - "ث", "پ", - "ظ", "ڤ", - "ط", "گ", - "ك", "ک", - "ىَ|يَ|یَ|آ", "ێ", - "رِ", "ڕ", - "ؤ|وَ", "ۆ", - "ي|ى", "ی", - "ء", "\u200Cو", - "ِ", "", - "ذ", "ژ" - }); - - // converts Kurdish text written in AliWeb fonts into Unicode standard - public static string AliWeb2Unicode(string text) => replaceByList(text, new List() { - "لاَ|لآ|لاً", "ڵا", - "لَ|پ", "ڵ", - "ة", "ە", - "ه", "ھ", - "ه", "ھ", - "رِ|أ", "ڕ", - "ؤ|وَ", "ۆ", - "يَ|یَ", "ێ", - "ص", "ێ", - "ي", "ی", - "ط", "ڭ", //swap ط and گ - "گ", "ط", // - "ڭ", "گ", // - "ض", "چ", - "ث", "پ", - "ظ", "ڤ", - "ْ|ُ", "", - "ى", "*", - "ك", "ک", - "ذ", "ژ" - }); - - // converts Kurdish text written in KDylan fonts into Unicode standard - public static string Dylan2Unicode(string text) => replaceByList(text, new List() { - "لإ|لأ|لآ", "ڵا", - "ؤ|وَ", "ۆ", - "ة", "ە", - "ض", "ڤ", - "ص", "ڵ", - "ث", "ێ", - "ؤ", "ۆ", - "ه", "ھ", - "ك", "ک", - "ي|ى", "ی", - "ذ", "ڕ" - }); - - // converts Kurdish text written in Zarnegar fonts into Unicode standard - public static string Zarnegar2Unicode(string text) => replaceByList(text, new List() { - "لاٌ", "ڵا", - "ى|ي", "ی", - "یٌ", "ێ", - "ه‏", "ە", - "لٌ", "ڵ", - "رٍ", "ڕ", - "وٌ", "ۆ" - }); - - // ================= Normalization ================= - public static Dictionary LoadNormalizerReplaces(List files) - { - var output = new Dictionary(); - foreach (var file in files) - { - foreach (var item in file.Split('\n')) - { - var chOld = System.Convert.ToChar(System.Convert.ToUInt32(item.Split('\t')[0], 16)); - var chNew = ""; - foreach (var ch in item.Split('\t')[1].Split(' ')) - if (ch != "") - chNew += System.Convert.ToChar(System.Convert.ToUInt32(ch, 16)); - if (!output.ContainsKey(chOld)) - output.Add(chOld, chNew); - } - } - return output; - } - - static string Ku = "ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆەهھیێأإآثذصضطظكيىةڎۊؤ" - + "\u064B-\u065F"; // Haraka - static string joiners = "بپتثجچحخسشصضطظعغفڤقکگلڵمنیهھێ"; - - // main Unicode Normalization for Central Kurdish - public static string NormalizeKurdish(string text) - { - return NormalizeKurdish(text, true, true, new Dictionary()); - } - public static string NormalizeKurdish(string text, bool IsOnlyKurdish, bool changeInitialR, Dictionary ReplaceList) - { - // Character-based replacement (ReplaceList and Private Use Area) - var CharList = new List(); - for (int i = 0; i < text.Length; i++) - if (!CharList.Contains(text[i])) - CharList.Add(text[i]); - foreach (var ch in CharList) - { - if (ReplaceList.ContainsKey(ch)) //ReplaceList - text = text.Replace(ch.ToString(), ReplaceList[ch]); - else if (ch > 57343 && ch < 63744) //Private Use Area - text = text.Replace(ch, '□'); // u25A1 White Square - } - - var Corrections = new List() { - //========= Zero-Width Non-Joiner - "[\uFEFF\u200C]+", "\u200C", //Standardize and remove dublicated ZWNJ - // remove unnecessary ZWNJ - "\u200C(?=(\\s|\\p{P}|$))", "", // ZWNJ + white spaces - "(? ماهـ - "([^" + joiners + "])(\u200D)([^" + joiners + "])", "$1$3", //remove unnecessary ZW-J - - //========= Tatweels (U+0640) - "\u0640{2,}", "\u0640", // merge - "\u0640" + "([" + Ku +"])", "$1", // delete unnecessary Tatweel - "([" + joiners + "])" + "\u0640", "$1", // delete unnecessary Tatweel - "(^|[^هئ])" + "\u0640", "$1-", // only we need Tatweel for final Heh and Hamza, others are dashes - }; - - // if the text is Monolingual (only Central Kurdish) - if (IsOnlyKurdish) - { - Corrections.AddRange(new List() { - //========= standard H, E, Y, K - "\u200C" + "و ", " و ", // شوێن‌و جێ => شوێن و جێ - "ه" + "\u200C", "ە", // Heh+ZWNJ => kurdish AE - "ه" + "([^" + Ku +"ـ]|$)", "ە$1", //final Heh looks like Ae - "ھ" + "([^" + Ku +"]|$)", "هـ$1", // final Heh Doachashmee - "ھ" , "ه", // non-final Heh Doachashmee - "ى|ي", "ی", // Alef maksura | Arabic Ye => Farsi ye - "ك", "ک", // Arabic Kaf => Farsi Ke - //"\u200C" + "دا" + "(?![" + Ku + @"]($|[ \t]))", "دا", // شوێن‌دا => شوێندا - //"(? بێ شوێن - - //========= errors from font conversion - "لاَ|لاً|لأ", "ڵا", - "(ی|ێ)" + "[\u064E\u064B]+", "ێ", //FATHA & FATHATAN - "(و|ۆ)" + "[\u064E\u064B]+", "ۆ", - "(ل|ڵ)" + "[\u064E\u064B]+", "ڵ", - "(ر|ڕ)" + "\u0650+", "ڕ", //KASRA - }); - //========= Initial r - if (changeInitialR) - Corrections.AddRange(new List() { "(? replaceByList(text, new List() { - "(?() { - "\\(\\(", "«", - "\\)\\)", "»", - "»", "\uF8FA", // temp replacement «x»eke - "\\)", "\uF8FB", //temp replacement - "([!.:;?،؛؟]+)(\\p{Pi})", "$1 $2", - "(\\p{P}+)(?![\\s\\p{P}])", "$1 ", // Seprate all punctuations - "\uF8FA", "»", // undo temp replacement - "\uF8FB", ")", // undo temp replacement - "([^ \\t\\p{P}])(\\p{P}+)", "$1 $2", // Seprate all punctuations - "(\\d) ([.|\u066B]) (?=\\d)", "$1$2", //DECIMAL SEPARATOR - "(\\d) ([,\u066C]) (?=\\d\\d\\d)", "$1$2", //THOUSANDS SEPARATOR - "(\\d) ([/\u060D]) (?=\\d)", "$1$2" //DATE SEPARATOR - }); - if (!seprateAllPunctuations) - { - text = replaceByList(text, new List() { - " ((\\p{Pe}|\\p{Pf})+)", "$1", // A ) B => A) B - "((\\p{Ps}|\\p{Pi})+) ", "$1", // A ( B => A (B - " ([!.:;?،؛؟]+)", "$1", // A ! => A! - }); - } - text = text.Replace('\uF8FD', '"'); //undo temp replacement - return text; - } - // Trim white spaces of a line - public static string TrimLine(string line) - { - line = Regex.Replace(line.Trim(), "[\u200B\u200C\uFEFF]+$", ""); - line = Regex.Replace(line.Trim(), "^[\u200B\u200C\uFEFF]+", ""); - return line.Trim(); - } - // Html Entity replacement for web crawled texts (e.g. "é" with "é") - public static string ReplaceHtmlEntity(string text) - { - return Regex.Replace(text, "&[a-zA-Z]+;", m => System.Net.WebUtility.HtmlDecode(m.Value)); - } - // Replace URLs and Emails with a certain word (improves language models) - public static string ReplaceUrlEmail(string text) - { - text = Regex.Replace(text, "([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+\\.[a-zA-Z]{2,5})", "EmailAddress"); - text = Regex.Replace(text, "((http[s]?|ftp)?://([\\w-]+\\.)+[\\w-]+)(/[\\w-~./?%+&=]*)?", "URL"); - return text; - } - // Character replacement for ANSI CodePage - public static string Char2CharReplacment(string text, Dictionary Codepage) - { - foreach (var item in Codepage) - text = text.Replace(item.Key, item.Value); - return text; - } - // Correction Table (word replacement ) - public static string Word2WordReplacement(string line, Dictionary wordReplacements) - { - return Regex.Replace(line, "(? wordReplacements.ContainsKey(m.Value) ? wordReplacements[m.Value] : m.Value); - } - - //================= have to be improved: ================= - - // fast but not accurate; we need a language detector. - public static string DeleteNonKurdish(string line, int KurdishRateThreshold) - { - float KuPersent = Regex.Matches(line, "[پچژگڵۆڕێڤەھ]").Count / (float)line.Length; - if (KuPersent < KurdishRateThreshold / 100.0) - line = ""; - return line; - } - - //embrace sentences with start/end tags - public static string MarkSentence(string line, string sentenceTag) - { - var tagStart = "<" + sentenceTag + ">"; - var tagEnd = ""; - - // ending punctuations !?؟ - line = Regex.Replace(line.TrimEnd(), "([!?؟]+)(?!$)", "$1 " + tagEnd + tagStart); - // full stop - line = Regex.Replace(line, "([\\w\u200C]{2,} ?\\.)(?!([0-9a-zA-Z.]|$))", "$1 " + tagEnd + tagStart); - - return tagStart + line + tagEnd; - } - } -} - -// ================= Regex Hints ================= -// docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions -// Lookbehind Positive: (?<=a)b -// Lookbehind Negative: (? 12345678 - text = Regex.Replace(text, "(? floatName(m.Groups[1].Value.ToString(), m.Groups[2].Value.ToString())); - - //convert remaining integr numbers - text = Regex.Replace(text, "([0-9]+)", - m => integerName(m.Groups[1].Value.ToString())); - - return text; - } - - private static string floatName(string integerPart, string decimalPart) - { - var point = " پۆینت " + Regex.Replace(decimalPart, "(?<=^|0)0", " سفر "); - point = Regex.Replace(point, "[0-9]", ""); - return integerName(integerPart) + point + integerName(decimalPart); - } - - private static string integerName(string inputInteger) - { - var output = ""; - if (inputInteger != "0") - { - string[] ones = { "", "یەک", "دوو", "سێ", "چوار", "پێنج", "شەش", "حەوت", "هەشت", "نۆ" }; - string[] teens = { "دە", "یازدە", "دوازدە", "سێزدە", "چواردە", "پازدە", "شازدە", "حەڤدە", "هەژدە", "نۆزدە" }; - string[] tens = { "", "", "بیست", "سی", "چل", "پەنجا", "شەست", "هەفتا", "هەشتا", "نەوەد" }; - string[] hundreds = { "", "سەد", "دووسەد", "سێسەد", "چوارسەد", "پێنسەد", "شەشسەد", "حەوتسەد", "هەشتسەد", "نۆسەد" }; - string[] thousands = { "", " هەزار", " ملیۆن", " ملیار", " بلیۆن", " بلیار", " تریلیۆن", " تریلیار", " کوادرلیۆن" }; - var temp = inputInteger; - for (int i = 0; i < inputInteger.Length; i = i + 3) - { - string currentThree = Regex.Match(temp, "([0-9]{1,3})$").Result("$1"); - temp = temp.Substring(0, temp.Length - currentThree.Length); - currentThree = currentThree.PadLeft(3, '0'); - var C = Int32.Parse(currentThree[0].ToString()); - var X = Int32.Parse(currentThree[1].ToString()); - var I = Int32.Parse(currentThree[2].ToString()); - var conjunction1 = ((C != 0) && (X != 0 || I != 0)) ? " و " : ""; - var conjunction2 = (X != 0 && I != 0) ? " و " : ""; - if (X == 1) - currentThree = hundreds[C] + conjunction1 + teens[I]; - else - currentThree = hundreds[C] + conjunction1 + tens[X] + conjunction2 + ones[I]; - var M = (currentThree == "") ? "" : thousands[(int)(Math.Floor(i / 3.0))]; - currentThree += M; - var conjunction3 = (output == "") ? "" : " و "; - if (currentThree != "") - output = currentThree + conjunction3 + output; - } - output = output.Replace("یەک هەزار", "هەزار"); - } - else // if input number = 0 - output = "سفر"; - return output; - } - } -} \ No newline at end of file diff --git a/G2P.cs b/G2P.cs new file mode 100644 index 0000000..0bcc148 --- /dev/null +++ b/G2P.cs @@ -0,0 +1,449 @@ +// Automated Grapheme-to-Phoneme Conversion for Central Kurdish based on Optimality Theory +// Copyright (C) 2019 Aso Mahmudi, Hadi Veisi +// Maintainer: Aso Mahmudi (aso.mehmudi@gmail.com) +// Demo: https://asosoft.github.io/g2p/ +// Source Code: https://github.com/AsoSoft/AsoSoft-Library +// Test-set: https://github.com/AsoSoft/Kurdish-G2P-dataset +// Paper: https://www.sciencedirect.com/science/article/abs/pii/S0885230821000292 +// Cite: +// @article{mahmudi2021automated, +// title={Automated grapheme-to-phoneme conversion for Central Kurdish based on optimality theory}, +// author={Mahmudi, Aso and Veisi, Hadi}, +// journal={Computer Speech \& Language}, +// volume={70}, +// pages={101222}, +// year={2021}, +// publisher={Elsevier} +// } + +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace AsoSoftLibrary +{ + public static partial class AsoSoft + { + private static Dictionary History = new Dictionary(); + + ///

Converts Central Kurdish text in standard Arabic script into syllabified phonemic Latin script (i.e. graphemes to phonems) + public static string G2P(string text, + bool convertNumbersToWord = false, + bool backMergeConjunction = true, + bool singleOutputPerWord = true) + { + var sb = new StringBuilder(); + text = UnifyNumerals(text, "en"); + if (convertNumbersToWord) + text = Number2Word(text); + + text = g2pNormalize(text.Trim()); + // + var ku = "ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆەهیێ" + "ۋۉۊڎڴݵݸ"; + var wordss = Regex.Matches(text, "([" + ku + "]+|[^" + ku + "]+)"); + for (int i = 0; i < wordss.Count; i++) + { + var word = wordss[i].Value; + if (Regex.IsMatch(word, "[" + ku + "]") && word != "و") + sb.Append(WordG2P(Regex.Replace(word, "[^" + ku + "]+", ""), singleOutputPerWord)); + else + sb.Append(word); + } + var output = sb.ToString(); + + // conjunction و + output = Regex.Replace(output, "(^|[?!.] ?)" + "و", "$1ˈwe"); + if (!backMergeConjunction) + output = Regex.Replace(output, "و", "û"); + else + { + // if there are candidates preceeding conjunction (e.g ˈbîst¶ˈbîˈsit و) + + output = Regex.Replace(output, "(\\w+)¶(\\w+)¶(\\w+) و" + , "$1 و¶$2 و¶$3 و"); + output = Regex.Replace(output, "(\\w+)¶(\\w+) و" + , "$1 و¶$2 و"); + + // ('bi'ra + w => bi'raw) + output = Regex.Replace(output, "([aeêouûiî]) و", "$1w"); + // ('be'fir + û => 'bef'rû) + output = Regex.Replace(output, "(?<=\\w)ˈ([^aeêouûiî])i([^aeêouûiî]) و", "$1ˈ$2û"); + // ('ser + û => 'se'rû) + // ('sard + û => 'sar'dû) + // ('min + û => 'mi'nû) + // ('bi'gir + û => 'bi'gi'rû) + // ('gir'tin + û => 'gir'ti'nû) + output = Regex.Replace(output, "([^aeêouûiî]) و", "ˈ$1û"); + // if conjunction makes candidates the same (e.g ˈbîsˈtû¶ˈbîsˈtû) + output = Regex.Replace(output, "(?\\w+)¶\\k(?=\\s|$)", "$1"); + } + return output.TrimEnd(); + } + + + // chooses the best candidates for the word + private static string Evaluator(string gr, List Candidates) + { + var Output = new List(); + var evaluatedCandidates = EVAL(Candidates); + if (evaluatedCandidates.Count() > 0) + { + var LowestPenalt = evaluatedCandidates.First().Value; + foreach (var item in evaluatedCandidates) + if (item.Value < LowestPenalt + 5) + Output.Add(item.Key); + } + return (Output.Count() == 0) ? gr : string.Join('¶', Output); + } + + // Normalizion + private static string g2pNormalize(string text) + { + var s = new string[] + { + " +", " " , + "دٚ", "ڎ", + "گٚ", "ڴ", + @"(^|\s)چ بکە", "$1چبکە", + "َ", "ە", // فتحه + "ِ", "ی", // کسره + "ُ", "و", // ضمه + "ء", "ئ", // Hamza + "أ", "ئە", + "إ", "ئی", + "آ", "ئا", + "ظ|ذ|ض", "ز", + "ص|ث", "س", + "ط", "ت", + "ك", "ک", + "ي|ى", "ی", + "ه‌", "ە", + "ھ", "ه", + "ـ", "", // tatweel + "؟", "?", + "،", ",", + "؛", ";", + "\r", "", + }; + for (int i = 0; i < s.Length; i += 2) + text = Regex.Replace(text, s[i], s[i + 1]); + return text; + } + + private static string WordG2P(string gr, bool SingleOutputPerWord) + { + // Check history for speed up + if (!History.ContainsKey(gr)) + History.Add(gr, Evaluator(gr, Generator(gr))); + return SingleOutputPerWord ? History[gr].Split('¶')[0] : History[gr]; + } + + // GEN: generates all possible candidates: + // e.g. بوون => bûn, buwn, bwun + private static List Generator(string gr) + { + // Converting certain characters + foreach (var item in replaceFiles.G2PExceptions.Split('\n')) + gr = Regex.Replace(gr, item.Split('\t')[0], item.Split('\t')[1]); + + foreach (var item in replaceFiles.G2PCertain.Split('\n')) + gr = Regex.Replace(gr, item.Split('\t')[0], item.Split('\t')[1]); + + // Uncertainty in "و" and "ی" + var CandList1 = new List { "" }; + while (gr.Length > 0) + { + var temp = new List(); + if (Regex.IsMatch(gr, "^ووووو")) + { + temp.AddRange(new List + { "uwuwu", "uwuww", "uwwuw", "uwûw", + "wuwwu", "wuwuw", "wuwû", "wûww", "wwuwu", "wwuww", "wwûw", "wûwu", + "ûwwu", "ûwuw", "ûwû"}); + gr = gr.Substring(5); + } + else if (Regex.IsMatch(gr, "^وووو")) + { + temp.AddRange(new List + { "uwwu", "uwuw", "uwû", + "wwuw", "wwû", "wuww", "wuwu", "wûw", + "ûwu", "ûww", }); + gr = gr.Substring(4); + } + else if (Regex.IsMatch(gr, "^ووو")) + { + temp.AddRange(new List + { "wuw", "wwu", "wû", + "uww", "uwu", + "ûw" }); + gr = gr.Substring(3); + } + else if (Regex.IsMatch(gr, "^وو")) + { + temp.AddRange(new List { "wu", "uw", "ww", "û" }); + gr = gr.Substring(2); + } + else if (Regex.IsMatch(gr, "^و")) + { + temp.AddRange(new List { "u", "w" }); + gr = gr.Substring(1); + } + else if (Regex.IsMatch(gr, "^یی")) + { + temp.AddRange(new List { "îy", "yî" }); + gr = gr.Substring(2); + } + else if (Regex.IsMatch(gr, "^ی")) + { + temp.AddRange(new List { "y", "î" }); + gr = gr.Substring(1); + } + else + { + temp.Add(gr[0].ToString()); + gr = gr.Substring(1); + } + + var Count = CandList1.Count; + var TempList = new List(); + foreach (var item in CandList1) + TempList.Add(item); + CandList1.Clear(); + for (int i = 0; i < Count; i++) + { + for (int j = 0; j < temp.Count; j++) + { + var WW = Regex.IsMatch(temp[j], "^ww"); + var IsPreviousVowel = Regex.IsMatch(TempList[i], "[aeêouûiîüȯė]$"); + var IsNowVowel = Regex.IsMatch(temp[j], "^[aeêouûiîüȯė]"); + var ConsonantBeforeWW = !IsPreviousVowel && WW; + var hiatus = IsPreviousVowel && IsNowVowel; + if (!hiatus && !ConsonantBeforeWW) + CandList1.Add(TempList[i] + temp[j]); + } + } + } + // Adding "i" between Consonant Clusters + var Candidates = iInsertion(CandList1); + + // ======= Syllabification for each candidate + var OutputCandidates = Syllabification(Candidates); + + // for speed up: remove candidates that has 1) syllable without vowel or 2) more than 3 consonants in coda + var cCount = OutputCandidates.Count; + if(cCount > 1) + { + for (int i = cCount - 1; i > -1; i--) + if (Regex.IsMatch(OutputCandidates[i], "ˈ[^aeêouûiîüȯė]+(ˈ|$)") + || Regex.IsMatch(OutputCandidates[i], "[aeêouûiîüȯė][^aeêouûiîüȯėˈ]{4,}")) + OutputCandidates.RemoveAt(i); + } + + return OutputCandidates; + } + + // insertion of hidden /i/ vowel + // e.g. brd => bird, brid, birid + private static List iInsertion(List Cands) + { + var Candidates = new List(); + for (int i = 0; i < Cands.Count; i++) + { + var ThisCand = new List(); + if (!string.IsNullOrEmpty(Cands[i])) + { + ThisCand.Add(Cands[i][0].ToString()); + for (int j = 1; j < Cands[i].Length; j++) + { + var Count = ThisCand.Count; + var TempList = new List(); + foreach (var item in ThisCand) + TempList.Add(item); + ThisCand.Clear(); + for (int k = 0; k < Count; k++) + { + ThisCand.Add(TempList[k] + Cands[i][j]); + if (Regex.IsMatch(Cands[i].Substring(j - 1, 2), @"[^aeêouûiîüȯė][^aeêouûiîüȯė]")) + ThisCand.Add(TempList[k] + "i" + Cands[i][j]); + } + } + } + else + ThisCand.Add(Cands[i]); + foreach (var item in ThisCand) + Candidates.Add(item); + + } + return Candidates; + } + + // Syllabification of candidates + // e.g. dexom => ˈdeˈxom + private static List Syllabification(List Candidates) + { + var cCount = Candidates.Count; + for (int i = 0; i < cCount; i++) + { + // Onset C(C)V + Candidates[i] = Regex.Replace(Candidates[i], + "([^aeêouûiîȯėwy][wy]|[^aeêouûiîȯė])([aeêouûiîȯė])", "ˈ$1$2"); + // if no ˈ at beginig (grˈtin => ˈgrˈtin) + Candidates[i] = Regex.Replace(Candidates[i], + "^([^ˈ])", "ˈ$1"); + // add candidate ( 'be'sye => + 'bes'ye) + if (Regex.IsMatch(Candidates[i], "[aeêouûiîȯė][^aeêouûiîȯė]?ˈ[^aeêouûiîȯėwy][wy]")) + Candidates.Add(Regex.Replace(Candidates[i], "([aeêouûiîȯė][^aeêouûiîȯė]?)ˈ([^aeêouûiîȯėwy])([wy])", "$1$2ˈ$3")); + } + return Candidates; + } + + // EVAL: specifies a penalty number for each syllabified candidate + private static Dictionary EVAL(List Candidates) + { + var output = new Dictionary(); + if (Candidates.Count > 0) + { + var Penalty = new Dictionary(); + for (int i = 0; i < Candidates.Count; i++) + { + var P = 0; + // ================= types of penalties ============ + // Complex Onset + P += Regex.Matches(Candidates[i], "ˈ([^aeêouûiîȯėˈ]{2,}[wy]|[^aeêouûiîȯėˈ]+[^wy])[aeêouûiîȯė]").Count * 20; + + // Complex Coda + if (Candidates[i] != "ˈpoynt") + P += Regex.Matches(Candidates[i], "[aeêouûiîȯė][^aeêouûiîȯėˈ]{3}").Count * 10; + + P += Regex.Matches(Candidates[i], "[^aeêouûiîȯėˈ][wy][aeêouûiîȯė][wy][^aeêouûiîȯėˈ]").Count * 20; + + // SSP: ascending Sonority in coda + var codas = Regex.Matches(Candidates[i], "(?<=[aeêouûiîȯė])[^aeêouûiîȯėˈ]{2,}"); + foreach (var coda in codas) + { + var chars = coda.ToString(); + for (int j = 0; j < chars.Length - 1; j++) + if (SonorityIndex(chars[j]) <= SonorityIndex(chars[j + 1])) + P += 10; + } + // DEP: i insertion + P += Regex.Matches(Candidates[i], "i").Count * 2; + //=========================== + + P += Regex.Matches(Candidates[i], "kˈr").Count * 3; + + // ('kurd'si'tan => 'kur'dis'tan) + P += Regex.Matches(Candidates[i], "[^aeêouûiîȯėˈ]ˈsiˈtaˈ?n").Count * 3; + + //"(kewt|newt|ḧewt|rext|sext|dest|pest|řast|mest|pişt|wîst|hest|bîst|heşt|şest)" + // suffix /it/ and /im/ ('sert => 'se'rit) ('xewt !! 'xe'wit / 'xewt) + if (!Regex.IsMatch(Candidates[i], + "(rift|neft|kurt|girt|xirt|germ|term|port)")) + P += Regex.Matches(Candidates[i], "[aeêouûiîȯė]([^aeêouûiîyȯėˈ]m|[^aeêouûiîysşxwˈ]t)$").Count * 3; + + // (ˈdyu/ => ˈdîw) and (ˈkwiř => ˈkuř) + P += Regex.Matches(Candidates[i], "yu").Count * 5; + P += Regex.Matches(Candidates[i], "uy").Count * 5; + P += Regex.Matches(Candidates[i], "yi").Count * 5; + P += Regex.Matches(Candidates[i], "iˈ?y").Count * 5; // bes'ti'yan + P += Regex.Matches(Candidates[i], "wu").Count * 5; + P += Regex.Matches(Candidates[i], "uˈ?w").Count * 2; // 'bi'bu'wî + P += Regex.Matches(Candidates[i], "wi").Count * 2; + P += Regex.Matches(Candidates[i], "iw").Count * 2; + P += Regex.Matches(Candidates[i], "wû").Count * 5; + + // ˈdiˈrêˈjayˈyî => ˈdiˈrêˈjaˈyîy (not heyyî and teyyî) + // ˈdiˈrêjˈyî => ˈdiˈrêˈjîy + // (NOT ˈḧeyˈyî teyˈyî") + P += Regex.Matches(Candidates[i], "[^aeêouûiîȯė]ˈyî").Count * 3; + + // [CV]'CyV => [CV]C'yV (ˈdiˈrêˈjyî => ˈdiˈrêˈjîy) ('bes'tye'tî => 'best'ye'tî) + P += Regex.Matches(Candidates[i], "(? CC'yV (bir'dyan => bird'yan) ˈswênˈdyan + P += Regex.Matches(Candidates[i], "[^aeêouûiî]ˈ[^aeêouûiî][y][aeêouûî]").Count * 2; + + // twîˈwur => tu'yûr + P += Regex.Matches(Candidates[i], "[^aeêouûiî]wîˈw").Count * 3; + //=========================== + // Cix (řê'kix'raw => řêk'xi'raw + P += Regex.Matches(Candidates[i], "[^aeêouûiî]ixˈ").Count * 2; + + // ^'hełC' => ^'heł'C + P += Regex.Matches(Candidates[i], "^ˈhe(ł[^aeêouûiîˈ]ˈ|ˈłi)").Count * 3; + + // (he'jarn => 'he'ja'rin) + P += Regex.Matches(Candidates[i], "rn").Count * 5; + + // ('xawn => 'xa'win) ('pyawn => pya'win) + P += Regex.Matches(Candidates[i], "[aêoûî][w][^aeêouûiîˈ]").Count * 5; + //=========================== + + // ('lab'ri'di'nî => 'la'bir'di'nî) + P += Regex.Matches(Candidates[i], "[aeêouûiî][^aeêouûiîˈ]ˈriˈ").Count * 5; + // + // 'ser'nic, 'dek'rid, gir'fit => 'se'rinc, 'de'kird, 'gi'rift (NOT gir'tin) + var pat = Regex.Match(Candidates[i], "([^aeêouûiîˈ])ˈ([^aeêouûiîˈ])i([^aeêouûiîˈ])"); + if (pat.Success) + { + var C = Regex.Replace(pat.Value, "[iˈ]", ""); + if (SonorityIndex(C[1]) > SonorityIndex(C[2])) + P += 3; // + } + // ('sern'cê => 'se'rin'cê) + pat = Regex.Match(Candidates[i], "([^aeêouûiîˈ])([^aeêouûiîˈ])ˈ([^aeêouûiîˈ])"); + if (pat.Success) + { + var C = Regex.Replace(pat.Value, "[iˈ]", ""); + if (SonorityIndex(C[0]) > SonorityIndex(C[1])) + P += 3; + } + // ('ser'ni'cê => 'se'rin'cê) + pat = Regex.Match(Candidates[i], "([^aeêouûiîˈ])ˈ([^aeêouûiîˈ])iˈ([^aeêouûiîˈ])"); + if (pat.Success) + { + var C = Regex.Replace(pat.Value, "[iˈ]", ""); + if (SonorityIndex(C[0]) > SonorityIndex(C[1]) && SonorityIndex(C[1]) > SonorityIndex(C[2])) + P += 3; + } + // ('gi'rit'nê => 'gir'ti'nê) ('ku'şit'ne => 'kuş'ti'ne) + pat = Regex.Match(Candidates[i], "[aeêouûiî]ˈ([^aeêouûiîˈ])i([^aeêouûiîˈ])ˈ([^aeêouûiîˈ])"); + if (pat.Success) + { + var C = Regex.Replace(pat.Value, "[aeêouûiîˈ]", ""); + if (SonorityIndex(C[2]) >= SonorityIndex(C[1])) + P += 3; + } + Penalty.Add(Candidates[i], P); + } + output = Penalty.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value); + } + return output; + } + + // Sonority Sequencing Principle in EVAL needs phoneme ranking + private static int SonorityIndex(char ch) + { + var c = ch.ToString(); + if (Regex.IsMatch(c, "[wy]")) // Approximant + return 6; + if (Regex.IsMatch(c, "[lłrř]")) // lateral + return 5; + if (Regex.IsMatch(c, "[mn]")) // nasal + return 4; + if (Regex.IsMatch(c, "[fvszşjxẍƹḧh]")) // fricative + return 3; + if (Regex.IsMatch(c, "[cç]")) // affricate + return 2; + else // stop + return 1; + } + + // for tests + public static Dictionary AllCandidates(string grapheme) + { + return EVAL(Generator(g2pNormalize(grapheme))); + } + } +} \ No newline at end of file diff --git a/Normalize.cs b/Normalize.cs new file mode 100644 index 0000000..8072a49 --- /dev/null +++ b/Normalize.cs @@ -0,0 +1,373 @@ +// Automated Kurdish Text Normalization خاوێن کردنی ئۆتۆماتیکی دەقی کوردی +// Copyright (C) 2019 Aso Mahmudi, Hadi Veisi, Mohammad MohammadAmini, Hawre Hosseini +// Developer and Maintainer: Aso Mahmudi (aso.mehmudi@gmail.com) + +// Source Code: https://github.com/AsoSoft/AsoSoft-Library +// Paper: https://www.researchgate.net/publication/333729065 +// Cite: +// @inproceedings{mahmudi2019automated, +// title={Automated Kurdish Text Normalization}, +// author={Mahmudi, Aso and Veisi, Hadi and MohammadAmini, Mohammad and Hosseini, Hawre}, +// booktitle={The Second International Conference on Kurdish and Persian Languages and Literature}, +// year={2019} +// } + +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; + +namespace AsoSoftLibrary +{ + public static partial class AsoSoft + { + + static Dictionary DeepReplacements = LoadNormalizerReplaces(replaceFiles.NormalizerDeep); + static Dictionary additionalReplacements = LoadNormalizerReplaces(replaceFiles.NormalizerAdditional); + + // ================= Converting Non-Standard Fonts ================= + + /// Converts Kurdish text written in AliK fonts into Unicode standard + public static string AliK2Unicode(string text) => replaceByList(text, normalizationReplaces["AliK2Unicode"]); + + /// Converts Kurdish text written in AliWeb fonts into Unicode standard + public static string AliWeb2Unicode(string text) => replaceByList(text, normalizationReplaces["AliWeb2Unicode"]); + + /// Converts Kurdish text written in KDylan fonts into Unicode standard + public static string Dylan2Unicode(string text) => replaceByList(text, normalizationReplaces["Dylan2Unicode"]); + + /// Converts Kurdish text written in Zarnegar fonts into Unicode standard + public static string Zarnegar2Unicode(string text) => replaceByList(text, normalizationReplaces["Zarnegar2Unicode"]); + + static string Ku = "ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆەهھیێأإآثذصضطظكيىةڎۊؤ" + + "\u064B-\u065F"; // Haraka + static string joiners = "ئبپتثجچحخسشصضطظعغفڤقکكگلڵمنیيهھێ"; + private static readonly Dictionary> normalizationReplaces = new Dictionary> + { + {"NormalizeKurdish1", new List() { + //========= Tatweels (U+0640) + "\u0640{2,}", "\u0640", // merge + $"(?<=[{joiners}])\u0640(?=[{Ku}])", "", // delete unnecessary tatweel e.g. هـا to ها + // replace tatweel nonadjacent to Kurdish letters with dash + $"(?<=[{joiners}])\u0640", "\uF640", // temporal preserve + $"\u0640(?=[{Ku}])", "\uF640", // temporal preserve + "\u0640", "-", + "\uF640", "\u0640", + + //========= Zero-Width Non-Joiner + "[\uFEFF\u200C]+", "\u200C", //Standardize and remove dublicated ZWNJ + // remove unnecessary ZWNJ + "\u200C(?=(\\s|\\p{P}|$))", "", // ZWNJ + white spaces + $"(? ماهـ + $"(?() { + //========= standard H, E, Y, K + "ه" + "\u200C", "ە", // Heh+ZWNJ => kurdish AE + "ه" + "(?!([" + Ku +"ـ]|$))", "ە", //final Heh looks like Ae + "ھ" + "(?!([" + Ku +"]|$))", "هـ", // final Heh Doachashmee + "ھ" , "ه", // non-final Heh Doachashmee + "ى|ي", "ی", // Alef maksura | Arabic Ye => Farsi ye + "ك", "ک", // Arabic Kaf => Farsi Ke + "\u200C" + "و ", " و ", // شوێن‌و جێ => شوێن و جێ + //"\u200C" + "دا" + "(?![" + Ku + @"]($|[ \t]))", "دا", // شوێن‌دا => شوێندا + //"(? بێ شوێن + + //========= errors from font conversion + "لاَ|لاً|لأ", "ڵا", + "(ی|ێ)" + "[\u064E\u064B]+", "ێ", //FATHA & FATHATAN + "(و|ۆ)" + "[\u064E\u064B]+", "ۆ", + "(ل|ڵ)" + "[\u064E\u064B]+", "ڵ", + "(ر|ڕ)" + "\u0650+", "ڕ", //KASRA + }}, + {"NormalizeKurdish3", new List() { + "(?() { + "لاَ|لآ|لاً", "ڵا", + "لً|لَ|لأ", "ڵ", + "ة", "ە", + "ه" + "(?!([ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆەهھیێأإآثذصضطظكيىةڎۊؤ]|$))", "هـ", + "ض", "چ", + "ث", "پ", + "ظ", "ڤ", + "ط", "گ", + "ك", "ک", + "ىَ|يَ|یَ|آ", "ێ", + "رِ", "ڕ", + "ؤ|وَ", "ۆ", + "ي|ى", "ی", + "ء", "\u200Cو", + "ِ", "", + "ذ", "ژ" + }}, + {"AliWeb2Unicode", new List() { + "لاَ|لآ|لاً", "ڵا", + "لَ|پ", "ڵ", + "ة", "ە", + "ه", "ھ", + "ه", "ھ", + "رِ|أ", "ڕ", + "ؤ|وَ", "ۆ", + "يَ|یَ", "ێ", + "ص", "ێ", + "ي", "ی", + "ط", "ڭ", //swap ط and گ + "گ", "ط", // + "ڭ", "گ", // + "ض", "چ", + "ث", "پ", + "ظ", "ڤ", + "ْ|ُ", "", + "ى", "*", + "ك", "ک", + "ذ", "ژ" + }}, + {"Dylan2Unicode", new List() { + "لإ|لأ|لآ", "ڵا", + "ؤ|وَ", "ۆ", + "ة", "ە", + "ض", "ڤ", + "ص", "ڵ", + "ث", "ێ", + "ؤ", "ۆ", + "ه", "ھ", + "ك", "ک", + "ي|ى", "ی", + "ذ", "ڕ" + }}, + {"Zarnegar2Unicode", new List() { + "لاٌ", "ڵا", + "ى|ي", "ی", + "یٌ", "ێ", + "ه‏", "ە", + "لٌ", "ڵ", + "رٍ", "ڕ", + "وٌ", "ۆ" + }}, + {"SeperateDigits", new List() { + "(?() { + "\\(\\(", "«", + "\\)\\)", "»", + "»", "\uF8FA", // temp replacement «x»eke + "\\)", "\uF8FB", //temp replacement + "([!.:;?،؛؟]+)(\\p{Pi})", "$1 $2", + "(\\p{P}+)(?![\\s\\p{P}])", "$1 ", // Seprate all punctuations + "\uF8FA", "»", // undo temp replacement + "\uF8FB", ")", // undo temp replacement + "(?() { + " ((\\p{Pe}|\\p{Pf})+)", "$1", // A ) B => A) B + "((\\p{Ps}|\\p{Pi})+) ", "$1", // A ( B => A (B + " ([!.:;?،؛؟]+)", "$1", // A ! => A! + }} + }; + + private static string replaceByList(string text, List replaceList) + { + for (int i = 0; i < replaceList.Count; i += 2) + text = Regex.Replace(text, replaceList[i], replaceList[i + 1]); + return text; + } + // ================= Normalization ================= + private static Dictionary LoadNormalizerReplaces(string file) + { + var output = new Dictionary(); + foreach (var item in file.Trim().Split('\n')) + { + var chOld = System.Convert.ToChar(System.Convert.ToUInt32(item.Split('\t')[0], 16)); + var chNew = ""; + foreach (var ch in item.Split('\t')[1].Split(' ')) + if (ch != "") + chNew += System.Convert.ToChar(System.Convert.ToUInt32(ch, 16)); + if (!output.ContainsKey(chOld)) + output.Add(chOld, chNew); + } + return output; + } + + /// Main Unicode Normalization for Central Kurdish + public static string Normalize(string text) + { + return Normalize(text, true, true, true, true, new Dictionary()); + } + + /// Unicode Normalization for Central Kurdish + public static string Normalize(string text, + bool isOnlyKurdish, + bool changeInitialR, + bool deepUnicodeCorrectios, + bool additionalUnicodeCorrections, + Dictionary usersReplaceList) + { + var replaces = new Dictionary(); + // Character-based replacement (ReplaceList and Private Use Area) + var CharList = new List(); + for (int i = 0; i < text.Length; i++) + if (!CharList.Contains(text[i])) + CharList.Add(text[i]); + + if(deepUnicodeCorrectios) + foreach (var item in DeepReplacements) + if(CharList.Contains(item.Key)) + replaces.Add(item.Key, item.Value); + if (additionalUnicodeCorrections) + foreach (var item in additionalReplacements) + if(CharList.Contains(item.Key) && !replaces.ContainsKey(item.Key)) + replaces.Add(item.Key, item.Value); + foreach (var item in usersReplaceList) + if (CharList.Contains(item.Key) && !replaces.ContainsKey(item.Key)) + replaces.Add(item.Key, item.Value); + + foreach (var ch in CharList) + { + if (replaces.ContainsKey(ch)) //ReplaceList + text = text.Replace(ch.ToString(), replaces[ch]); + else if (ch > 57343 && ch < 63744) //Private Use Area + text = text.Replace(ch, '□'); // u25A1 White Square + } + + text = replaceByList(text, normalizationReplaces["NormalizeKurdish1"]); + + // if the text is Monolingual (only Central Kurdish) + if (isOnlyKurdish) + { + text = replaceByList(text, normalizationReplaces["NormalizeKurdish2"]); + //========= Initial r + if (changeInitialR) + text = replaceByList(text, normalizationReplaces["NormalizeKurdish3"]); + } + return text; + } + + // ===== Unifying Numerals ===== + private static readonly string[] digits = new string[]{ + "۰", "٠", "0", + "۱", "١", "1", + "۲", "٢", "2", + "۳", "٣", "3", + "۴", "٤", "4", + "۵", "٥", "5", + "۶", "٦", "6", + "۷", "٧", "7", + "۸", "٨", "8", + "۹", "٩", "9", }; + public static string UnifyNumerals(string text, string NumeralType) + { + for (int i = 0; i < digits.Length; i += 3) + { + if (NumeralType == "en") + text = Regex.Replace(text, digits[i] + "|" + digits[i + 1], digits[i + 2]); + else if (NumeralType == "ar") + text = Regex.Replace(text, digits[i] + "|" + digits[i + 2], digits[i + 1]); + } + return text; + } + + /// Seperate digits from words (e.g. replacing "12a" with "12 a") + public static string SeperateDigits(string text) => replaceByList(text, normalizationReplaces["SeperateDigits"]); + + /// Normalize Punctuations + public static string NormalizePunctuations(string text, bool seprateAllPunctuations) + { + text = text.Replace('"', '\uF8FD'); //temp replacement + text = replaceByList(text, normalizationReplaces["NormalizePunctuations1"]); + if (!seprateAllPunctuations) + { + text = replaceByList(text, normalizationReplaces["NormalizePunctuations2"]); + } + text = text.Replace('\uF8FD', '"'); //undo temp replacement + return text; + } + + + /// Trim white spaces of a line + public static string TrimLine(string line) + { + line = Regex.Replace(line.Trim(), "[\u200B\u200C\uFEFF]+$", ""); + line = Regex.Replace(line.Trim(), "^[\u200B\u200C\uFEFF]+", ""); + return line.Trim(); + } + + /// HTML Entity replacement for web crawled texts (e.g. "é" with "é") + public static string ReplaceHtmlEntity(string text) + { + return Regex.Replace(text, "&[a-zA-Z]+;", m => System.Net.WebUtility.HtmlDecode(m.Value)); + } + + /// Replace URLs and Emails with a certain word (improves language models) + public static string ReplaceUrlEmail(string text) + { + text = Regex.Replace(text, "([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+\\.[a-zA-Z]{2,5})", "EmailAddress"); + text = Regex.Replace(text, "((http[s]?|ftp)?://([\\w-]+\\.)+[\\w-]+)(/[\\w-~./?%+&=]*)?", "URL"); + return text; + } + + /// Character replacement for ANSI CodePage + public static string Char2CharReplacment(string text, Dictionary Codepage) + { + foreach (var item in Codepage) + text = text.Replace(item.Key, item.Value); + return text; + } + + /// Correction Table (word replacement ) + public static string Word2WordReplacement(string line, Dictionary wordReplacements) + { + return Regex.Replace(line, "(? wordReplacements.ContainsKey(m.Value) ? wordReplacements[m.Value] : m.Value); + } + + //================= have to be improved: ================= + + /// Delete non-CK lines (fast but not accurate; we need a language detector.) + public static string DeleteNonKurdish(string line, int KurdishRateThreshold) + { + float KuPersent = Regex.Matches(line, "[پچژگڵۆڕێڤەھ]").Count / (float)line.Length; + if (KuPersent < KurdishRateThreshold / 100.0) + line = ""; + return line; + } + + /// Embrace sentences with start/end tags + public static string MarkSentence(string line, string sentenceTag) + { + var tagStart = "<" + sentenceTag + ">"; + var tagEnd = ""; + + // ending punctuations !?؟ + line = Regex.Replace(line.TrimEnd(), "([!?؟]+)(?!$)", "$1 " + tagEnd + tagStart); + // full stop + line = Regex.Replace(line, "([\\w\u200C]{2,} ?\\.)(?!([0-9a-zA-Z.]|$))", "$1 " + tagEnd + tagStart); + + return tagStart + line + tagEnd; + } + } +} + +// ================= Regex Hints ================= +// docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions +// Lookbehind Positive: (?<=a)b +// Lookbehind Negative: (? 12345678 + text = Regex.Replace(text, "(? floatName(m.Groups[1].Value.ToString(), m.Groups[2].Value.ToString())); + + //convert remaining integr numbers + text = Regex.Replace(text, "([0-9]+)", + m => integerName(m.Groups[1].Value.ToString())); + + return text; + } + + private static string floatName(string integerPart, string decimalPart) + { + var point = " پۆینت " + Regex.Replace(decimalPart, "(?<=^|0)0", " سفر "); + point = Regex.Replace(point, "[0-9]", ""); + return integerName(integerPart) + point + integerName(decimalPart); + } + + private static string integerName(string inputInteger) + { + var output = ""; + if (inputInteger != "0") + { + string[] ones = { "", "یەک", "دوو", "سێ", "چوار", "پێنج", "شەش", "حەوت", "هەشت", "نۆ" }; + string[] teens = { "دە", "یازدە", "دوازدە", "سێزدە", "چواردە", "پازدە", "شازدە", "حەڤدە", "هەژدە", "نۆزدە" }; + string[] tens = { "", "", "بیست", "سی", "چل", "پەنجا", "شەست", "هەفتا", "هەشتا", "نەوەد" }; + string[] hundreds = { "", "سەد", "دووسەد", "سێسەد", "چوارسەد", "پێنسەد", "شەشسەد", "حەوتسەد", "هەشتسەد", "نۆسەد" }; + string[] thousands = { "", " هەزار", " ملیۆن", " ملیار", " بلیۆن", " بلیار", " تریلیۆن", " تریلیار", " کوادرلیۆن" }; + var temp = inputInteger; + for (int i = 0; i < inputInteger.Length; i = i + 3) + { + string currentThree = Regex.Match(temp, "([0-9]{1,3})$").Result("$1"); + temp = temp.Substring(0, temp.Length - currentThree.Length); + currentThree = currentThree.PadLeft(3, '0'); + var C = Int32.Parse(currentThree[0].ToString()); + var X = Int32.Parse(currentThree[1].ToString()); + var I = Int32.Parse(currentThree[2].ToString()); + var conjunction1 = ((C != 0) && (X != 0 || I != 0)) ? " و " : ""; + var conjunction2 = (X != 0 && I != 0) ? " و " : ""; + if (X == 1) + currentThree = hundreds[C] + conjunction1 + teens[I]; + else + currentThree = hundreds[C] + conjunction1 + tens[X] + conjunction2 + ones[I]; + var M = (currentThree == "") ? "" : thousands[(int)(Math.Floor(i / 3.0))]; + currentThree += M; + var conjunction3 = (output == "") ? "" : " و "; + if (currentThree != "") + output = currentThree + conjunction3 + output; + } + output = output.Replace("یەک هەزار", "هەزار"); + } + else // if input number = 0 + output = "سفر"; + return output; + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index 7a29d1c..88c3eb6 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,67 @@ # AsoSoft Library AsoSoft Library offers basic natural language processing (NLP) algorithms for the Kurdish Language (ckb: Central branch of Kurdish). AsoSoft Library is written in C#. -- **Normalizer:** normalizes Kurdish text and punctuations, unifies numerals, replaces Html Entities, extracts and replaces URLs and emails, and more. +- **Grapheme-to-Phoneme (G2P) converter and Transliteration**: converts Kurdish text into syllabified phoneme string. Also transliterates Kurdish texts from Arabic script into Latin script and vice versa. +- **Normalizer:** normalizes the Kurdish text and punctuation marks, unifies numerals, replaces Html Entities, extracts and replaces URLs and emails, and more. - **Numeral Converter:** converts any type of numbers into Kurdish words. -- **Grapheme-to-Phoneme Convertor** *(coming soon)*: converts Kurdish text into syllabified phoneme string, also transliterates Kurdish texts from Arabic script into Latin script. -## Reference -If you find this code useful in your research, please consider citing [this paper](https://www.researchgate.net/publication/333729065): +## Grapheme-to-Phoneme (G2P) converter and Transliteration +This function is based on the study "[Automated Grapheme-to-Phoneme Conversion for Central Kurdish based on Optimality Theory](https://www.sciencedirect.com/science/article/abs/pii/S0885230821000292)". - @inproceedings{KurdNormalization2019, - Author = {Aso Mahmudi, Hadi Veisi, Mohammad Mohammadamini, Hawre Hosseini}, - Title = {Automated Kurdish Text Normalization خاوێن کردنی ئۆتۆماتیکی دەقی کوردی}, - Booktitle = {دومین همایش مشترک بین المللی مطالعات زبان و ادبیات کردی و فارسی}, - City = {Sanandaj, Iran} - Year = {2019} - } +### Kurdish G2P converter +Converts Central Kurdish text in standard Arabic script into **syllabified phonemic** Latin script (i.e. graphemes to phonems) +General format: +```cs +AsoSoft.G2P(string text, + bool convertNumbersToWord = false, + bool backMergeConjunction = true, + bool singleOutputPerWord = true); +``` +An example: +```cs +AsoSoft.G2P("شەو و ڕۆژ بووین بە گرفت. درێژیی دیوارەکەی گرتن"); +>ˈşeˈwû ˈřoj ˈbûyn ˈbe ˈgiˈrift. ˈdiˈrêˈjîy ˈdîˈwaˈreˈkey ˈgirˈtin< +``` +### Transliteration +Latin script (Hawar) into Arabic script: +```cs +AsoSoft.La2Ar("Gelî keç û xortên kurdan, hûn hemû bi xêr biçin"); +>گەلی کەچ و خۆرتێن کوردان، هوون هەموو ب خێر بچن< +``` + +Arabic script into Hawar Latin script (ح‌غ‌ڕڵ→ḧẍřł): +```cs +AsoSoft.Ar2La("گیرۆدەی خاڵی ڕەشتە؛ گوێت لە نەغمەی تویوورە؟"); +>gîrodey xałî řeşte; gwêt le neẍmey tuyûre?< +``` + +Arabic script into simplified (ḧẍřł→hxrl) Hawar Latin script: +```cs +AsoSoft.Ar2LaSimple("گیرۆدەی خاڵی ڕەشتە؛ گوێت لە نەغمەی تویوورە؟"); +>gîrodey xalî reşte; gwêt le nexmey tuyûre?< +``` ## Kurdish Text Normalizer Several functions needed for Central Kurdish text normalization: ### Normalize Kurdish Two character replacement lists are provided as the resources of the library: -- Required: +- Deep Unicode Corrections: - replacing deprecated Arabic Presentation Forms (FB50–FDFF and FE70–FEFF) with corresponding standard characters. - replacing different types of dashes and spaces - removing Unicode control character -- Optional +- Additional Unicode Corrections - replacing special Arabic math signs with corresponding Latin characters - replacing similar, but different letters with standard characters (e.g. ڪ,ے,ٶ with ک,ی,ؤ) The normalization task in this function: -- for all Arabic scripts: +- for all Arabic scripts (including Kurdish, Arabic, and Persian): - Character-based replacement: - - above Replace Lists + - Above mentioned replacement lists - Private Use Area (U+E000 to U+F8FF) with White Square character - - Standardizing and removing duplicated or unnecessary Zero-Width characters - - removing unnecessary Tatweels (U+0640) + - Standardizing and removing duplicated or unnecessary Zero-Width characters + - removing unnecessary Tatweels (U+0640) - only for Central Kurdish: - standardizing Kurdish characters: ە, هـ, ی, and ک - correcting miss-converted characters from non-Unicode fonts @@ -44,65 +69,64 @@ The normalization task in this function: the simple overloading: ```cs -AsoSoftNormalization.NormalizeKurdish("دەقے شیَعري خـــۆش. ره‌نگه‌كاني خاك"); +AsoSoft.Normalize("دەقے شیَعري خـــۆش. ره‌نگه‌كاني خاك"); >دەقے شێعری خۆش. ڕەنگەکانی خاک< ``` or the complete overloading: ```cs -var files = new List { - AsoSoftResources.NormalizerReplacesRequierd, - AsoSoftResources.NormalizerReplacesOptional -}; -var ReplaceList = AsoSoftNormalization.LoadNormalizerReplaces(files); -AsoSoftNormalization.NormalizeKurdish("دەقے شیَعري خـــۆش. ره‌نگه‌كاني خاك", true, true, ReplaceList); ->دەقی شێعری خۆش. ڕەنگەکانی خاک< +AsoSoft.Normalize(string text, + bool isOnlyKurdish, + bool changeInitialR, + bool deepUnicodeCorrectios, + bool additionalUnicodeCorrections, + Dictionary usersReplaceList); ``` ### AliK to Unicode `AliK2Unicode` converts Kurdish text written in AliK fonts (developed by Abas Majid in 1997) into Unicode standard. Ali-K fonts: *Alwand, Azzam, Hasan, Jiddah, kanaqen, Khalid, Sahifa, Sahifa Bold, Samik, Sayid, Sharif, Shrif Bold, Sulaimania, Traditional* ```cs -AsoSoftNormalization.AliK2Unicode("ئاشناكردنى خويَندكار بة طوَرِانكاريية كوَمةلاَيةتييةكان"); +AsoSoft.AliK2Unicode("ئاشناكردنى خويَندكار بة طوَرِانكاريية كوَمةلاَيةتييةكان"); >ئاشناکردنی خوێندکار بە گۆڕانکارییە کۆمەڵایەتییەکان< ``` ### AliWeb to Unicode `AliWeb2Unicode` converts Kurdish text written in AliK fonts into Unicode standard. Ali-Web fonts: *Malper, Malper Bold, Samik, Traditional, Traditional Bold* ```cs -AsoSoftNormalization.AliWeb2Unicode("هةر جةرةيانصکي مصذووُيي کة أوو دةدا"); +AsoSoft.AliWeb2Unicode("هةر جةرةيانصکي مصذووُيي کة أوو دةدا"); >ھەر جەرەیانێکی مێژوویی کە ڕوو دەدا< ``` ### Dylan to Unicode `Dylan2Unicode` converts Kurdish text written in Dylan fonts (developed by Dylan Saleh at [KurdSoft]( https://web.archive.org/web/20020528231610/http://www.kurdsoft.com/) in 2001) into Unicode standard. ```cs -AsoSoftNormalization.Dylan2Unicode("لثكؤلثنةران بؤيان دةركةوتووة كة دةتوانث بؤ لةش بةكةصك بث"); +AsoSoft.Dylan2Unicode("لثكؤلثنةران بؤيان دةركةوتووة كة دةتوانث بؤ لةش بةكةصك بث"); >لێکۆلێنەران بۆیان دەرکەوتووە کە دەتوانێ بۆ لەش بەکەڵک بێ< ``` ### Zarnegar to Unicode -`Zarnegar2Unicode` converts Kurdish text written in Zarnegar word processor (developed by [SinaSoft](http://www.sinasoft.com/fa/zarnegar.html) with RDF convertor by [NoorSoft](https://www.noorsoft.org/fa/software/view/6561)) and into Unicode standard. +`Zarnegar2Unicode` converts Kurdish text written in Zarnegar word processor (developed by [SinaSoft](http://www.sinasoft.com/fa/zarnegar.html) with RDF converter by [NoorSoft](https://www.noorsoft.org/fa/software/view/6561)) and into Unicode standard. ```cs -AsoSoftNormalization.Zarnegar2Unicode("بلٌيٌين و بگه‏رٍيٌين بوٌ هه‏لاٌلٌه‏ى سىٌيه‏مى فه‏لسه‏فه‏"); +AsoSoft.Zarnegar2Unicode("بلٌيٌين و بگه‏رٍيٌين بوٌ هه‏لاٌلٌه‏ى سىٌيه‏مى فه‏لسه‏فه‏"); >بڵێین و بگەڕێین بۆ هەڵاڵەی سێیەمی فەلسەفە< ``` ### NormalizePunctuations `NormalizePunctuations` corrects spaces before and after of the punctuations. When `seprateAllPunctuations` is true, ```cs -AsoSoftNormalization.NormalizePunctuations("دەقی«کوردی » و ڕێنووس ،((خاڵبەندی )) چۆنە ؟", false); +AsoSoft.NormalizePunctuations("دەقی«کوردی » و ڕێنووس ،((خاڵبەندی )) چۆنە ؟", false); >دەقی «کوردی» و ڕێنووس، «خاڵبەندی» چۆنە؟< ``` ### Trim Line Trim starting and ending white spaces (including zero width spaces) of line, `TrimLine` ```cs -AsoSoftNormalization.TrimLine(" دەق\u200c "); +AsoSoft.TrimLine(" دەق\u200c "); >دەق< ``` ### Replace Html Entities `ReplaceHtmlEntity` replaces HTML Entities with single Unicode characters (e.g. "é" with "é"). It is useful in web crawled corpora. ```cs -AsoSoftNormalization.ReplaceHtmlEntity("ئێوە "دەق" لە زمانی <کوردی> دەنووسن"); +AsoSoft.ReplaceHtmlEntity("ئێوە "دەق" لە زمانی <کوردی> دەنووسن"); >ئێوە "دەق" بە زمانی <کوردی> دەنووسن< ``` ### Replace URLs and emails @@ -111,29 +135,29 @@ AsoSoftNormalization.ReplaceHtmlEntity("ئێوە "دەق" لە زما ### Unify Numerals `UnifyNumerals` unifies numeral characters into desired numeral type from `en` (0123456789) or `ar` (٠١٢٣٤٥٦٧٨٩) ```cs -AsoSoftNormalization.UnifyNumerals("ژمارەکانی ٤٥٦ و ۴۵۶ و 456", "en"); +AsoSoft.UnifyNumerals("ژمارەکانی ٤٥٦ و ۴۵۶ و 456", "en"); >ژمارەکانی 456 و 456 و 456< ``` ### Seperate Digits from words `SeperateDigits` add a space between joined numerals and words (e.g. replacing "12کەس" with "12 کەس"). It improves language models. ```cs -AsoSoftNormalization.SeperateDigits("ساڵی1950دا1000دۆلاریان بە 5کەس دا"); ->ساڵی 1950 دا 1000 دۆلاریان بە 5 کەس دا< +AsoSoft.SeperateDigits("لە ساڵی1950دا1000دۆلاریان بە 5کەس دا"); +>لە ساڵی 1950 دا 1000 دۆلاریان بە 5 کەس دا< ``` -### Word for Word Replacment +### Word to Word Replacment `Word2WordReplacement` applies a "string to string" replacement dictionary on the text. It replaces the full-matched words not a part of them. ```cs var dict = new Dictionary() { { "مال", "ماڵ" } }; -AsoSoftNormalization.Word2WordReplacement("مال، نووری مالیکی", dict); +AsoSoft.Word2WordReplacement("مال، نووری مالیکی", dict); >ماڵ، نووری مالیکی< ``` -### Character for Character Replacment +### Character to Character Replacment `Char2CharReplacment` applies a "char to char" replacement dictionary on the text. It uses as the final step needed for some non-Unicode systems. -## Kurdish Numeral Convertor +## Kurdish Numeral converter It converts numerals into Central Kurdish words. It is useful in text-to-speech tools. - integers (1100 => ) - floats (10.11) @@ -142,21 +166,14 @@ It converts numerals into Central Kurdish words. It is useful in text-to-speech - querency marks ($100, £100, and €100) ```cs -AsoSoftNumerals.Number2Word("لە ساڵی 1999دا بڕی 40% لە پارەکەیان واتە $102.1 یان وەرگرت"); +AsoSoft.Number2Word("لە ساڵی 1999دا بڕی 40% لە پارەکەیان واتە $102.1 یان وەرگرت""); >لە ساڵی هەزار و نۆسەد و نەوەد و نۆدا بڕی چل لە سەد لە پارەکەیان واتە سەد و دوو پۆینت یەک دۆلاریان وەرگرت< ``` ## How to use? -In Microsoft Visual Studio, you have two choices: -- If you want to debug or change or customize the AsoSoft classes: - - inside Solution Explorer, right-click on your solution, click Add>Existing Project. - - Then right-click on your project, click Add>Project Reference... -- If you just use the AsoSoft classes: - - inside Solution Explorer, right-click on your project, click "Add Project Reference" - - click Browse, find "AsoSoftLibrary.dll", click Add. - -Then, insert `using AsoSoftLibrary;` into "Usings" of your class. +Install [AsoSoft Library package](https://www.nuget.org/packages/AsoSoftLibrary) via NuGet Gallery. +Then, insert `using AsoSoftLibrary;` into "Usings" of your codes. ## Development -AsoSoft Library is written in C# (.NET Core) and it is platform independent. -Using an IDE like Visual Studio 2017+ is recommended on Windows. Alternatively, VSCode should be the tool of choice on other platforms. +AsoSoft Library is developed and maintained by Aso Mahmudi. +AsoSoft Library is written in C# (.NET Core). \ No newline at end of file diff --git a/Sort.cs b/Sort.cs new file mode 100644 index 0000000..15729e5 --- /dev/null +++ b/Sort.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AsoSoftLibrary +{ + public static partial class AsoSoft + { + public static List KurdishSort(List inputList) + { + var ku = new List(); + ku.AddRange("ئءاآأإبپتثجچحخدڎڊذرڕزژسشصضطظعغفڤقكکگڴلڵمنوۆۊۉۋهھەیێ"); + return CustomSort(inputList, ku); + } + public static List CustomSort(List inputList, List inputOrder) + { + var baseChar = 62000;// 9472; + var order = new List(); + for (int i = 0; i < inputOrder.Count; i++) + order.Add((char)(baseChar + i)); + for (int i = 0; i < inputList.Count; i++) + for (int j = 0; j < order.Count; j++) + inputList[i] = inputList[i].Replace(inputOrder[j], order[j]); + inputList.Sort(); + for (int i = 0; i < inputList.Count; i++) + for (int j = 0; j < order.Count; j++) + inputList[i] = inputList[i].Replace(order[j], inputOrder[j]); + return inputList; + } + } +} diff --git a/Transliteration.cs b/Transliteration.cs new file mode 100644 index 0000000..ee446b7 --- /dev/null +++ b/Transliteration.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace AsoSoftLibrary +{ + public static partial class AsoSoft + { + + private static readonly string latinLetters = "a-zêîûçşéúıŕřĺɫƚḧẍḍṿʔ"; + + private static readonly Dictionary> TransliterationReplaces = new Dictionary> + { + {"LaDi2Ar", new List() { + "gh", "ẍ", + "hh", "ḧ", + "ll", "ɫ", + "rr", "ř" + }}, + {"La2Ar", new List() { + "\u201C", "«", + "\u201D", "»", + $"([0-9])([\'’-])([aeiouêîûéú])", "$1$3", // (e.g. 1990'an 5'ê) + "ʔ", "", // glottal stop + $"(^|[^{latinLetters}0-9\"’])([aeiouêîûéú])", "$1ئ$2", //insert initial hamza + "([aeouêîûéú])([aeiouêîûéú])", "$1ئ$2", //insert hamza between adjacent vowels + $"(ئ)([uû])([^{latinLetters}0-9])", "و$3", //omit the inserted hamza for "û" (=and) + "a", "ا", + "b", "ب", + "ç", "چ", + "c", "ج", + "d", "د", + "ḍ", "ڎ", // a Horami consonant + "ê|é", "ێ", + "e", "ە", + "f", "ف", + "g", "گ", + "h", "ه", + "ḧ", "ح", + "i|ı", "", + "î|y|í", "ی", + "j", "ژ", + "k", "ک", + "l", "ل", + "ɫ|ł|ƚ|Ɨ|ĺ", "ڵ", + "m", "م", + "n", "ن", + "ŋ", "نگ", + "o", "ۆ", + "ö", "وێ", + "p", "پ", + "q", "ق", + "r", "ر", + "ř|ŕ", "ڕ", + "s", "س", + "ş|š|ș|s̩", "ش", + "ṣ", "ص", + "t", "ت", + "ṭ", "ط", + "û|ú", "وو", + "u|w", "و", + "ü", "ۊ", + "v", "ڤ", + "x", "خ", + "ẍ", "غ", + "z", "ز", + "ه" + "($|[^ابپتجچحخدرڕزژسشصعغفڤقکگلڵمنوۆهەیێ])", "هـ" + "$1", // word-final h + "\"|’", "ئ", // need checking, not sure "ع" or "ئ" + "\\u003F", "؟", //question mark + ",", "،", //comma + ";", "؛" //semicolon + }} + }; + + /// Transliterating the Latin script into Arabic script of Kurdish (e.g. çak→چاک) + public static string La2Ar(string text) + { + text = replaceByList(text.ToLower(), TransliterationReplaces["La2ArMain"]); + return text; + } + + /// Transliterating the Latin script with digraphs into Arabic script of Kurdish (e.g. chall→چاڵ) + public static string LaDigraph2Ar(string text) + { + text = text.ToLower(); + text = replaceByList(text, TransliterationReplaces["LaDi2Ar"]); + text = replaceByList(text, TransliterationReplaces["La2Ar"]); + return text; + } + + /// Transliterating the Latin script into Arabic script of Kurdish (e.g. çak→چاک) + public static string Ar2La(string text) + { + return Phonemes2Hawar(G2P(text)); + } + /// Transliterating the Latin script into Arabic script of Kurdish (e.g. çak→چاک) + public static string Ar2LaSimple(string text) + { + text = Phonemes2Hawar(G2P(text)); + text = text.Replace("ḧ", "h"); + text = text.Replace("ř", "r"); + text = text.Replace("ł", "l"); + text = text.Replace("ẍ", "x"); + return text; + } + + /// Converts the output of the G2P into IPA (e.g. ˈdeˈçê→da.t͡ʃɛ) + public static string Phonemes2IPA(string text) + { + text = Regex.Replace(text, "(?<=(^|\\W))ˈ", ""); + text = Regex.Replace(text, "ˈ", "·"); //middle dot + foreach (var item in replaceFiles.Phoneme2IPA.Split('\n')) + text = text.Replace(item.Split('\t')[0], item.Split('\t')[1]); + return text; + } + + /// Converts the output of the G2P into Hawar (e.g. ˈʔeˈłêm→ełêm) + public static string Phonemes2Hawar(string text) + { + text = text.Replace("ˈ", ""); + text = Regex.Replace(text, "(?<=(^|\\W))ʔ", ""); + text = Regex.Replace(text, "[ʔƹ]", "’"); + return text; + } + + /// Converts the output of the G2P into Jira's ASCII format (e.g. ˈdeˈçim→D▪A▪CH▪M) + public static string Phonemes2ASCII(string text) + { + text = Regex.Replace(text, @"[iˈ]", ""); + foreach (var item in replaceFiles.Phoneme2Ascii.Split('\n')) + text = Regex.Replace(text, item.Split('\t')[0], item.Split('\t')[1] + "▪"); + return text; + } + } +} diff --git a/AsoSoftResources.Designer.cs b/replaceFiles.Designer.cs similarity index 87% rename from AsoSoftResources.Designer.cs rename to replaceFiles.Designer.cs index 5143e4d..c028480 100644 --- a/AsoSoftResources.Designer.cs +++ b/replaceFiles.Designer.cs @@ -19,17 +19,17 @@ namespace AsoSoftLibrary { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class AsoSoftResources { + public class replaceFiles { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal AsoSoftResources() { + internal replaceFiles() { } /// @@ -39,7 +39,7 @@ internal AsoSoftResources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AsoSoftLibrary.AsoSoftResources", typeof(AsoSoftResources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AsoSoftLibrary.replaceFiles", typeof(replaceFiles).Assembly); resourceMan = temp; } return resourceMan; @@ -60,62 +60,13 @@ internal AsoSoftResources() { } } - /// - /// Looks up a localized string similar to ʔ ʔ - ///b b - ///p p - ///t t - ///c d͡ʒ - ///ç t͡ʃ - ///ḧ ħ - ///x x - ///d d - ///r ɾ - ///ř r - ///z z - ///j ʒ - ///s s - ///ş ʃ - ///ƹ ʕ - ///ẍ ɣ - ///f f - ///v v - ///q q - ///k k - ///g g - ///l l - ///ł ɫ - ///m m - ///n n - ///w w - ///u ʊ - ///û u - ///o o̞ - ///h h - ///y j - ///a ä - ///e a - ///ê ɛ - ///i ɪ - ///î i - ///ĝ ŋ - ///đ đ - ///ü y - ///ô ô - ///õ õ. - /// - public static string G2P2IPA { - get { - return ResourceManager.GetString("G2P2IPA", resourceCulture); - } - } - /// /// Looks up a localized string similar to ڴ ĝ //Garusi Consonant ///ڎ đ //Hewrami Consonant - ///ۊ ü //Southern Vowel - ///ۉ ô //Hewrami Vowel - ///ۋ õ //Hewrami Vowel + ///ۉ ŵ //Hewrami Consonant + ///ݵ ė //Hewrami Vowel + ///ݸ ȯ //Hewrami Vowel + ///ۊ ẅ //Southern Vowel ///ئ ʔ ///ب b ///پ p @@ -153,11 +104,11 @@ public static string G2P2IPA { ///و(?=[aeêo]) w //before vowel ///(?<=[aeêo])ی y //after vowel ///ی(?=[aeêo]) y //before vowel - ///^([bcçdfghḧjklłmnpqrřsştvwxẍyzʔƹ])$ $1i //چ => çi. + ///^([bçdjl])$ $1i //چ => çi bcçdfghḧjklłmnpqrřsştvwxẍyzʔƹ. /// - public static string G2PCertainConversions { + public static string G2PCertain { get { - return ResourceManager.GetString("G2PCertainConversions", resourceCulture); + return ResourceManager.GetString("G2PCertain", resourceCulture); } } @@ -175,50 +126,6 @@ public static string G2PExceptions { } } - /// - /// Looks up a localized string similar to ʔ EH - ///a AA - ///b B - ///p P - ///t T - ///c JE - ///ç CH - ///ḧ HE - ///x X - ///d D - ///r R - ///ř RR - ///z Z - ///j ZH - ///s S - ///ş SH - ///ƹ AH - ///ẍ XE - ///f F - ///v V - ///q Q - ///k K - ///g G - ///l L - ///ł LL - ///m M - ///n N - ///o O - ///e A - ///h H - ///ê E - ///î I - ///y Y - ///w W - ///u U - ///û UU. - /// - public static string G2PReplaces { - get { - return ResourceManager.GetString("G2PReplaces", resourceCulture); - } - } - /// /// Looks up a localized string similar to 066A 0025 //Arabic PERCENT SIGN ///066B 002E //Arabic DECIMAL SEPARATOR @@ -250,9 +157,9 @@ public static string G2PReplaces { ///0699 0698 // ڙ ///076B 06 [rest of string was truncated]";. /// - public static string NormalizerReplacesOptional { + public static string NormalizerAdditional { get { - return ResourceManager.GetString("NormalizerReplacesOptional", resourceCulture); + return ResourceManager.GetString("NormalizerAdditional", resourceCulture); } } @@ -278,9 +185,103 @@ public static string NormalizerReplacesOptional { ///2003 0020 //EM SPACE ///2004 0020 //THREE [rest of string was truncated]";. /// - public static string NormalizerReplacesRequierd { + public static string NormalizerDeep { + get { + return ResourceManager.GetString("NormalizerDeep", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ʔ EH + ///a AA + ///b B + ///p P + ///t T + ///c JE + ///ç CH + ///ḧ HE + ///x X + ///d D + ///r R + ///ř RR + ///z Z + ///j ZH + ///s S + ///ş SH + ///ƹ AH + ///ẍ XE + ///f F + ///v V + ///q Q + ///k K + ///g G + ///l L + ///ł LL + ///m M + ///n N + ///o O + ///e A + ///h H + ///ê E + ///î I + ///y Y + ///w W + ///u U + ///û UU. + /// + public static string Phoneme2Ascii { + get { + return ResourceManager.GetString("Phoneme2Ascii", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ʔ ʔ + ///b b + ///p p + ///t t + ///c d͡ʒ + ///ç t͡ʃ + ///ḧ ħ + ///x x + ///d d + ///r ɾ + ///ř r + ///z z + ///j ʒ + ///s s + ///ş ʃ + ///ƹ ʕ + ///ẍ ɣ + ///f f + ///v v + ///q q + ///k k + ///g g + ///l l + ///ł ɫ + ///m m + ///n n + ///w w + ///u ʊ + ///û u + ///o o̞ + ///h h + ///y j + ///a ä + ///e a + ///ê ɛ + ///i ɪ + ///î i + ///ĝ ŋ + ///đ đ + ///ü y + ///ô ô + ///õ õ. + /// + public static string Phoneme2IPA { get { - return ResourceManager.GetString("NormalizerReplacesRequierd", resourceCulture); + return ResourceManager.GetString("Phoneme2IPA", resourceCulture); } } } diff --git a/AsoSoftResources.resx b/replaceFiles.resx similarity index 81% rename from AsoSoftResources.resx rename to replaceFiles.resx index f244f4e..a9ab131 100644 --- a/AsoSoftResources.resx +++ b/replaceFiles.resx @@ -118,10 +118,22 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Resources\NormalizerReplacesOptional.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + resources\G2PCertain.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - Resources\NormalizerReplacesRequierd.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + resources\G2PExceptions.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + resources\NormalizeUnicodeAdditional.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + resources\NormalizeUnicodeDeep.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + resources\Phoneme2Ascii.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + resources\Phoneme2IPA.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 \ No newline at end of file diff --git a/resources/G2PCertain.txt b/resources/G2PCertain.txt new file mode 100644 index 0000000..7bcee10 --- /dev/null +++ b/resources/G2PCertain.txt @@ -0,0 +1,44 @@ +ڴ ĝ //Garusi Consonant +ڎ đ //Hewrami Consonant +ۉ ŵ //Hewrami Consonant +ݵ ė //Hewrami Vowel +ݸ ȯ //Hewrami Vowel +ۊ ẅ //Southern Vowel +ئ ʔ +ب b +پ p +ت t +ج c +چ ç +ح ḧ +خ x +د d +ر r +ڕ ř +ز z +ژ j +س s +ش ş +ع ƹ +غ ẍ +ف f +ڤ v +ق q +ک k +گ g +ل l +ڵ ł +م m +ن n +ه h +ا a +ۆ o +ە e +ێ ê +^ی y +^و w +(?<=[aeêo])و w //after vowel +و(?=[aeêo]) w //before vowel +(?<=[aeêo])ی y //after vowel +ی(?=[aeêo]) y //before vowel +^([bçdjl])$ $1i //چ => çi bcçdfghḧjklłmnpqrřsştvwxẍyzʔƹ \ No newline at end of file diff --git a/resources/G2PExceptions.txt b/resources/G2PExceptions.txt new file mode 100644 index 0000000..0da1c2f --- /dev/null +++ b/resources/G2PExceptions.txt @@ -0,0 +1,6 @@ +حەییی ḧeyyî +تەییی teyyî +ئاگر ʔagir +قانع qaniƹ +سالم salim +عاشق ƹaşiq \ No newline at end of file diff --git a/Resources/NormalizerReplacesOptional.txt b/resources/NormalizeUnicodeAdditional.txt similarity index 100% rename from Resources/NormalizerReplacesOptional.txt rename to resources/NormalizeUnicodeAdditional.txt diff --git a/Resources/NormalizerReplacesRequierd.txt b/resources/NormalizeUnicodeDeep.txt similarity index 100% rename from Resources/NormalizerReplacesRequierd.txt rename to resources/NormalizeUnicodeDeep.txt diff --git a/resources/Phoneme2Ascii.txt b/resources/Phoneme2Ascii.txt new file mode 100644 index 0000000..a15b1be --- /dev/null +++ b/resources/Phoneme2Ascii.txt @@ -0,0 +1,36 @@ +ʔ EH +a AA +b B +p P +t T +c JE +ç CH +ḧ HE +x X +d D +r R +ř RR +z Z +j ZH +s S +ş SH +ƹ AH +ẍ XE +f F +v V +q Q +k K +g G +l L +ł LL +m M +n N +o O +e A +h H +ê E +î I +y Y +w W +u U +û UU \ No newline at end of file diff --git a/resources/Phoneme2IPA.txt b/resources/Phoneme2IPA.txt new file mode 100644 index 0000000..01d8e47 --- /dev/null +++ b/resources/Phoneme2IPA.txt @@ -0,0 +1,42 @@ +ʔ ʔ +b b +p p +t t +c d͡ʒ +ç t͡ʃ +ḧ ħ +x x +d d +r ɾ +ř r +z z +j ʒ +s s +ş ʃ +ƹ ʕ +ẍ ɣ +f f +v v +q q +k k +g g +l l +ł ɫ +m m +n n +w w +u ʊ +û u +o o̞ +h h +y j +a ä +e a +ê ɛ +i ɪ +î i +ĝ ŋ +đ đ +ü y +ô ô +õ õ \ No newline at end of file