1. மொழியின் போக்கு
சில தலைப்புகளில் தமிழ் உரை சிக்கல்கள் அதனைக் கையாளும் ஒரு யுகிப்புகளையும் ஏற்கணவே கண்டோம். தமிழ் அறிவாளிகளிலும், எழுத்தாளர்களிலும் ஒரு தனியிடம் வகிக்கும் ஐயா திரு. நாஞ்சில் நாடன் (அவர் முதுகலை புள்ளியியளாளர் என்பதால் எண்களில்/பொறியாளர்களுக்கு நெருக்கமானவராகவும் சற்று அவரை காணத்தோன்றுகிறது) சில ஆண்டுகளுக்கு முன்பு தமிழில் புழக்கப்படும் சொல்வளம் வெரும் முன்னூரு சொற்கள் மட்டும் தான் என்று திடுக்கிடும்படி சொன்னார். இதனை, ஒரு கம்பராமாயண படித்து உரை எழுதிய அறிஞர்/வித்தகரிடம் இருந்து வருவது மிக முக்கியமான ஒரு மொழியின் போக்கைப்பற்றிய விமர்சனம்.
அதாவது தற்காலிக தமிழில் சுமார் மூன்று இலட்சம் சொற்கள் இருக்கு என்றால் அதில் 1/10 சதவிகிதம், அதாவது 0.1% சொற்களை மட்டும் தான் நாம் புழக்கப்படுத்துகிறோம் – அவ்வை எப்படி போர்கிடங்கில் உள்ள ஆயுதங்களை பற்றி விமர்சித்தாள் என்றது போல் நாஞ்சில் அவரது கூற்றை நாம் எடுத்துக்கொள்ளலாம். தமிழில் யாரும் ஒரு சொல்லாடல் கணக்கொடுப்பு அல்லது இயல்மொழி பகுப்பாய்வு கணக்கெடுப்பு மென்பொருளை உருவாக்கினால் அதற்கு நாஞ்சில் என்று பெயருடிங்கள்.
இந்த வாரம் கொரோனாவினால் உலகெங்கும் ஊரடங்கில் இருக்கின்றோம். சில தமிழ் கணினியாளர்கள் நங்கள் இணையம் வழி சந்திப்பு நடத்தினோம் – அதன் வீடியோ இங்கு பதிவில் காணலாம். இந்த சந்திப்பின் படம் இந்த கட்டுரையின் தலைப்பில் காணலாம்.
2. இடைவெளி எண்கள்
இந்த வாரம் எனக்குப் புலப்படும் சிக்கல் இதோ: இடைவெளி எண்கள் – அதாவது ஒரு மதிப்பினை தோராயமாக நாம் குறிக்கும் போது – “எவ்வளது நாள் ஆகும் இந்த பொருள் வீடுசேர?” “சுமார் பத்துப்பதினைந்து நாட்களில் வரும்” – என்றபடி நாள்தோரும் நாம் கேட்கின்றோம். இதனை கணினியில் எப்படி இயல்மொழி உணரலாம் ?
- “நூறு-இருனூறு கொடுத்து அனுப்புங்க” (வணிகம்)
- “பத்து-ஐஞ்சு ஆகலாம் – ஆனால் ஒன்னும் தேராது.” (வணிகம்)
மேலும், இவற்றில் எப்போதும் கீழ்வரிசையில் மட்டுமா வரும் ? (வெக்கை நாவலில் பூமணி, பத்து-ஐஞ்சு என்ற சொலவம் பயன்படுத்துகிறார்). இவை இரண்டிற்கும் ஒரே மாதிரியான அல்கோரிதம்
3. எண்கள்
இதில் திறித்துப் பார்த்தால் மற்றுமொரு கேள்வி இருக்கின்றது: தமிழில் சில எண்களை அதிகம் பேசப்படுகின்றன:
- “ஆயிரத்தெட்டு காரணம் சொல்லாம் – ஆனால் ஒப்புக்கொள்ளமுடியாது” (பொதுவெளி)
- “நூற்றிஎட்டு தேங்காய் உடைக்கனும்,” “வாரணம் ஆயிரம்” … (ஆன்மீக வெளிப்பேச்சு)
இடம் சூட்டும் எண்கள் (ordinals) என்பவையும் உள்ளன – அதாவது,
- “இந்தக்குதிரை டெர்பி போட்டியில் முதல் இடத்தை பிட்காமல் மூன்றாம் இடத்தில் வந்தது; அனைத்து சூதாட்டக்காரர்களும் தங்களது முதலீட்டை முழுசாக இழந்தனர்.”
- “நீ முதலாவதா தேர்தலின் வராட்டியும் பத்தாவதிற்குள் வந்து வாக்குப்பிளவிக்கனும்; இல்லாவிட்டால் கட்சியில் இருந்து நீக்கம் செய்வோம்.”
4. சொல்வழி கணிதம்
உதாரணமாக எங்கு நாம் இந்த எண்களை உரைவடிவில் இருந்து புரிந்து கொள்ள வேண்டும் என்றால் ஒலிவழி உணரியின் வழியாக கணிதம் செய்தல் என்றபடி இது தேவைப்படுகிறது. இதனை automatic speech recognition (ASR) என்றும் சொல்லலாம்.
உராணம், எப்படிஇந்த ஒலிவழி சொல்லப்பட்ட கூற்றை கணித்து ஒலிவழி விடைஅளிப்பது?
ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)
முதலில் தமிழ் எண்களை கணினியில் உணரவேண்டும் – இதனை ஓப்பன்-தமிழ் வழி செய்யலாம். பின் இரும-நிலை மரம் (binary tree parsing and post-order traversal) அல்லது பைத்தான் மொழி eval என்ற கட்டமைப்பின் வழியாக எளிதில் கணக்கிடலாம். முழு நிரல்
# This Python file uses the following encoding: utf-8 | |
#!/bin/env python3 | |
# (C) 2020, எழில் மொழி அறக்கட்டளை | |
# இந்த நிரல் ஓப்பன்-தமிழ் நிரல் தொகுப்பில் சேர்ந்ததாகும். | |
# உரைவழி தமிழ் எண்களினை கொண்ட கணிதவியல் | |
# உள்ளீடை கணக்கிடும் ஒரு கருவி. | |
import operator | |
import re | |
import tamil | |
def அச்சிடு(_): print(_) | |
def கணி(_): return eval(_) | |
செயல்சார்புகள் = {"கூட்டல்"😦'+',operator.add),"கழித்தல்"😦'-',operator.sub), | |
"பெருக்கல்"😦'*',operator.mul), "வகுத்தல்"😦'/',operator.truediv)} | |
அதிக_பட்சம் = 1001 | |
இலகுவான_எண்கள் = {} | |
for எண் in range(அதிக_பட்சம்): | |
இலகுவான_எண்கள்[ tamil.numeral.num2tamilstr(எண்) ] = எண் | |
வழுநீகால்_இயக்கம் = True | |
def கணக்கிடு( _தொடர் ): | |
தமிழ்_உரை_தொடர் = re.sub('\s+',' ',_தொடர்) | |
# செயல்சார்புகளை குறியீடுகளாக மாற்றவும் | |
for பெயர்,எண் in செயல்சார்புகள்.items(): | |
தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர்,எண்[0]) | |
for பெயர்,எண் in இலகுவான_எண்கள்.items(): | |
தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர்,'%g'%எண்) | |
if வழுநீகால்_இயக்கம்: | |
அச்சிடு(தமிழ்_உரை_தொடர்) | |
விடை = கணி(தமிழ்_உரை_தொடர்) | |
அச்சிடு(tamil.numeral.num2tamilstr( விடை ) ) | |
return விடை | |
if __name__ == "__main__": | |
assert 2 == கணக்கிடு("ஒன்று கூட்டல் ஒன்று") | |
assert 21 == கணக்கிடு("ஒன்று கூட்டல் இரண்டு பெருக்கல் பத்து") | |
assert 950 == கணக்கிடு("ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)") | |
© 2020 GitHub, Inc. | |
Terms | |
Privacy | |
Security | |
Status | |
Help |
5. முடிவு
சமிபத்தில், ஊரடங்கின் உச்சியான சமயத்தில் உடற்பயிற்சி செய்து கொண்டிருக்கும் சமயம் ஒரு சிந்த்தனை – அதனை நினைத்துப் பார்க்கவே வியப்பாய் இருந்த்தது -“{உங்கள் நாட்டின்/மாநில} அரசு தமிழ் மொழியின் வளர்ச்சியை ஆதரிக்கிறதா?” என்ற கேள்வி. நான் பருகியிருந்த காப்பியை முழுங்கமுடியவில்லை – விடை என்னிடம் இல்லை. மொழி என்பது நாம் பயன்பாட்டில் – அரசு உத்தரவில் கிடையாது. சிந்தைவெளியில் வளர்ச்சியை மந்தைவெளியின் ஊக்கத்தில் பார்ப்பது தவறு என்றும், அரசின் பொருப்பு பதவியை தக்கவைத்துக்கொள்வது என்பதும்தான் தினசர் நிஜமாக உலகெங்கும் உள்ளது. தனி நபர் முயற்சியால் சில செயல்பாடுகளை எதிர்கொள்ளலாம் ஆனால் தமிழ் என்றும் சீன மொழிமாதிரி ஆகும் என்றேல்லாம் பகல்கணவுகள் காண எனக்கு உடன்படாது.