Ezhil-Language-Foundation / open-tamil

Open Source Tamil NLP Tools - தமிழ் இயற்கை மொழி பகுப்பாய்வு நிரல்தொகுப்பு
http://tamilpesu.us
MIT License
266 stars 82 forks source link

txt2unicode - dinakaran2utf8 - conversion issues #216

Closed Natkeeran closed 3 years ago

Natkeeran commented 4 years ago

We are using Open Tamil to convert dinakaran2utf8 text files to unicode. Running into some conversion issues.

Is there a standard for dinakaran to Tamil characters?

I can submit a PR with the changes following Suratha's mapping.

The following is the dinakaran source text:

bjhFjp - 01
bjhlf;fj;jpy; - A 
Kd;bdhU fhyj;jpy; bghd;dp ehl;oy; fhuhsh;fs; njhd;wpa tuyhW. 

bjhFg;ghsh; :
    thU';fs*; thU';fs; *  ehd; bghd;dpts ehl;il Mz;l fhuhs FLk;gj;ijg; gw;wpa fijia cdf;Fr; brhy;yg; nghfpnwd;. ,e;jf; fij cd;Dila fhyj;jpnyh my;yJ vd;Dila fhyj;jpnyh ele;jJ ,y;iy.  mJ nrhH kd;dh; fhyj;jpy; b;jd; ,e;jpahtpy; ele;jJ.
    nfhyhj;jhf; ft[z;lh;/ mhpaehr;rp mtUila kfd; Fd;dilahf; ft[z;lh;. Fd;dilahf; ft[z;lh;/ jhkiu mth;fSila \d;W gps;isfs; bghd;dh;/ r';fh;/ j';fhs; vd;fpw ,th;fs;jhd; ehl;il Mz;l fhuhsh;fs;.
    mth;fSila ngUk;/ g[fGk; ,d;Wk; ngrg; gLfpwJ.  nfhyhj;jht[k;/ mhpaehr;rpa[k;/   tsk;kpf;f brHpg;ghd/ fhnthp MW ghaf;Toa epyj;jpy; thH;e;jhh;fs;. ,e;jf; fijia ehd; brhy;tjw;F Kd;dhy; cyfj;jpw;nf \y Kjy; flt[shd fzgjpiaa[k;/ ru!;tjpiaa[k; vd;id Mrph;tjpf;FkhW ehd; ntz;Lfpnwd;.
Scene – A 
bjhFg;ghsh; :
    xU ehs; ghh;tjpa[k; rptDk; kfpHr;rpahf xd;whf mkh;e;J ,Ue;jdh;.

rptd; 

Suratha reader (http://www.suratha.com/reader.htm) gives the following conversion. The mapping can be found here: http://www.suratha.com/JS/dinakaran.js

தொகுதி - 01
தொடக்கத்தில் - A 
முன்னொரு காலத்தில் பொன்னி நாட்டில் காராளர்கள் தோன்றிய வரலாறு. 

தொகுப்பாளர் ்
    வாருங்கள*; வாருங்கள் *  நான் பொன்னிவள நாட்டை ஆண்ட காராள குடும்பத்தைப் பற்றிய கதையை உனக்குச் சொல்லப் போகிறேன். இந்தக் கதை உன்னுடைய காலத்திலோ அல்லது என்னுடைய காலத்திலோ நடந்தது இல்லை.  அது சோழ மன்னர் காலத்தில் b;தன் இந்தியாவில் நடந்தது.
    கோலாத்தாக் கவுண்டர், அhpயநாச்சி அவருடைய மகன் குன்னடையாக் கவுண்டர். குன்னடையாக் கவுண்டர், தாமரை அவர்களுடைய மூன்று பிள்ளைகள் பொன்னர், சங்கர், தங்காள் என்கிற இவர்கள்தான் நாட்டை ஆண்ட காராளர்கள்.
    அவர்களுடைய பேரும், புகழும் இன்றும் பேசப் படுகிறது.  கோலாத்தாவும், அhpயநாச்சியும்,   வளம்மிக்க செழிப்பான, காவோp ஆறு பாயக்கூடிய நிலத்தில் வாழ்ந்தார்கள். இந்தக் கதையை நான் சொல்வதற்கு முன்னால் உலகத்திற்கே மூல முதல் கடவுளான கணபதியையும், சரஸ்வதியையும் என்னை ஆசிர்வதிக்குமாறு நான் வேண்டுகிறேன்.
ளுஉநநே – A 
தொகுப்பாளர் ்
    ஒரு நாள் பார்வதியும் சிவனும் மகிழச்சியாக ஒன்றhக அமர்ந்து இருந்தனர்.

சிவன் 

The Open-Tamil conversion gives the following result:

தொகுதி - 01
தொடக்கத்திலப் - A 
முன்னொரு காலத்திலப் பொன்னி நாட்டிலப் காரபாளர்களப் தோன்றபிய வரலபாறு. 

தொகுபப்பபாளர் ்
    வபாருங்கள*ப் வபாருங்களப் *  நான் பொன்னிவள நாட்டை ஆண்ட காரபாள குடுமப்பத்தைபப் பறப்றபிய கதையை உனக்குச் சொலப்லபப் போகிறேன். இந்தக் கதை உன்னுடைய காலத்திலேபா அலப்லது என்னுடைய காலத்திலேபா நடந்தது இலப்லை.  அது சோழ மன்னர் காலத்திலப் bப்தன் இந்தியபாவபிலப் நடந்தது.
    கோலபாத்தாக் கவ[ண்டர்/ அபாபியநாச்சி அவருடைய மகன் குன்னடையபாக் கவ[ண்டர். குன்னடையபாக் கவ[ண்டர்/ தாமரை அவர்களுடைய மூன்று பபிளப்ளைகளப் பொன்னர்/ சங்கர்/ தங்காளப் என்கிற இவர்களப்தான் நாட்டை ஆண்ட காரபாளர்களப்.
    அவர்களுடைய பேருமப்/ ப[கழுமப் இன்றுமப் பேசபப் படுகிறது.  கோலபாத்தாவ[மப்/ அபாபியநாச்சிய[மப்/   வளமப்மபிக்க செழபிபப்பபான/ காவேபாபி ஆறு பபாயக்கூடிய நிலத்திலப் வபாழப்ந்தார்களப். இந்தக் கதையை நான் சொலப்வதறப்கு முன்னாலப் உலகத்திறப்கே மூல முதலப் கடவ[ளபான கணபதியைய[மப்/ சரஸப்வதியைய[மப் என்னை ஆசிர்வதிக்குமபாறு நான் வேண்டுகிறேன்.
ளுஉநநே – A 
தொகுபப்பபாளர் ்
    ஒரு நாளப் பபார்வதிய[மப் சிவனுமப் மகிழச்சியபாக ஒன்றபாக அமர்ந்து இருந்தனர்.

சிவன்
arcturusannamalai commented 4 years ago

@Natkeeran - this is contributed by @arulalant - I am not expert on this. However, to support a encoding we need to see if encoding 'code point' aligns with the glyph in Open-Tamil converter table. Clearly, we can debug this situation by typing each of 247 letters in Tamil in the said font-based encoding Dinakaran standard TTF and checking against our conversion table; @tshrinivasan wrote a blog on this process https://goinggnu.wordpress.com/2014/06/26/how-to-get-character-map-of-a-ttf-font/.

It is possible we have multiple Dinakaran fonts and their encoding tables are slightly different.

Please investigate and suggest a PR. HTH -Muthu

arcturusannamalai commented 4 years ago

One investigation gives following encoding table for the font "dinakaran2w-webfont.ttf "

 pprint.pprint(f.getBestCmap())
{32: 'space',
 33: 'exclam',
 34: 'quotedbl',
 35: 'numbersign',
 36: 'dollar',
 37: 'percent',
 38: 'ampersand',
 39: 'quotesingle',
 40: 'parenleft',
 41: 'parenright',
 42: 'asterisk',
 43: 'plus',
 44: 'comma',
 45: 'hyphen',
 46: 'period',
 47: 'slash',
 48: 'zero',
 49: 'one',
 50: 'two',
 51: 'three',
 52: 'four',
 53: 'five',
 54: 'six',
 55: 'seven',
 56: 'eight',
 57: 'nine',
 58: 'colon',
 59: 'semicolon',
 60: 'less',
 61: 'equal',
 62: 'greater',
 63: 'question',
 64: 'at',
 65: 'A',
 66: 'B',
 67: 'C',
 68: 'D',
 69: 'E',
 70: 'F',
 71: 'G',
 72: 'H',
 73: 'I',
 74: 'J',
 75: 'K',
 76: 'L',
 77: 'M',
 78: 'N',
 79: 'O',
 80: 'P',
 81: 'Q',
 82: 'R',
 83: 'S',
 84: 'T',
 85: 'U',
 86: 'V',
 87: 'W',
 88: 'X',
 89: 'Y',
 90: 'Z',
 91: 'bracketleft',
 92: 'backslash',
 93: 'bracketright',
 94: 'asciicircum',
 95: 'underscore',
 96: 'grave',
 97: 'a',
 98: 'b',
 99: 'c',
 100: 'd',
 101: 'e',
 102: 'f',
 103: 'g',
 104: 'h',
 105: 'i',
 106: 'j',
 107: 'k',
 108: 'l',
 109: 'm',
 110: 'n',
 111: 'o',
 112: 'p',
 113: 'q',
 114: 'r',
 115: 's',
 116: 't',
 117: 'u',
 118: 'v',
 119: 'w',
 120: 'x',
 121: 'y',
 122: 'z',
 123: 'braceleft',
 124: 'bar',
 125: 'braceright',
 126: 'asciitilde',
 161: 'exclamdown',
 162: 'cent',
 163: 'sterling',
 164: 'currency',
 165: 'yen',
 166: 'brokenbar',
 167: 'section',
 168: 'dieresis',
 169: 'copyright',
 170: 'ordfeminine',
 171: 'guillemotleft',
 172: 'logicalnot',
 173: 'uni00AD',
 174: 'registered',
 175: 'macron',
 176: 'degree',
 177: 'plusminus',
 178: 'uni00B2',
 179: 'uni00B3',
 180: 'acute',
 181: 'uni00B5',
 182: 'paragraph',
 183: 'periodcentered',
 184: 'cedilla',
 185: 'uni00B9',
 186: 'ordmasculine',
 187: 'guillemotright',
 188: 'onequarter',
 189: 'onehalf',
 190: 'threequarters',
 191: 'questiondown',
 192: 'Agrave',
 193: 'Aacute',
 194: 'Acircumflex',
 195: 'Atilde',
 196: 'Adieresis',
 197: 'Aring',
 198: 'AE',
 199: 'Ccedilla',
 200: 'Egrave',
 201: 'Eacute',
 202: 'Ecircumflex',
 203: 'Edieresis',
 204: 'Igrave',
 205: 'Iacute',
 206: 'Icircumflex',
 207: 'Idieresis',
 208: 'Eth',
 209: 'Ntilde',
 210: 'Ograve',
 211: 'Oacute',
 212: 'Ocircumflex',
 213: 'Otilde',
 214: 'Odieresis',
 215: 'multiply',
 216: 'Oslash',
 217: 'Ugrave',
 218: 'Uacute',
 219: 'Ucircumflex',
 220: 'Udieresis',
 221: 'Yacute',
 222: 'Thorn',
 223: 'germandbls',
 224: 'agrave',
 225: 'aacute',
 226: 'acircumflex',
 227: 'atilde',
 228: 'adieresis',
 229: 'aring',
 230: 'ae',
 231: 'ccedilla',
 232: 'egrave',
 233: 'eacute',
 234: 'ecircumflex',
 235: 'edieresis',
 236: 'igrave',
 237: 'iacute',
 238: 'icircumflex',
 239: 'idieresis',
 240: 'eth',
 241: 'ntilde',
 242: 'ograve',
 243: 'oacute',
 244: 'ocircumflex',
 245: 'otilde',
 246: 'odieresis',
 247: 'divide',
 248: 'oslash',
 249: 'ugrave',
 250: 'uacute',
 251: 'ucircumflex',
 252: 'udieresis',
 253: 'yacute',
 254: 'thorn',
 255: 'ydieresis',
 338: 'OE',
 339: 'oe',
 352: 'Scaron',
 353: 'scaron',
 376: 'Ydieresis',
 402: 'florin',
 710: 'circumflex',
 732: 'tilde',
 2404: 'uni0964',
 2405: 'uni0965',
 2947: 'uni0B83',
 2949: 'uni0B85',
 2950: 'uni0B86',
 2951: 'uni0B87',
 2952: 'uni0B88',
 2953: 'uni0B89',
 2954: 'uni0B8A',
 2958: 'uni0B8E',
 2959: 'uni0B8F',
 2960: 'uni0B90',
 2962: 'uni0B92',
 2963: 'uni0B93',
 2964: 'uni0B94',
 2965: 'uni0B95',
 2969: 'uni0B99',
 2970: 'uni0B9A',
 2972: 'uni0B9C',
 2974: 'uni0B9E',
 2975: 'uni0B9F',
 2979: 'uni0BA3',
 2980: 'uni0BA4',
 2984: 'uni0BA8',
 2985: 'uni0BA9',
 2986: 'uni0BAA',
 2990: 'uni0BAE',
 2991: 'uni0BAF',
 2992: 'uni0BB0',
 2993: 'uni0BB1',
 2994: 'uni0BB2',
 2995: 'uni0BB3',
 2996: 'uni0BB4',
 2997: 'uni0BB5',
 2998: 'uni0BB6',
 2999: 'uni0BB7',
 3000: 'uni0BB8',
 3001: 'uni0BB9',
 3006: 'uni0BBE',
 3007: 'uni0BBF',
 3008: 'uni0BC0',
 3009: 'uni0BC1',
 3010: 'uni0BC2',
 3014: 'uni0BC6',
 3015: 'uni0BC7',
 3016: 'uni0BC8',
 3018: 'uni0BCA',
 3019: 'uni0BCB',
 3020: 'uni0BCC',
 3021: 'uni0BCD',
 3024: 'uni0BD0',
 3031: 'uni0BD7',
 3047: 'uni0BE7',
 3048: 'uni0BE8',
 3049: 'uni0BE9',
 3050: 'uni0BEA',
 3051: 'uni0BEB',
 3052: 'uni0BEC',
 3053: 'uni0BED',
 3054: 'uni0BEE',
 3055: 'uni0BEF',
 3056: 'uni0BF0',
 3057: 'uni0BF1',
 3058: 'uni0BF2',
 3059: 'uni0BF3',
 3060: 'uni0BF4',
 3061: 'uni0BF5',
 3062: 'uni0BF6',
 3063: 'uni0BF7',
 3064: 'uni0BF8',
 3065: 'uni0BF9',
 3066: 'uni0BFA',
 8204: 'afii61664',
 8205: 'afii301',
 8211: 'endash',
 8212: 'emdash',
 8216: 'quoteleft',
 8217: 'quoteright',
 8218: 'quotesinglbase',
 8220: 'quotedblleft',
 8221: 'quotedblright',
 8222: 'quotedblbase',
 8224: 'dagger',
 8225: 'daggerdbl',
 8226: 'bullet',
 8230: 'ellipsis',
 8240: 'perthousand',
 8249: 'guilsinglleft',
 8250: 'guilsinglright',
 8364: 'Euro',
 8482: 'trademark',
 8722: 'minus',
 9676: 'uni25CC',
 57344: 'uniE000'}

32 => space | LATIN SMALL LETTER S 33 => exclam | LATIN SMALL LETTER E 34 => quotedbl | LATIN SMALL LETTER Q 35 => numbersign | LATIN SMALL LETTER N 36 => dollar | LATIN SMALL LETTER D 37 => percent | LATIN SMALL LETTER P 38 => ampersand | LATIN SMALL LETTER A 39 => quotesingle | LATIN SMALL LETTER Q 40 => parenleft | LATIN SMALL LETTER P 41 => parenright | LATIN SMALL LETTER P 42 => asterisk | LATIN SMALL LETTER A 43 => plus | LATIN SMALL LETTER P 44 => comma | LATIN SMALL LETTER C 45 => hyphen | LATIN SMALL LETTER H 46 => period | LATIN SMALL LETTER P 47 => slash | LATIN SMALL LETTER S 48 => zero | LATIN SMALL LETTER Z 49 => one | LATIN SMALL LETTER O 50 => two | LATIN SMALL LETTER T 51 => three | LATIN SMALL LETTER T 52 => four | LATIN SMALL LETTER F 53 => five | LATIN SMALL LETTER F 54 => six | LATIN SMALL LETTER S 55 => seven | LATIN SMALL LETTER S 56 => eight | LATIN SMALL LETTER E 57 => nine | LATIN SMALL LETTER N 58 => colon | LATIN SMALL LETTER C 59 => semicolon | LATIN SMALL LETTER S 60 => less | LATIN SMALL LETTER L 61 => equal | LATIN SMALL LETTER E 62 => greater | LATIN SMALL LETTER G 63 => question | LATIN SMALL LETTER Q 64 => at | LATIN SMALL LETTER A 65 => A | LATIN CAPITAL LETTER A 66 => B | LATIN CAPITAL LETTER B 67 => C | LATIN CAPITAL LETTER C 68 => D | LATIN CAPITAL LETTER D 69 => E | LATIN CAPITAL LETTER E 70 => F | LATIN CAPITAL LETTER F 71 => G | LATIN CAPITAL LETTER G 72 => H | LATIN CAPITAL LETTER H 73 => I | LATIN CAPITAL LETTER I 74 => J | LATIN CAPITAL LETTER J 75 => K | LATIN CAPITAL LETTER K 76 => L | LATIN CAPITAL LETTER L 77 => M | LATIN CAPITAL LETTER M 78 => N | LATIN CAPITAL LETTER N 79 => O | LATIN CAPITAL LETTER O 80 => P | LATIN CAPITAL LETTER P 81 => Q | LATIN CAPITAL LETTER Q 82 => R | LATIN CAPITAL LETTER R 83 => S | LATIN CAPITAL LETTER S 84 => T | LATIN CAPITAL LETTER T 85 => U | LATIN CAPITAL LETTER U 86 => V | LATIN CAPITAL LETTER V 87 => W | LATIN CAPITAL LETTER W 88 => X | LATIN CAPITAL LETTER X 89 => Y | LATIN CAPITAL LETTER Y 90 => Z | LATIN CAPITAL LETTER Z 91 => bracketleft | LATIN SMALL LETTER B 92 => backslash | LATIN SMALL LETTER B 93 => bracketright | LATIN SMALL LETTER B 94 => asciicircum | LATIN SMALL LETTER A 95 => underscore | LATIN SMALL LETTER U 96 => grave | LATIN SMALL LETTER G 97 => a | LATIN SMALL LETTER A 98 => b | LATIN SMALL LETTER B 99 => c | LATIN SMALL LETTER C 100 => d | LATIN SMALL LETTER D 101 => e | LATIN SMALL LETTER E 102 => f | LATIN SMALL LETTER F 103 => g | LATIN SMALL LETTER G 104 => h | LATIN SMALL LETTER H 105 => i | LATIN SMALL LETTER I 106 => j | LATIN SMALL LETTER J 107 => k | LATIN SMALL LETTER K 108 => l | LATIN SMALL LETTER L 109 => m | LATIN SMALL LETTER M 110 => n | LATIN SMALL LETTER N 111 => o | LATIN SMALL LETTER O 112 => p | LATIN SMALL LETTER P 113 => q | LATIN SMALL LETTER Q 114 => r | LATIN SMALL LETTER R 115 => s | LATIN SMALL LETTER S 116 => t | LATIN SMALL LETTER T 117 => u | LATIN SMALL LETTER U 118 => v | LATIN SMALL LETTER V 119 => w | LATIN SMALL LETTER W 120 => x | LATIN SMALL LETTER X 121 => y | LATIN SMALL LETTER Y 122 => z | LATIN SMALL LETTER Z 123 => braceleft | LATIN SMALL LETTER B 124 => bar | LATIN SMALL LETTER B 125 => braceright | LATIN SMALL LETTER B 126 => asciitilde | LATIN SMALL LETTER A 161 => exclamdown | LATIN SMALL LETTER E 162 => cent | LATIN SMALL LETTER C 163 => sterling | LATIN SMALL LETTER S 164 => currency | LATIN SMALL LETTER C 165 => yen | LATIN SMALL LETTER Y 166 => brokenbar | LATIN SMALL LETTER B 167 => section | LATIN SMALL LETTER S 168 => dieresis | LATIN SMALL LETTER D 169 => copyright | LATIN SMALL LETTER C 170 => ordfeminine | LATIN SMALL LETTER O 171 => guillemotleft | LATIN SMALL LETTER G 172 => logicalnot | LATIN SMALL LETTER L 173 => ­ | SOFT HYPHEN 174 => registered | LATIN SMALL LETTER R 175 => macron | LATIN SMALL LETTER M 176 => degree | LATIN SMALL LETTER D 177 => plusminus | LATIN SMALL LETTER P 178 => ² | SUPERSCRIPT TWO 179 => ³ | SUPERSCRIPT THREE 180 => acute | LATIN SMALL LETTER A 181 => µ | MICRO SIGN 182 => paragraph | LATIN SMALL LETTER P 183 => periodcentered | LATIN SMALL LETTER P 184 => cedilla | LATIN SMALL LETTER C 185 => ¹ | SUPERSCRIPT ONE 186 => ordmasculine | LATIN SMALL LETTER O 187 => guillemotright | LATIN SMALL LETTER G 188 => onequarter | LATIN SMALL LETTER O 189 => onehalf | LATIN SMALL LETTER O 190 => threequarters | LATIN SMALL LETTER T 191 => questiondown | LATIN SMALL LETTER Q 192 => Agrave | LATIN CAPITAL LETTER A 193 => Aacute | LATIN CAPITAL LETTER A 194 => Acircumflex | LATIN CAPITAL LETTER A 195 => Atilde | LATIN CAPITAL LETTER A 196 => Adieresis | LATIN CAPITAL LETTER A 197 => Aring | LATIN CAPITAL LETTER A 198 => AE | LATIN CAPITAL LETTER A 199 => Ccedilla | LATIN CAPITAL LETTER C 200 => Egrave | LATIN CAPITAL LETTER E 201 => Eacute | LATIN CAPITAL LETTER E 202 => Ecircumflex | LATIN CAPITAL LETTER E 203 => Edieresis | LATIN CAPITAL LETTER E 204 => Igrave | LATIN CAPITAL LETTER I 205 => Iacute | LATIN CAPITAL LETTER I 206 => Icircumflex | LATIN CAPITAL LETTER I 207 => Idieresis | LATIN CAPITAL LETTER I 208 => Eth | LATIN CAPITAL LETTER E 209 => Ntilde | LATIN CAPITAL LETTER N 210 => Ograve | LATIN CAPITAL LETTER O 211 => Oacute | LATIN CAPITAL LETTER O 212 => Ocircumflex | LATIN CAPITAL LETTER O 213 => Otilde | LATIN CAPITAL LETTER O 214 => Odieresis | LATIN CAPITAL LETTER O 215 => multiply | LATIN SMALL LETTER M 216 => Oslash | LATIN CAPITAL LETTER O 217 => Ugrave | LATIN CAPITAL LETTER U 218 => Uacute | LATIN CAPITAL LETTER U 219 => Ucircumflex | LATIN CAPITAL LETTER U 220 => Udieresis | LATIN CAPITAL LETTER U 221 => Yacute | LATIN CAPITAL LETTER Y 222 => Thorn | LATIN CAPITAL LETTER T 223 => germandbls | LATIN SMALL LETTER G 224 => agrave | LATIN SMALL LETTER A 225 => aacute | LATIN SMALL LETTER A 226 => acircumflex | LATIN SMALL LETTER A 227 => atilde | LATIN SMALL LETTER A 228 => adieresis | LATIN SMALL LETTER A 229 => aring | LATIN SMALL LETTER A 230 => ae | LATIN SMALL LETTER A 231 => ccedilla | LATIN SMALL LETTER C 232 => egrave | LATIN SMALL LETTER E 233 => eacute | LATIN SMALL LETTER E 234 => ecircumflex | LATIN SMALL LETTER E 235 => edieresis | LATIN SMALL LETTER E 236 => igrave | LATIN SMALL LETTER I 237 => iacute | LATIN SMALL LETTER I 238 => icircumflex | LATIN SMALL LETTER I 239 => idieresis | LATIN SMALL LETTER I 240 => eth | LATIN SMALL LETTER E 241 => ntilde | LATIN SMALL LETTER N 242 => ograve | LATIN SMALL LETTER O 243 => oacute | LATIN SMALL LETTER O 244 => ocircumflex | LATIN SMALL LETTER O 245 => otilde | LATIN SMALL LETTER O 246 => odieresis | LATIN SMALL LETTER O 247 => divide | LATIN SMALL LETTER D 248 => oslash | LATIN SMALL LETTER O 249 => ugrave | LATIN SMALL LETTER U 250 => uacute | LATIN SMALL LETTER U 251 => ucircumflex | LATIN SMALL LETTER U 252 => udieresis | LATIN SMALL LETTER U 253 => yacute | LATIN SMALL LETTER Y 254 => thorn | LATIN SMALL LETTER T 255 => ydieresis | LATIN SMALL LETTER Y 338 => OE | LATIN CAPITAL LETTER O 339 => oe | LATIN SMALL LETTER O 352 => Scaron | LATIN CAPITAL LETTER S 353 => scaron | LATIN SMALL LETTER S 376 => Ydieresis | LATIN CAPITAL LETTER Y 402 => florin | LATIN SMALL LETTER F 710 => circumflex | LATIN SMALL LETTER C 732 => tilde | LATIN SMALL LETTER T 2404 => । | DEVANAGARI DANDA 2405 => ॥ | DEVANAGARI DOUBLE DANDA 2947 => ஃ | TAMIL SIGN VISARGA 2949 => அ | TAMIL LETTER A 2950 => ஆ | TAMIL LETTER AA 2951 => இ | TAMIL LETTER I 2952 => ஈ | TAMIL LETTER II 2953 => உ | TAMIL LETTER U 2954 => ஊ | TAMIL LETTER UU 2958 => எ | TAMIL LETTER E 2959 => ஏ | TAMIL LETTER EE 2960 => ஐ | TAMIL LETTER AI 2962 => ஒ | TAMIL LETTER O 2963 => ஓ | TAMIL LETTER OO 2964 => ஔ | TAMIL LETTER AU 2965 => க | TAMIL LETTER KA 2969 => ங | TAMIL LETTER NGA 2970 => ச | TAMIL LETTER CA 2972 => ஜ | TAMIL LETTER JA 2974 => ஞ | TAMIL LETTER NYA 2975 => ட | TAMIL LETTER TTA 2979 => ண | TAMIL LETTER NNA 2980 => த | TAMIL LETTER TA 2984 => ந | TAMIL LETTER NA 2985 => ன | TAMIL LETTER NNNA 2986 => ப | TAMIL LETTER PA 2990 => ம | TAMIL LETTER MA 2991 => ய | TAMIL LETTER YA 2992 => ர | TAMIL LETTER RA 2993 => ற | TAMIL LETTER RRA 2994 => ல | TAMIL LETTER LA 2995 => ள | TAMIL LETTER LLA 2996 => ழ | TAMIL LETTER LLLA 2997 => வ | TAMIL LETTER VA 2998 => ஶ | TAMIL LETTER SHA 2999 => ஷ | TAMIL LETTER SSA 3000 => ஸ | TAMIL LETTER SA 3001 => ஹ | TAMIL LETTER HA 3006 => ா | TAMIL VOWEL SIGN AA 3007 => ி | TAMIL VOWEL SIGN I 3008 => ீ | TAMIL VOWEL SIGN II 3009 => ு | TAMIL VOWEL SIGN U 3010 => ூ | TAMIL VOWEL SIGN UU 3014 => ெ | TAMIL VOWEL SIGN E 3015 => ே | TAMIL VOWEL SIGN EE 3016 => ை | TAMIL VOWEL SIGN AI 3018 => ொ | TAMIL VOWEL SIGN O 3019 => ோ | TAMIL VOWEL SIGN OO 3020 => ௌ | TAMIL VOWEL SIGN AU 3021 => ் | TAMIL SIGN VIRAMA 3024 => ௐ | TAMIL OM 3031 => ௗ | TAMIL AU LENGTH MARK 3047 => ௧ | TAMIL DIGIT ONE 3048 => ௨ | TAMIL DIGIT TWO 3049 => ௩ | TAMIL DIGIT THREE 3050 => ௪ | TAMIL DIGIT FOUR 3051 => ௫ | TAMIL DIGIT FIVE 3052 => ௬ | TAMIL DIGIT SIX 3053 => ௭ | TAMIL DIGIT SEVEN 3054 => ௮ | TAMIL DIGIT EIGHT 3055 => ௯ | TAMIL DIGIT NINE 3056 => ௰ | TAMIL NUMBER TEN 3057 => ௱ | TAMIL NUMBER ONE HUNDRED 3058 => ௲ | TAMIL NUMBER ONE THOUSAND 3059 => ௳ | TAMIL DAY SIGN 3060 => ௴ | TAMIL MONTH SIGN 3061 => ௵ | TAMIL YEAR SIGN 3062 => ௶ | TAMIL DEBIT SIGN 3063 => ௷ | TAMIL CREDIT SIGN 3064 => ௸ | TAMIL AS ABOVE SIGN 3065 => ௹ | TAMIL RUPEE SIGN 3066 => ௺ | TAMIL NUMBER SIGN 8204 => afii61664 | LATIN SMALL LETTER A 8205 => afii301 | LATIN SMALL LETTER A 8211 => endash | LATIN SMALL LETTER E 8212 => emdash | LATIN SMALL LETTER E 8216 => quoteleft | LATIN SMALL LETTER Q 8217 => quoteright | LATIN SMALL LETTER Q 8218 => quotesinglbase | LATIN SMALL LETTER Q 8220 => quotedblleft | LATIN SMALL LETTER Q 8221 => quotedblright | LATIN SMALL LETTER Q 8222 => quotedblbase | LATIN SMALL LETTER Q 8224 => dagger | LATIN SMALL LETTER D 8225 => daggerdbl | LATIN SMALL LETTER D 8226 => bullet | LATIN SMALL LETTER B 8230 => ellipsis | LATIN SMALL LETTER E 8240 => perthousand | LATIN SMALL LETTER P 8249 => guilsinglleft | LATIN SMALL LETTER G 8250 => guilsinglright | LATIN SMALL LETTER G 8364 => Euro | LATIN CAPITAL LETTER E 8482 => trademark | LATIN SMALL LETTER T 8722 => minus | LATIN SMALL LETTER M 9676 => ◌ | DOTTED CIRCLE 57344 =>  | None

Natkeeran commented 4 years ago

Please ignore this comment. Did not use the right version!

@arcturusannamalai Thanks for the quick reply Muthu. Really glad to find that this work is available. A lof of documents, even the ones on the web (i.e Internent Archive) are encoded using the old Tamil fonts, thus being able to automate conversion is very helfpul.

The above text may actually be in bamini, though dinakaran gives better conversion. For the rest of the docs, it seems they are in bamini. However, even with bamini, there are notable differences between open-tamil and Suratha. Suratha seems to convert much better.

I am attaching some of the files we are trying to convert:

Episode-01.txt Episode-02.txt Episode-03.txt

Source text:

rptdpd; jdpnkhop :
    vd; md;ghd kidtp ghh;tjp, G+kpapy; tho;gthpd; tho;f;if re;Njh\khf ,Ug;gijNa tpUk;Gths;. xU ehs; xd;gJ fhuhs tptrhapfis cUthf;fp mth;fSf;F epyKk; toq;fpdhh;. mth;fSf;F nghd;dptsehl;by; cs;s epyj;jpy; tpisr;ry; ed;whf ,Uf;fpwJ. ghh;tjp fhuhsh;fis cUthf;fpa gpwF G+kpapy; cs;s fpof;Fg; gFjpapy; nghpa gQ;rk;  Vw;g;gl;lJ. Nrhokd;dhpd; gd;dpnuz;L fhuhk;gRf;fis gQ;rj;jhy; cztpy;yhky; mtpo;j;J tpl;L tpl;lhh;.

    gRf;fs; fhNthp Mw;wpd; xukhf njhlh;e;J nrd;W mit nghd;dpts ehl;by; cs;s fUk;gq;fhl;il nrd;wile;jJ. Jujp\;ltrkhf tptrhaf; fTz;lh; Ntiy nra;J nfhz;bUf;Fk;NghJ ,tUila tptrha epyj;jpy; cs;s fUk;gq;fhL mopf;fg;gl;bUe;jJ. 

    ve;j fhl;L tpyq;F te;J ,ijr; nra;fpwJ vd;W mtUf;Fj; njhpahky; mijg;ghJ fhf;f Ntyp Nghlr;nrhd;dhh;. mJ gRf;fSf;F nfhLikahd rhit tpistpj;jJ. 

njhFg;ghsh;: ,g;gb ,Uf;Fk;NghJ nghd;dptsehl;by; cs;s Kjd;ik tptrhaf; FLk;gk; epyj;jpy; tptrhak; nra;Jnfhz;bUe;jdh;. tUlq;fs; Ntfkhfr;nrd;WJ. Mdhy; xU Foe;ijapd; rj;jk; $lf; Nfl;ftpy;iy. Nfhshj;jhTk; mth; kidtpAk; tUq;fhyj;ij epidj;J kpfTk; tUj;jg;gl;ldh;.

SCENE - A muz;kidapy;

mhpadhr;rp : “ehjh ek; fy;ahzk; Kbe;J ehw;gj;jp Ie;J tUlk; fle;J tpl;lJ. ekJ epyKk; ed;whf nropj;J ,Uf;fpwJ. ,Ue;jhYk;;! Vd; ehd; xU Foe;ijf;Ff; $l jha; Mftpy;iyNa! ek; tPL md;Dfl;ba tPLNghy; ,Uf;fpwNj ehjh?

Nfhyhj;jh:  “mk;kh mhpadhr;rp ! fhpiaj; Jilf;fyhk;. fhNthpia ePe;jyhk;!  Mdhy;! tpjpiaj; Jilf;f ek;khy; Mfhjk;kh”.  ek; jiy vOj;J mJjhd; vd;why; ehk; mNjhl jhd; thoDk; mk;kh!

ghl;L:

http://www.suratha.com/reader.htm - view-source:http://www.suratha.com/JS/bamini.js

சிவனின் தனிமொழி :
    என் அன்பான மனைவி பார்வதிஇ பூமியில் வாழ்பவரின் வாழ்க்கை சந்தோஷமாக இருப்பதையே விரும்புவாள். ஒரு நாள் ஒன்பது காராள விவசாயிகளை உருவாக்கி அவர்களுக்கு நிலமும் வழங்கினார். அவர்களுக்கு பொன்னிவளநாட்டில் உள்ள நிலத்தில் விளைச்சல் நன்றாக இருக்கிறது. பார்வதி காராளர்களை உருவாக்கிய பிறகு பூமியில் உள்ள கிழக்குப் பகுதியில் பெரிய பஞ்சம்  ஏற்ப்பட்டது. சோழமன்னரின் பன்னிரெண்டு காராம்பசுக்களை பஞ்சத்தால் உணவில்லாமல் அவிழ்த்து விட்டு விட்டார்.

    பசுக்கள் காவேரி ஆற்றின் ஒரமாக தொடர்ந்து சென்று அவை பொன்னிவள நாட்டில் உள்ள கரும்பங்காட்டை சென்றடைந்தது. துரதிஷ்டவசமாக விவசாயக் கவுண்டர் வேலை செய்து கொண்டிருக்கும்போது இவருடைய விவசாய நிலத்தில் உள்ள கரும்பங்காடு அழிக்கப்பட்டிருந்தது. 

    எந்த காட்டு விலங்கு வந்து இதைச் செய்கிறது என்று அவருக்குத் தெரியாமல் அதைப்பாது காக்க வேலி போடச்சொன்னார். அது பசுக்களுக்கு கொடுமையான சாவை விளைவித்தது. 

தொகுப்பாளர்: இப்படி இருக்கும்போது பொன்னிவளநாட்டில் உள்ள முதன்மை விவசாயக் குடும்பம் நிலத்தில் விவசாயம் செய்துகொண்டிருந்தனர். வருடங்கள் வேகமாகச்சென்றுது. ஆனால் ஒரு குழந்தையின் சத்தம் கூடக் கேட்கவில்லை. கோளாத்தாவும் அவர் மனைவியும் வருங்காலத்தை நினைத்து மிகவும் வருத்தப்பட்டனர்.

ளுஊநுNநு - யு அரண்மனையில்

அரியனாச்சி : “நாதா நம் கல்யாணம் முடிந்து நாற்பத்தி ஐந்து வருடம் கடந்து விட்டது. நமது நிலமும் நன்றாக செழித்து இருக்கிறது. இருந்தாலும்;! ஏன் நான் ஒரு குழந்தைக்குக் கூட தாய் ஆகவில்லையே! நம் வீடு அன்னுகட்டிய வீடுபோல் இருக்கிறதே நாதா?

கோலாத்தா:   “அம்மா அரியனாச்சி ! கரியைத் துடைக்கலாம். காவேரியை நீந்தலாம்!  ஆனால்! விதியைத் துடைக்க நம்மால் ஆகாதம்மா”.  நம் தலை எழுத்து அதுதான் என்றால் நாம் அதோட தான் வாழனும் அம்மா!

பாட்டு:

Open-Tamil - bamini2unicode

சிவனின் தனிமெபாழபி :
    என் அன்பபான மனைவபி பபார்வதி, பு+மபியபிலப் வபாழப்பவரின் வபாழப்க்கை சந்தோஷமபாக ,ருபப்பதையே வபிருமப்புவபாளப். ஒரு நாளப் ஒன்பது காரபாள வபிவசாயபிகளை உருவபாக்கி அவர்களுக்கு நிலமுமப் வழங்கினார். அவர்களுக்கு பொன்னிவளநாட்டிலப் உளப்ள நிலத்திலப் வபிளைச்சலப் நன்றபாக ,ருக்கிறது. பபார்வதி காரபாளர்களை உருவபாக்கிய பபிறகு பு+மபியபிலப் உளப்ள கிழக்குபப் பகுதியபிலப் பெரிய பஞ்சமப்  ஏறப்பப்பட்டது. சோழமன்னரின் பன்னிரெண்டு காரபாமப்பசுக்களை பஞ்சத்தாலப் உணவபிலப்லபாமலப் அவபிழப்த்து வபிட்டு வபிட்டார்.

    பசுக்களப் காவேரி ஆறப்றபின் ஒரமபாக தொடர்ந்து சென்று அவை பொன்னிவள நாட்டிலப் உளப்ள கருமப்பங்காட்டை சென்றடைந்தது. துரதிஷப்டவசமபாக வபிவசாயக் கவுண்டர் வேலை செயப்து கொண்டிருக்குமப்போது ,வருடைய வபிவசாய நிலத்திலப் உளப்ள கருமப்பங்காடு அழபிக்கபப்பட்டிருந்தது. 

    எந்த காட்டு வபிலங்கு வந்து ,தைச் செயப்கிறது என்று அவருக்குத் தெரியபாமலப் அதைபப்பபாது காக்க வேலபி போடச்சொன்னார். அது பசுக்களுக்கு கொடுமையபான சாவை வபிளைவபித்தது. 

தொகுபப்பபாளர்: ,பப்படி ,ருக்குமப்போது பொன்னிவளநாட்டிலப் உளப்ள முதன்மை வபிவசாயக் குடுமப்பமப் நிலத்திலப் வபிவசாயமப் செயப்துகொண்டிருந்தனர். வருடங்களப் வேகமபாகச்சென்றுது. ஆனாலப் ஒரு குழந்தையபின் சத்தமப் $டக் கேட்கவபிலப்லை. கோளபாத்தாவுமப் அவர் மனைவபியுமப் வருங்காலத்தை நினைத்து மபிகவுமப் வருத்தபப்பட்டனர்.

ளுஊநுNநு - யு அரண்மனையபிலப்

அரியனாச்சி : “நாதா நமப் கலப்யபாணமப் முடிந்து நாறப்பத்தி ஐந்து வருடமப் கடந்து வபிட்டது. நமது நிலமுமப் நன்றபாக செழபித்து ,ருக்கிறது. ,ருந்தாலுமப்ப்! ஏன் நான் ஒரு குழந்தைக்குக் $ட தாயப் ஆகவபிலப்லையே! நமப் வபீடு அன்னுகட்டிய வபீடுபோலப் ,ருக்கிறதே நாதா?

கோலபாத்தா:  “அமப்மபா அரியனாச்சி ! கரியைத் துடைக்கலபாமப். காவேரியை நீந்தலபாமப்!  ஆனாலப்! வபிதியைத் துடைக்க நமப்மபாலப் ஆகாதமப்மபா”.  நமப் தலை எழுத்து அதுதான் என்றபாலப் நாமப் அதோட தான் வபாழனுமப் அமப்மபா!

பபாட்டு:
Parathantl commented 4 years ago

@Natkeeran, @arcturusannamalai I resolved the Bamini issue https://github.com/Ezhil-Language-Foundation/open-tamil/issues/193

I see that most of the words are mixed with the word "ப்" which makes the word mess. So, I changed all those for Bamini I think it will be available from the next release.

arcturusannamalai commented 4 years ago

@Natkeeran - if what @Parathantl has suggested is the actual situation, then your conversion via tamilpesu.us is going to use old version of Open-Tamil (before bugfix #193)

@Natkeeran - tamilpesu.us site is pending update to Python3 and that maybe issue, whereas issue seem to be fixed in code.

Natkeeran commented 4 years ago

@arcturusannamalai @Parathantl

I am using from command line. Is there a way for me to check the version?

tamil_font_conversion.py.txt

arcturusannamalai commented 4 years ago

@Natkeeran Please try:

python3 -c 'import tamil; print(tamil.VERSION)'

and you should see >= 0.96 for latest version.

Natkeeran commented 4 years ago

@arcturusannamalai I do have the latest version. However, there was a difference in the encoding file because I had touched it. Now, I've put back the repo version. So, please ignore my previous comment above.

The difference between Suratha and open-tamil is small, but seems like there are one or two characters that are off. As I understand it, we will not get 100% conversion, but just trying to understand the difference.

It is very useful to have this as we have hundreds of documents at UTSC where we need to create unicode version. Appreciate the work.

Attaching the various formats for five documents.
Episode-05-unicode.txt Episode-04-unicode.txt Episode-03-unicode.txt Episode-02-unicode.txt Episode-01-unicode.txt Episode-05-unicode-suratha.txt Episode-04-unicode-suratha.txt Episode-02-unicode-suratha.txt Episode-03-unicode-suratha.txt Episode-04.txt Episode-01.txt Episode-03.txt Episode-02.txt Episode-05.txt Episode-05.doc.txt Episode-04.doc.txt Episode-03.doc.txt Episode-02.doc.txt Episode-01.doc.txt

arcturusannamalai commented 4 years ago

Good to @Natkeeran - Our txt2unicode and txt2ipa modules are contributed by @arulalant - however he also maintains a separate version which has diverged from our version AFAIK. So hopefully we can normalize all the code and address issues w.r.t Suratha's work/reference.

arulalant commented 4 years ago

@arcturusannamalai Open-Tamil txt2unicode is the latest version. I initially created it in my own repository before contributing to Open Tamil. I made this txt2unicode conversion by adopting source code (java script) of Suratha website. If you are able to find the bug and fix it, we welcome you to contribute it.

The dinarkaran2unicode mapping is available from Line no 1098 to Line no 1464 of this dictionary located at https://github.com/Ezhil-Language-Foundation/open-tamil/blob/master/tamil/txt2unicode/encode2utf8.py