சிந்திக்கவைக்கும் ஆய்வுகள்

தமிழ் கணிமையில் பல கட்டுரைகள் வருகின்றன – அவற்றில் சில கட்டுரைகள் ஒரு முற்றிலும் வேறுபட்ட சிந்தனைகளை முன்வைக்கும்; பல கட்டுரைகள் முன்னோர் சென்றவழியில் எளிதாகவும், சிறப்பாகவும், சிக்கனமாகவும் (கணினியளவில்) மற்றும் பொருளாதார, நுகர்வோர் அணுகுமுறை என்றபடியாக உள்ள புதுமைகளை விளக்கும்.

இந்த சில கட்டுரைகள் செல்லாத இடத்திற்கு, முற்றிலும் வேறுபட்ட சிந்தனைகளை முன்வைப்பவைகளில் சிலவற்றைப்பற்றி இன்று பார்க்கலாம்.

படம் 1: எழில் மொழி திருத்தியில் உள்ள தமிழ்-99 விசைப்பலகை. 

தமிழ்-99 விசைபலகைக்கு ஒரு மேம்பாடு என்ற படியாக 2004-இல் நடந்த தமிழ் கணிமை மாநாட்டில் இந்த (clj-thamil படைத்த இளங்கோ சேரன் குழுவினரால்) கட்டுரை “Optimization of Thamil Phonetic Keyboard.” இதில் ஆசிரியர்கள் கூறியதாவது, தமிழ்-99 விசையில் மெய்களுக்கு பதில் அகர-மெய்களை விசைப்பலகையில் பொருத்தினால் சிக்கனமாக (விசை தட்டச்சு செய்யும் எண்ணிக்கையில் குறைவாக) ஒரு குறிப்பிட்ட உரையை இந்த மாற்று விசைப்பலகையில் உள்ளீடு செய்யலாம் என்று கண்டெடுத்தார்கள். ஆனால் இதை உள்வாங்கி எதுவும் செய்யவில்லை.

new vistas:The iTamil project aims to make the Tamil script easy to learn, print and display, among other things —Photo: Special Arrangement
படம் 2: iTamil – என்ற தமிழ் எழுத்துரு மாற்றம் பற்றிய  தடைசெய்யப்பட்ட 2016 கட்டுரை. படம்: இந்து நாளிதழ்

அடுத்த கட்டுரைக்கு மேர்கோள் என்க்கு கிடைக்கவில்லை, KaReFo-குழுவினரால் “iTamil,” (2016) ; ஆனால் அதன் சாராம்சமாவது தமிழின் உயிமெய் எழுத்து வடிவத்தை முற்றிலுமாக மாற்றியமைக்க ஒரு ஆய்வு பரிந்துரை சமர்ப்பிக்கப்பட்டது. ஆனால் இந்த கட்டுரை 2016-ஆம் ஆண்டு நடந்த தமிழ் கணிமை மா நாட்டில் வாசிப்பு பெற்றாலும் அது பின்னர் நீக்கம் ஆயிற்று – காரணம் இதனை ஆய்வளவில் கூட தமிழ் சமுகம் ஏற்கக்கூடாது என்றோரு தரப்பின் வாதம் வெற்றி பெற்றதன் காரணம். இந்த சர்ச்சைக்கும் அப்பால் அவர்கள் சொன்ன கோரிக்கை, ஆய்வுகளை பார்க்க இந்த செய்தி உபயோகரமாக வரலாற்று சின்னமாக அமைகிறது.

ஆய்வுக்களத்தில் சிந்திக்கலாம்தானே! அதை நடைமுறைப்படுத்தவேண்டுமானால்தானே மேலும்/கூடுதல் விவாதங்கள் தேவை? சிந்தனையே தடைசெய்யப்படவேண்டுமெனில் தமிழருக்கும் தலிபனார்களுக்கும் வித்தியசமென்ன?

ஓப்பன்-தமிழ் வெளியீடு – வரிசை எண் 0.97

ஒப்பன்-தமிழ் வரிசை எண் v0.97

வணக்கம் தமிழ் கணிமை ஆர்வலர்களே,
இன்று ஓப்பன்-தமிழ் நிரல் தொகுப்பு வரிசை எண் 0.97 வெளியீடு அறிவிக்கிறோம். இதில் புதியன, சென்ற 2019-நவம்பர் மாதம் கழித்து வந்த மேம்பாடுகளாகியன, கீழ்வருமாறு.இதனை பெற

$ pip install –upgrade open-tamil==0.97

என்று கட்டளை கொடுக்கலாம்.

1 புதிய மேம்பாடுகள்:

  1. மாத்திரை கணித்தல் – தமிழ் உரையில் உள்ள சொற்களின் மாத்திரை அளவை கணிக்க புதியசார்பு ‘tamil.utf8.total_maaththirai()’ என்று திரு. பரதன் தியாகலிங்கம் அவரால் பங்களிக்கப்பட்டது.
  2. வடமொழி சொல்பட்டியல் மோனியர்-வில்லியம்ஸ் அவரது அகராதியில் இருந்து திரிக்கப்பட்டு இங்கு சேர்க்கப்பட்டது
  3. ‘tabraille’ என்ற module-இல் கண்பார்வை குறை உள்ளவர்களினால் தமிழ் பாரத பிரெயில் என்ற தரத்தை கையாளும் வகை சில உத்திகள் உள்ளன.
  4. ‘kural’ என்ற module-இல் திருக்குறளை நேரடியாக கையாள சில உத்திகள் உள்ளன. இது 2013-இல் வெளிவந்த ‘libkural’ என்பதன் மீள்பதிவாகும்.
  5. ‘solthiruthi’ என்ற module-இல் எளிதான சில மேம்பாடுகள் செய்யப்பட்டுள்ளன – இவற்றினால் வரும் மாற்றுச்சொற்கள் சற்று மேன்மை அடையும்.6.  தமிழ் எழுத்துவழி எண்களை பகுப்பாய்வு செய்து எண்களாக மாற்ற ஒரு சார்பு #221
  6. olini.py supports natual language arithmetic evaluation in Tamil for
  7.        all numbers based on this work.7. ‘tamiltts’ என்ற ஒரு module-இல்  normalize numbers to numeral text என்றும் வேறு பல சொல்/உரை நெறிப்படுத்தும் பயன்பாடுகள் உள்ளன.   இதுவும் ஒரு பழைய நிரலில் மீள் பதிப்பு.
  8. ‘tamil.tace16’ – என்ற நிரல் தொகுப்பில் தமிழ் TACE16 என்ற குறியீட்டிற்க்கு உதவும்வழி சில நிரல் சார்புகள் உண்டு.
  9. ‘transliterate.ITRANS’ – என்ற நிரல் தொகுப்பில் ITRANS transliteration – ஒலிவழி தட்டச்சு செய்தல் உருவாக்கப்பட்டது

2 வழு நீக்கம்:

  1. பாமிணி எழுத்துருவில் இருந்து ஒறுங்குறியில் மாற்றத்தில் வழு நீக்கம் சரிபார்க்கப்பட்டது
  2. நெடில் பட்டியலை சரிபார்த்தல்
  3. Python3-இல் உகந்தவாறு sorting, ‘tamil.utf8.tamil_sorted’ என்ற சார்பு சேர்க்கப்பட்டது
  4. நாள், நேரம் – tamil.date நிரல் தொகுப்பில் உள்ள சில வழு நீக்கம் செய்யப்பட்டது

3 புரவலர்களுக்கு நன்றி தெறிவித்தல்

We thank @pycharm for donation of 1 seat professional license towards Open-Tamil development. __/|\__. Thanks to @infitt and Prof. @crselvakumar1 for their support toward 1-way airfare cost of attending 2017-Tamil Internet Conference in Toronto, Canada. https://github.com/Ezhil-Language

வாய்ப்பிற்கு நன்றி.

-முத்து (கலிபோர்னியா).

மேற்கோள் – இந்த வலைப்பதிவு முதலில் ஒரு மின்னஞ்சல் அறிக்கையாக, திறமூலதமிழ் கணிமை அளவலாவள் குழுவில் இங்கு வெளியானது.

Tamil Text Processing with Open-Tamil

Introduction

“”ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)” என்பதை எப்படி 950 என்று கணினி புரிந்து கொள்ளும் ? Open-Tamil வழியாகத்தான் – வாங்க இதை பார்க்கலாம்.

Open-Tamil is a free and open-source Tamil Text / Natural Language Processing library (NLP) written in Python, and developed since early 2010s. This blog post is cover our gaps in marketing (on our part, ofcourse) Open-Tamil regarding the capabilities and features presented by Open-Tamil python library. Open-Tamil Python package is distributed under MIT license.

Documentation

Open-Tamil project is currently in the release v0.96 – the Python package can be found here. Documentation from Sphinx for Open-Tamil package can be found on Tamilpesu.us site at this URL.

Installation

Open-Tamil can be installed by running the following command from your terminal with root privileges on Python3. You cannot use current/later versions of Open-Tamil with v2.x – please refer to older releases on pypi page which are still available to you.

$ pip install –upgrade open-tamil>=0.96

If you want to install locally, you can run this command instead,

$ pip install –upgrade open-tamil>=0.96 –user

Python Modules

Open-Tamil provides the following Python modules with various classess and functionalities. You can learn more about them from browsing our documentation.

In summary we can list them as follows,

  Module    Functionality
1

tamil

Tamil tokenization, word ordering, encoding converters, numerals, text summarizer

  Subpackages tamil.txt2ipa package Submodules
tamil.txt2ipa.ipaconvert module
tamil.txt2ipa.transliteration module
tamil.txt2ipa.unicode2ipa module
Module contents
tamil.txt2unicode package Submodules
tamil.txt2unicode.encode2unicode module
tamil.txt2unicode.encode2utf8 module
tamil.txt2unicode.orddic module
tamil.txt2unicode.unicode2encode module
Module contents
tamil.utils package Submodules
tamil.utils.TextSummaryExtractor module
tamil.utils.santhirules module
Module contents
Submodules
tamil.date module
tamil.iscii module
tamil.numeral module
tamil.regexp module
tamil.tscii module
tamil.tscii2utf8 module
tamil.tweetparser module
tamil.utf8 module
tamil.wordutils module
Module contents
2

ngram

corpus modeling classes

  ngram.Corpus module
ngram.Distance module
ngram.LetterModels module
ngram.WordModels module
3

solthiruthi

Tamil spelling checker algorithms

  solthiruthi package
Submodules
solthiruthi.Ezhimai module
solthiruthi.WordSpeller module
solthiruthi.data_parser module
solthiruthi.datastore module
solthiruthi.dictionary module
solthiruthi.dom module
solthiruthi.heuristics module
solthiruthi.morphology module
solthiruthi.resources module
solthiruthi.scoring module
solthiruthi.solthiruthi module
solthiruthi.suggestions module
solthiruthi.vinaisorkal module
Module contents
4

spell

Tamil spelling checker application

  spell package
5

tamilmorse

Morse code utilities for Tamil; இந்த தொகுப்பில் தமிழுக்கான மோர்சு குறிகளை உருவாக்கவும், குறியீடுகளை பிரித்துப்பார்கவும் முடியும்.

  tamilmorse package
Submodules
tamilmorse.morse_encode module
tamilmorse.morse_decode module
6

tamilsandhi

Tamil sandhi rules checker

  tamilsandhi package
தமிழில் சந்திப்பிழை திருத்தி உருவாக்கவும் பிழைக திருத்தவும் உதவியாகஇந்த நிரல் தொகுப்பு வழிவகுக்கும். ஏரக்குறைய 40-விதிகளை கொண்டது இந்த நிரல் தொகுப்பை உருவாக்கியவர் திருமதி. நித்யா. மேலும் விவரங்களுக்க https://github.com/nithyadurai87/tamil-sandhi-checker
7

transliterate

Transliteration tables for Jaffna, University of Madras, Bamini schemes; both forward/backward transliteration algorithms

  transliterate package Submodules
transliterate.UOM module
transliterate.algorithm module
transliterate.azhagi module
transliterate.combinational module
transliterate.jaffna module
Module contents
8

tamilstemmer

This module is new in version 0.96 and provides access to simple stemmer functions originally created by Damodharan Rajalingam.

  Tamil Stemmer source code
9

examples

Various examples and utilities in Open-Tamil package; nifty code tips and tricks

  Open-Tamil source code examples like numeral to audio generation, ngram generation, corpus analysis etc. see link here.

Calculator Example

One fun use of the API is to build interactive websites like tamilpesu.us but a more interesting use is to build a text based calculator taking inputs in form of Tamil numerals with Tamil words for arithmetic operations like add, subtract, multiply and divide.

“”ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)” என்பதை எப்படி 950 என்று கணினி புரிந்து கொள்ளும் ?

Using Open-Tamil we can parse the numerals back to numbers and form a simple mathematical infix expression;

1000 – 5 * ( 9 + 1 )

then use Python eval() we can use Python parser and evaluator to build the expression tree and compute the post-order traversal and execute the expression to receive the result, which in our case is not surprisingly,

950.

Well, all this can be done in less than 30 lines of code using Open-Tamil; if you don’t believe me check-out the code here.

Credits

A large number of individuals have contributed their time and effort over the years in many capacities to the project; should you wish to acknowledge this project in your research, products you can choose to cite any of our published works of relevance to you; our publications are listed here.

As always if you wish to report bugs, or share your comments please write an email to me ezhillang AT gmail DOT com or file an issue at github.

 

நீங்களும் ஆக்கலாம் – சரியான ஜோடி!

சரியான ஜோடி!
உயிரெழுத்துக்கள் ஜோடி சேர்க்கும் விளையாட்டு.

1 ஏன், என்ன, எப்படி ?

எழுத்து விளையாட்டு – ஜோடி சேர்த்தல் – இரண்டு காலங்களில் சீட்டில் எழுதிய பெயர் மறைந்தபடி (மல்லாக்க) அடுக்கிய சீட்டுகளை ஜோடி சேர்த்தல் என்பது “Memory Match” என்று எளிதாக பலரும் (வயதில் மூத்தவரில் இருந்து குழந்தைகள் வரை)  விளையாட உதவும். மேலாக இந்த விளையாட்டில் எவ்வித படங்களையும் சராசரியாக பயன்படுத்தினாலும், நாம் இங்கு தமிழ் உயிரெழுத்துக்களை புகுத்துப்பார்க்கலாம் என்று தோன்றியது. தோடர்ந்து படியுங்கள் – எப்படி இந்த விளை

2 தேவையான பொருட்கள்

  1. அச்சிட ஒரு பிரிண்டர்🖨️
  2. 📃A4 அல்லது US Letter அளவான தாள்
  3. ✂️கத்திரி (நீங்கள் சிறுவரானால் ஒரு பெறியவரிடம் உதவி கேளுங்கள்)
  4. கோந்து | செல்லோடேப்பு | இ….
  5. அட்டை

3 செய்முறை

1. நீங்கள் A4 தாளில் இந்த விளையாட்டை உருவாக்கவேண்டுமெனில் இதனை பயன்படுத்தலாம் (கிளிக் செய்யுங்கள்) கீழ் உள்ள படத்தை அச்சிடவும்:

A4 அளவிலான உயிரெழுத்து தாள்
A4 அளவு

நீங்கள் US Letter அளவில் செய்தால், கீழ் உள்ள படத்தை அச்சிடவும்.

US Letter அளவு உயிரெழுத்துக்கள் விளையாட்டு
இந்த US Letter அளவு உள்ள படத்தை அச்சிடவும்.

இந்த இரண்டு படங்களும் Python, PIL, Open-Tamil, அச்சு தமிழ் OCR தரவு  மற்றும் இணைமதி எழுத்துருவில் வழி உருவாக்கப்பட்டது.

2. படி ஒன்றில் உள்ள படத்தை A4 அல்லது US Letter அளவில் உள்ள தாளில் அச்சிட்ட பிறகு அதனை அட்டையில் ஒட்டவும்.

பிக்1
அட்டையில் அச்சிட்ட தாளை ஒட்டியபின். (நான் முதலில் செய்த பொழுது வேண்டாத வேலையாக அட்டையை 24 துண்டாகவும், மறுபடியும் தாளை 24 துண்டாகவும் வீன் வேலை பார்த்தேன் – நீங்கள் அப்படி செய்ய வேண்டாம்!) 😅

3. அட்டையில் ஒட்டியபின் கோடுகள் ஓடியபடி கத்திரியுங்கள். அட்டையின் தன்மையை பொருத்து சற்று பலமாக செயல்படுத்தலாம்; கவனாமக செயல்படுங்கள் ✂️. சிறுவரி, கொழந்தங்க கிட்ட இதனை கொடுக்கவேண்டாம்.

4. அடுத்து நீங்கள் விளையாடலாம்! விதிகள் இப்படி

4. விதிகள்

  1. ஒருவராகவும் அல்லது இருவராகவும் விளையாடலாம் – முறை மாற்றி விளையாட்டு;
  2. தமது முறையின் போது ஒருத்தர் இரண்டு சீட்டுகளை மல்லாக்க இருந்து திருப்பி எடுக்கலாம்; இந்த சீட்டுகளில் ஒரே படம் – அதாவது எழுத்து இருந்தால் – அதனை அவரே தன்னகப்படுத்தி மறுமுறை விளையாடலாம் -சீட்டு ஜோடி சேராவிட்டால் இருந்த இடத்தை மட்டும் முடிந்த அளவு நினைவில் கொண்டு அதே இடத்தில் வைப்பார்.
  3. இப்படி இல்லாதபட்சத்தில் முறை மாறி மற்றவர் வெளையாடலாம். அவரும் அதே படி-2-இல் உள்ளவிதிகளின் படி.
  4. இப்படி முறை-மாற்றி விளையாடும் பொழுது, கடைசி சீட்டு ஜோடி சேர்ந்தபின் இருவரில் யார் அதிகமாக ஜோடிகள் சேர்த்தாரே அவர், அவர்களது அணி வெற்றிபெற்றதாகும்.

உயிரெழுத்து ஜோடி சேர்க்கும் ஆட்டம் முடிவில்
இரண்டாம் ஆட்டம் முடிந்த பின் சீட்டுகள்; மனைவி இடது பக்கம் – நான் வலது பக்கம். யார் வெற்றி என்பது கேட்கவே வேண்டாம்!

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

நனறி.

-முத்து

 

 

Open-தமிழ் திட்டம் ஒரு பார்வை

சமிபத்தில், ஓப்பன் தமிழ் வரிசை எண் 0.96-இல் எண்ணவெல்லாம் நிரல் படுத்தி செய்யலாம் ? இவற்றை எங்களது ஆறு ஆண்டு முயற்சியாக @UTSC எண்ணிம தமிழ் துரையினரிடம் நேற்று வழங்கினேன். முழு வில்லைகள் (Slides) இங்கும். bit.ly/2G7mevE  இங்கும் (PDF-வடிவில்) : ஒப்பன்தமிழ்-2020-ஓரு-பார்வை-2 பல ஆண்டுகளாக பங்களித்தவர்கள் அனைவருக்கும் நன்றி.

EOqpf_UUEAICPsV

இந்த வழங்கலின் பின் எழுப்பப்பட்ட கேள்விகளானவை:

  1. NLTK-என்ற புகழ் பெற்ற ஆங்கலி இயல் மொழி பகுப்பாய்வு திறண்களைப்போன்ற சேவைகள் எப்பொழுது தமிழில் – அதுவும் ஓப்பன்-தமிழ் வழி கொண்டுவரப்படும் ? குறிப்பாக, POS – சொற்றொடர்களின் சொல் பகுப்பாய்வுகள், SynNet – சொல் இணைப்பு பின்னல்கள் ஆகியன.
  2. உரையினை சொல் எழுத்துக்களாக பகுப்பாய்வு செய்வதன் வேகம், செய்முறை நினைவகளவு (RAM) குறைவாகவும் இருப்பது பற்றிய கேள்விகள்; விக்கிபீடியாவின் தரவுகளில் சொல்தேடல்கள் (word search), சொல் எண்ணிக்கை (frequency) பட்டியலிடலின், concordance/collocation database creation பற்றியும், அவைகளை உருவாக்கும் இயக்க நேர அளவுகள் போன்றவற்றை பற்றியும் அதன் வேகப்படுத்துவதைப் பற்றியும் கேள்விகள் வந்தன.
  3. சொல்வனம் மின் இதழ்களின் வரலாற்று தரவுகளை எப்படி ஆரய்ச்சிக்காக கேட்பது என்பது பற்றியும் அவற்றில் உள்ள கலை சொற்கள், அறிவியல் ஆராய்ச்சி கட்டுரைகள், தமிழாக்க  நடை அவற்றினை UTSC பல்கலைக்கழகத்திற்கும் மற்ற பொது ஆய்விற்கும் பெருவதன் அனுகுமுறை பற்றியும் கேள்விகள் எழுப்பப்பட்டன.
  4. இதன் கண் தமிழில் தரவுகள் அதிகமாக நேர்ந்தால், கைக்கெட்டினால் தமிழில் பல் புதுமைகள் செய்யலாம் என்பதும் ஒரு பேராசையாக இந்தத் தருனத்தில் தேன்றும். புதிய இயந்தர வழி கற்றலின் பால் உள்ள வாய்புகளுக்கு இணங்க எப்படி இந்த மென்பொருளை வளர்ப்பது என்பது ஒரு புதிய சவால்.  சந்திப்போம்!

Screen Shot 2020-01-19 at 11.09.34 AM

எண்ணிம ‘டிஜிட்டல்’ தரவாக்கமும் தமிழ் எழுத்துரு குறியீடுகளும்

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

இதை அணுகுவதில் 1980-90-களில் இருந்த தமிழ் எழுத்துரு வழி உள்ள குறியீடுகளும் [font-based encoding] அதன்பால் உள்ள சிக்கல்களும் நிற்கின்றன. இவற்றை தரப்படுத்தி தமிழில் ஒருங்குறி [unicode] வழியில் சேமித்தால் இந்த தரவுகளை முறைப்படி சேமித்தும், பரிசோதித்தும் பார்க்கலாம் என்பது இலக்கு.

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

மேலும் தமிழில் இயங்கும் பலர் தங்களது வேலைகளில் உள்ள தமிழ் செயலிகளும், அதன் திறன்களில் இதே போன்ற சிக்கல்களை தீர்வடையலாம் என்று தகவல் தெறிவித்தனர்; அவையாவன:

  1. சுரதா அவரது தமிழ் உரை மாற்றி
  2. நீச்சல் அவரது தமிழ் எழுத்து எழுத்துசீராக்கி
  3. nhm-ரைட்டரில் 2007-இல் இருந்து இந்த சேவை இருப்பதாக அவர்கள் தெரிவித்தார்கள்.

ஆனால் இன்று எளிதாக பொதுவில் இதனை உங்கது ஆவணமாக்கம் தேவைகளுக்கு ஓப்பன்-தமிழிலும் பயன்படுத்தலாம்.

நன்றி.

 

 

 

ஓப்பன் தமிழ் வரிசைஎண்0.9 வெளியீடு

open-tamil v0.9 release.
ஓப்பன் தமிழ் வரிசை எண்: 0.9

வணக்கம் நண்பர்களே!

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

$ pip install –upgrade open-tamil

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

இந்த அத்யாயத்தில் உள்ள புதியது: தமிழ் வேர்சொல் பகுப்பாய்வு செய்ய உதவும் தொகுப்பு ‘tamilstemmer‘.

ஓப்பன் தமிழ் குழுவிற்கும், நிரல் தொகுப்பினை பயன்படுத்தி பரிந்துரை செய்தவர்களுக்கும் நன்றி!

-முத்து

கலிபோர்னியா

சொல்திருத்தி – தெறிந்தவை 7

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

இந்த பதிவில் விட்டர்பீ அல்கோரிதம் (Viterbi algorithm) என்பதனை கொண்டு எப்படி சொற்பிழைகளை திருத்தலாம் என்பதை மேலோட்டமாக பார்க்கலாம். முழுவிவரங்கள் இங்கே. விட்டர்பீ அல்கோரிதம் என்பது தகவல்தொழில்னுட்பத்தில் பிழைகளை நீக்கும் வண்ணம் வடிவமைக்கப்பட்ட ஒரு மிக முக்கியமான உத்தி/கண்டுபிடிப்பு. இது ஒரு குறியீட்டின் (code), பிழைகளை அந்த குறியீடு எப்படி உருவானது என்ற state-transition-table கொண்டு பிழைகளை நீக்கும்.

இதனை எப்படி மொழியில் சொற்பிழைகளை திருத்த பயன்படுத்துவது ? இதோ இப்படி – இந்த முழு கட்டுரையை பார்த்து தான் நானும் மயங்கினேன். அதாவது மொழியின் 1-கிராம், 2-கிராம், 3-கிராம் ஒலி எண்களின் மாற்றங்கள் புள்ளிவிவரங்களை (ngram state-transition tables) கொண்டு மட்டுமே இதனை சாதிக்க முடியும் என்று Etsy பொறியாளர்கள் சொல்லினார்கள் – அதை நானும் ஒப்புக்கொள்கின்றேன்.

இது சற்று தகவல் தொழில்நுட்பத்தின் சாஷ்டாங்க வழிகளினில் இல்லாவிட்டாலும் மொழியின் கட்டமைப்பை இலக்கணம் வழி இல்லாமல் புள்ளிவிவரத்தின் வாயிலாக எடுத்துக்கொள்ளலாம்.

இந்த பூனைக்கு யார் மணிகட்டுவாங்க ? 🐈

Tamil Entry via Keypad

One problem that seem to not draw interest from various actors in digital Tamil community seems to be the Tamil input via 4 x 3 standard Keypad.

A standard 4×3 keypad shown with digits and letters, including Japanese key entry on a vodafone device. Image credits to Wikipedia.

Problem Statement: Given a 4×3 matrix of keys in a phone keypad, how can we input the basic 13 + 18 + 12×18 = 247 letters of Tamil alphabet using this device ?

Alternate: Clearly, 247 letters have an information content of \log{2}{247} = 7.94836723158 bits or roughly 8bits. So we can simply punch in 3 keys for indicating this 8bit combination and we are done. Provide a table to the user about 247 letters and their 3-numeric key map and we have solved this problem in one way.

This is not very satisfying however; we seem to put the user to more work; we would instead like to have similar entry method in Tamil just like in English (where 3 letters are grouped per telephone key). The processor for application in the phone or mainframe can decode any ambiguity of the telephone keypad mapping into meaningful words or phrases.

Ideas: We can come up with various proposals; being lazy, and the official jester of Tamil computing community, I will try and make a simple combinatorial analysis for this problem without giving a specific solution.

Details: We can consider the factors of 247 = 19 x 13 which form a matrix of all letters representing the Tamil alphabets and we can count the partitions of this matrix onto the smaller keypad matrix. Following the roman letters of English alphabet consisting of 26 letters are fit easily into the 4 x 3 matrix on average of little less than 3 letters per key, we can also adopt a similar convention.

There are many ways to fit this large 19 x 13 matrix into a 4 x 3 matrix. Using simple combinatorial analysis we may show 19 letters can be divided into 4 groups as {19 \choose 4} (ignoring the assignment of letter groups to keys – 4! ways) along the rows. Similarly, we group along columns in {13 \choose 3} ways (and ignoring the 3! column permutation themselves). In all we have a total of {19 \choose 4}\times{13 \choose 3} = 1801371 key grouping combinations.

Clearly we have an alternate possibility of grouping the 19 x 13 matrix as a transposed matrix – i.e grouping dimension of 13 elements of Tamil alphabets into larger keypad dimension of 4, and assigning 19 elements along the fewer keypad dimension of 3. This alternative gives us {13 \choose 4}\times{19 \choose 3} = 692835

Together we have a total of 1,801,371. Thats roughly 1.8 million possibilities! Check them yourself by running this code:

. The real grand total of possible designs is to include the key permutations of the grouping we have already found, thereby adding a factor of 4! \times 3! = 144 to the previous 1.8 million so we get grand total of keypad mapping designs as 259,397,424 or 259 million keyboard combinations in all!

Conclusion: How are we going to find a suitable keypad mapping? Well we may need more heuristics and more cleverness to find the keypad mappings [a few definitely exist in this 259 million possibilities, which maximize a utility function.

So that leads us to the next problem: what is the utility of mapping a Tamil letters in the keypad ? Well – we don’t know apparently, so it doesn’t exist! This also ties into the philosophical question of what is the purpose of all software if not to support use.