தமிழின் எதிர்காலமும் தகவல் தொழில்நுட்பமும் 26. சொற்பிழைத் திருத்தி

தமிழுக்குச் சொல்திருத்தியே தேவையில்லை என்றொரு கருத்து

ஆங்கிலத்தில் உச்சரிப்பை வைத்து எழுத்துக்கோர்வை சொல்ல முடியாது. ஆகவே எழுத்துப்பிழைகள் நிகழ்வதற்கான சாத்தியங்கள் உள்ளன. தமிழிலோ எப்படி உச்சரிப்போ அப்படியே எழுதுகிறோம் (Phonetic language). ஆகவே தமிழுக்குச் சொல்திருத்தியே தேவையில்லை என்றொரு கருத்து நிலவுகிறது.  

ஆனால் மயங்கொலி என்று சொல்லப்படும் ல-ள-ழ, ண-ந-ன, ர-ற ஆகியவற்றில் எது சரி என்று தெரியாமல் நாம் தவறு செய்கிறோம். மேலும் ‘fat finger’ என்று ஆங்கிலத்தில் கூறப்படும் தவறான விசையை அழுத்துவதால் ஏற்படும் தட்டச்சுப்  பிழைகளையும் பார்க்கிறோம். ஒற்றுப்பிழை எனும் வல்லினம் மிகும் மிகா இடங்கள் எது என்பதில் பெரும்பாலோருக்கு ஐயமுண்டு. மற்றும் எச்சொற்களைச் சேர்த்து எழுதுவது எவற்றைப் பிரித்து எழுதுவது என்பதிலும் குழப்பம் அதிகம். விக்கிமூலம் போன்ற இடங்களில் ஒளி எழுத்துணரி பிழைகளும் நிறைய உள்ளன. ஆகவே தமிழுக்குச் சொல்திருத்தி தேவைதான். ஆனால் ஆங்கிலச் சொல்திருத்தியின் நகலாக இல்லாமல் தனித்தன்மை வாய்ந்ததாக இருக்க வேண்டும். எனினும் பாமா விஜயம் திரைப்படத்தில் வருவது போல ‘முடித்துத் தருவோம்’ என்பதற்குப் பதிலாக ‘முடி திருத்துவோம்’ என்று எவரும் தட்டச்சு செய்தால், இவையும் சொற்தொகுதியில் இருக்கும் சொற்கள் என்பதால், பிழையென்று எந்தச் சொல்திருத்தியாலும் சுட்டிக்காட்ட முடியாது!

உரையில் சொற்பிழை சரிபார்ப்பு பின்வரும் படிகளைக் கொண்டுள்ளது

  • உரையிலிருந்து நாம் சரிபார்க்க விரும்பும் சொற்களைப் பிரித்தெடுத்துக் கொள்ளுதல் (tokenizing).
  • ஒரு சொல் அகராதியில் உள்ளதா என்று முதலில் பார்த்தல்.
  • இல்லாவிட்டால், அடுத்து அடிச்சொல் (lemma) மற்றும் ஒட்டுகளை விதிப்படி சேர்த்து அந்தச் சொல் வருகிறதா என்று பார்த்தல்.
  • இரண்டிலும் இல்லாவிட்டால், அது தவறான சொல். தவறான சொற்களுக்கு, அகராதியிலும், ஒட்டுகளைச் சேர்த்தும் இதே போன்ற வேட்பு சொற்களைக் (candidate words) கண்டறிவதன் மூலம் திருத்தங்களைப் பரிந்துரைத்தல்.

வேட்பு சொற்கள்

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

  1. செருகல் பிழை (insertion): ஒரு கூடுதல் எழுத்து சேர்தல், எ.கா., truly -> truely. ஒரு முக்கியமான சிறப்பு வழக்கு மீண்டும் அதே எழுத்து, எ.கா., occasion -> occassion. (இந்தப் பிழை தமிழில் அரிது.)
  2. விடுபடு பிழை (deletion): ஒரு எழுத்து விட்டுப்போய் விட்டது, எ.கா., unnecessary -> unnecesary
  3. பதிலீட்டுப் பிழை (substitution): ஒரு எழுத்துக்குப் பதிலாக வேறொரு எழுத்து உள்ளது, எ.கா., separate -> seperate.
  4. இடமாற்றுப் பிழை (transposition): இரண்டு தொடர்ச்சியான எழுத்துகள் இடமாற்றம் ஆகியுள்ளன, எ.கா., receive -> recieve.

பெரும்பாலான சொற்பிழைகள் இந்த ஒரு திருத்துத் தூரத்தில்தான் வரும்.

சொற்பிழைத் திருத்தி

சொற்பிழைத் திருத்தி

ஹன்ஸ்பெல் திறந்த மூல சொற்பிழைத் திருத்தி

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

ஹன்ஸ்பெல் (Hunspell) திறந்த மூல மென்பொருள் முதலில் ஹங்கேரிய மொழிக்காக எழுதப்பட்டது, இதன் முக்கிய பங்களிப்பாளர் லாஸ்லோ நெமெத். ஹங்கேரிய மொழியும் பல ஒட்டுகள் கொண்டது. எ.கா., ház-a-i-é-i-nek (அவர்களின் வீடுகளுடைய). ஹன்ஸ்பெல் சொற்பிழை திருத்தியில் இம்மாதிரி சொற்கள் முற்றிலும் ஒட்டுகளைப் பிரிப்பதன் மூலம் தீர்க்கப்படும். இது தமிழ் போன்ற சொற்றொடரியல் ரீதியாக வளமான மொழிகளுக்கும் ஒத்து வரும். இதைத் தமிழுக்குப் பயன்படுத்த வேண்டுமானால் அடிச்சொற்களைக் கொண்ட அகராதியையும் முன்னொட்டு, பின்னொட்டுகளுக்கான விதிகளையும் தயாரிக்க வேண்டும்.

தமிழுக்கு நான் உருவாக்கிய ஹன்ஸ்பெல் பின்னொட்டு விதிகள்

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

  • வினைச்சொல்: இதற்கான பின்னொட்டு விதிகள் ஒவ்வொரு அடிச்சொல்லுக்கும் சுமார் 8500 சொல் வேறுபாடுகளை உருவாக்குகின்றன. 1000-க்கும் மேலான வினைச்சொற்களைக் குறியிட்டுள்ளேன்.
  • பெயர்ச்சொல்: இதற்கான பின்னொட்டு மற்றும் முன்னொட்டு விதிகள் சேர்ந்து ஒவ்வொரு அடிச்சொல்லுக்கும் சுமார் 2500 சொல் வேறுபாடுகளை உருவாக்குகின்றன. 4000-க்கும் மேலான பெயர்ச்சொற்களைக் குறியிட்டுள்ளேன்.

என் சொற்பட்டியலில் சுமார் 330,000 சொற்கள் மட்டுமே உள்ளன. இருப்பினும் இந்த சுமார் 30,000 வரிகள் கொண்ட ஒட்டு விதிகள் மொத்தம் 20 மில்லியனுக்கும் மேலான வினைச்சொல் மற்றும் பெயர்ச்சொல் வேறுபாடுகளை உருவாக்குகின்றன!

ஹன்ஸ்பெல்லில் முக்கியக் குறைபாடு என்னவென்றால், ஒற்றுப்பிழை கண்டுபிடிக்க நேரடி ஆதரவு இல்லை. தவிர இது சொற்களைச் சேர்த்து எழுதுவது பிரித்து எழுதுவதால் ஏற்படும் பிழைகளையும் கையாளுவதில்லை. இது திறந்த மூல நிரல் ஆகையால் இதை நீட்சி செய்ய முடியுமா என்று பார்க்க வேண்டும். இது C++ இல் எழுதப்பட்டது. ஆனால் பைதான் மற்றும் ஜாவா உள்ளிட்ட பல மொழிகளுக்கு இடைமுகங்கள் மற்றும் மாற்றியெழுதிய நிரல்கள் உள்ளன.

லேங்குவேஜ் டூல் திறந்த மூல சொற்பிழைத் திருத்தி

திறந்த மூல சொற்பிழைத் திருத்தி பற்றி மலேசியா நண்பர்கள் சி. ம. இளந்தமிழ் & வே. இளஞ்செழியன் எழுதிய கட்டுரை இங்கே. இக்கட்டுரையில் லேங்குவேஜ் டூல் (Language Tool) பற்றிய முக்கிய குறிப்புகள் சில. “லேங்குவேஜ் டூல் ஒற்றுப்பிழை மட்டுமின்றி சொற்களைச் சேர்த்தும் பிரித்தும் எழுதுவதால் ஏற்படும் தவறுகளையும் கண்டுபிடிக்கும் வசதியைக் கொண்டிருக்கிறது.

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

இத்திருத்தி இலக்கணப்பிழைகளைக் கண்டுபிடிக்க இரண்டு அடிப்படைக் கோப்புகளைப் பயன்படுத்துகின்றது. முதலாவது கோப்பு – tamil.dict – சொற்பட்டிலையும் சொற்பகுதிக் குறிப்பையும் (POS tags) கொண்டிருக்கிறது. இரண்டாவது கோப்பு – grammar.xml – இலக்கண விதிகளைக் கொண்டிருக்கிறது. இக்கோப்புகளைப் பயன்படுத்தி ஒரு சொற்றொடரில் உள்ள பிழைப் பாங்குகளை (error patterns) கண்டுபிடித்து, அவற்றைப் பிழையெனக் குறிப்பிடுவதோடு, அப்பாங்குகளை எவ்வாறு திருத்தி அமைக்கலாம் எனவும் லேங்குவேஜ் டூல் பரிந்துரைக்கிறது.”

லேங்குவேஜ் டூல் இணையதளத்தில் தமிழைத் தேர்வு செய்து உரையை உள்ளிட்டு சரிபார்த்தால் பின்வருமாறு சொற்களைச் சேர்த்தும் பிரித்தும் எழுதப் பரிந்துரை செய்கிறது. “வேண்டும்” என்ற வினைமுற்று வடிவம்முன் இடம்விட வேண்டும்: “கற்க வேண்டும்”. பெயரெச்சத்தின் பின் ‘போது’ வந்தால் சேர்த்து எழுத வேண்டும்: “தேவைப்படும்போது”.

ஆக, தமிழில் சொற்பிழைகளைக் கண்டுபிடிக்க நம்மிடம் ஹன்ஸ்பெல் உள்ளது. லேங்குவேஜ் டூல் ஒற்றுப்பிழையையும் சொற்களைச் சேர்த்தும் பிரித்தும் எழுதுவதால் ஏற்படும் தவறுகளையும் கண்டுபிடிக்கிறது. இவை இரண்டையும் ஒருங்கிணைத்தால் (integration) நமக்கு ஒரு முழுமையான தமிழ் பிழைத்திருத்தி கிடைக்கும் வாய்ப்பிருக்கிறது. லேங்குவேஜ் டூல் ஜாவா மொழியில் எழுதி LGPL உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது. இதை ஒரு சவாலாக எடுத்துச்செய்ய தமிழ் சமூக நிரலாளர்கள் முன் வருவார்களா?

ashokramach@gmail.com

—————–

இத்தொடரில் அடுத்த கட்டுரை: உணர்வு பகுப்பாய்வும் சமூக ஊடகங்களும்

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

%d bloggers like this: