Tuesday, July 18, 2006

The Malayalam Spell Checker in Open Office

The syntax of Malayalam is such that, prepositions, tense, and various gramatical modifiers like at, for, interogation, gender are all fixed to the verbs and nouns as suffixes. Open Office Dictionary uses a very simple approach to this problem. This I suspect expects all possible combination of words to be added to the dictionary. A rather stupid alternative to a real spell checking solution that understands the language morphology.

Let me clarify that once again:

If a space before and after a word is the only criterion to determine a Malayalam, then all possible combination should be added to the dictionary. Lets take the example of one such word (അവിഷ്കഅരം):

ആവിഷ്കാരം, ആവിഷ്കാരവും, ആവിഷ്കരിക്കുന്നില്ല, ആവിഷ്കരിച്ചവന്‍, ആവിഷ്കരിച്ചവള്‍, ആവിഷ്കരിച്ചവര്‍, ആവിഷ്കരിച്ചവന്, ആവിഷ്കരിച്ചവള്‍ക്, ആവിഷ്കരിച്ചവര്‍ക്, ആവിഷ്കരിക്കുന്നു, ആവിഷ്കരിക്കുന്ന, ആവിഷ്കരിക്കാത്ത, ആവിഷ്കരികും, ആവിഷ്കരിചിരുന്നു, ആവിഷ്കരിക്കാത്തവള്‍, ആവിഷ്കരിചിരന്നവള്‍, ആവിഷ്കരിചിരന്നവന്‍, ആവിഷ്കരിചിരന്നവര്‍, ആവിഷ്കരിച്ചു, ആവിഷ്കരിച്ചില്ല, ആവിഷ്കരിക്കണം, ആവിഷ്കരികേണ്ട, ആവിഷ്കരികേണ്ടിവനില്ല, ആവിഷ്കരികേണ്ടിവന്നു, ആവിഷ്കരിക്കുമ്പോള്‍, ആവിഷ്കരികുമ്പോലെ, ആവിഷ്കരികേണ്ടിവരും, ആവിഷ്കരിക്കണ്ടേ, ആവിഷ്കരിക്കേണ്ട, ആവിഷ്കരിക്കുന്നില്ല, ആവിഷ്കരികുന്നവന്‍, ആവിഷ്കരിക്കുന്നവള്‍, ആവിഷ്കരികുന്നവര്‍, ആവിഷ്കരിച്ചിലെങ്കില്‍, ആവിഷ്കരികുമോ

It would be better to create a matrix of words and prefixes. with two numbers to indicate the break -off of the prefix string and start of the word string. Like below
0 1
3 2
അംഗീകാരം സംരക്ഷണം
ാരവും അംഗീകാരവും സംരക്ഷണവും (exception)
രിക്കുന്നില്ല അംഗീകരിക്കുന്നില്ല സംരക്ഷിക്കുന്നില്ല
രിച്ചവന്‍ അംഗീകരിച്ചവന്‍ സംരക്ഷിച്ചവന്‍
രിച്ചവള്‍ അംഗീകരിച്ചവള്‍ സംരക്ഷിച്ചവള്‍
രിച്ചവര്‍ അംഗീകരിച്ചവര്‍ സംരക്ഷിച്ചവര്‍
രിച്ചവന് അംഗീകരിച്ചവന് സംരക്ഷിച്ചവന്
രിച്ചവള്‍ക് അംഗീകരിച്ചവള്‍ക് സംരക്ഷിച്ചവള്‍ക്
രിച്ചവര്‍ക് അംഗീകരിച്ചവര്‍ക് സംരക്ഷിച്ചവര്‍ക്
രിക്കുന്നു അംഗീകരിക്കുന്നു സംരക്ഷിക്കുന്നു
രിക്കുന്ന അംഗീകരിക്കുന്ന സംരക്ഷിക്കുന്ന
രിക്കാത്ത അംഗീകരിക്കാത്ത സംരക്ഷിക്കാത്ത
രികും അംഗീകരികും സംരക്ഷികും
രിചിരുന്നു അംഗീകരിചിരുന്നു സംരക്ഷിചിരുന്നു
രിക്കാത്തവള്‍ അംഗീകരിക്കാത്തവള്‍ സംരക്ഷിക്കാത്തവള്‍
രിചിരന്നവള്‍ അംഗീകരിചിരന്നവള്‍ സംരക്ഷിചിരന്നവള്‍
രിചിരന്നവന്‍ അംഗീകരിചിരന്നവന്‍ സംരക്ഷിചിരന്നവന്‍
രിചിരന്നവര്‍ അംഗീകരിചിരന്നവര്‍ സംരക്ഷിചിരന്നവര്‍
രിച്ചു അംഗീകരിച്ചു സംരക്ഷിച്ചു
രിച്ചില്ല അംഗീകരിച്ചില്ല സംരക്ഷിച്ചില്ല
രിക്കണം അംഗീകരിക്കണം സംരക്ഷിക്കണം
രികേണ്ട അംഗീകരികേണ്ട സംരക്ഷികേണ്ട
രികേണ്ടിവനില്ല അംഗീകരികേണ്ടിവനില്ല സംരക്ഷികേണ്ടിവനില്ല
രികേണ്ടിവന്നു അംഗീകരികേണ്ടിവന്നു സംരക്ഷികേണ്ടിവന്നു
രിക്കുമ്പോള്‍ അംഗീകരിക്കുമ്പോള്‍ സംരക്ഷിക്കുമ്പോള്‍
രികുമ്പോലെ അംഗീകരികുമ്പോലെ സംരക്ഷികുമ്പോലെ
രികേണ്ടിവരും അംഗീകരികേണ്ടിവരും സംരക്ഷികേണ്ടിവരും
രിക്കണ്ടേ അംഗീകരിക്കണ്ടേ സംരക്ഷിക്കണ്ടേ
രിക്കേണ്ട അംഗീകരിക്കേണ്ട സംരക്ഷിക്കേണ്ട
രിക്കുന്നില്ല അംഗീകരിക്കുന്നില്ല സംരക്ഷിക്കുന്നില്ല
രികുന്നവന്‍ അംഗീകരികുന്നവന്‍ സംരക്ഷികുന്നവന്‍
രിക്കുന്നവള്‍ അംഗീകരിക്കുന്നവള്‍ സംരക്ഷിക്കുന്നവള്‍
രികുന്നവര്‍ അംഗീകരികുന്നവര്‍ സംരക്ഷികുന്നവര്‍
രിച്ചിലെങ്കില്‍ അംഗീകരിച്ചിലെങ്കില്‍ സംരക്ഷിച്ചിലെങ്കില്‍
രികുമോ അംഗീകരികുമോ സംരക്ഷികുമോ

I created the above table in MS excel. and the cell formula used to create the table is given below.

=LEFT(B$3,LEN(B$3)-B$2)&RIGHT($A4,LEN($A4)-B$1)

If anyone knows where the Openoffice Malayalam Dictionary is stored, Please let me know.

3 comments:

  1. Malayalam Openoffice.org ഇന്റെ Dictionary എവിടയാണെന്ന് ആര്‍കെങ്കിലും അറിയാമോ

    ReplyDelete
  2. ബെന്നി ഇതുപോലെയൊന്ന്‌ (എല്ലാ morphemes-ന്റേയും ഒരു കളക്ഷന്‍) ചെയ്യുന്നുണ്ടായിരുന്നു. അതുകൊണ്ട്‌ ബെന്നിക്കറിയേണ്ടതാണ് നിഷാദ് പറഞ്ഞ അപ്രോച്ചിലേയും സി.ഡിറ്റിന്റെ അപ്രോച്ചിലേയും പ്രശ്നങ്ങള്‍. അതുപോലെ ഈ സ്പെല്‍ ചെക്കറിനുപിന്നില്‍ പ്രവര്‍ത്തിച്ച ജഗനേയും ശ്രീകുമാറിനേയും പരിചയമുണ്ട്‌. ഞാനവര്‍ക്കീ ബ്ലോഗ് കാണിച്ചു കൊടുക്കട്ടെ.

    ReplyDelete
  3. കൈപ്പള്ളീ,

    ഇതു ഞാന്‍ ഏറെ വൈകി ഇപ്പോഴാണു കാണുന്നത്.

    കൈപ്പള്ളിയുടെ ഈ ഐഡിയ തന്നെ എനിക്കുമുണ്ട്. ഞാന്‍ ഇത് ബെന്നിയുമായി ചുരുക്കത്തില്‍ സംസാരിച്ചിട്ടുമുണ്ട്. വിശദമായി സംസാരിക്കാന്‍ അവസരം കാത്തിരിക്കുകയാണ്.

    ധാതുക്കളുടെ ഒരു Classified table, പ്രത്യയങ്ങളുടെ മറ്റൊരു classified table, ഇവ ചേരാവുന്ന വഴികളെപ്പറ്റി ഇനിയുമൊരു Table, ഒടുവില്‍ ഇതൊന്നും സമ്മതിക്കാത്തവയ്ക്ക് ഒരു special excemption table.
    ഇവ വെച്ച് വേണം തുടങ്ങാന്‍. അങ്ങനെ വരുമ്പോള്‍ ലക്ഷക്കണക്കിനുള്ള വാക്കുകള്‍ ആയിരക്കണക്കിനായി ചുരുങ്ങും.

    കേരളപാണിനീയത്തിന്റെ അവസാനാദ്ധ്യായം ഒരു നല്ല വഴികാട്ടിയായിരിക്കും.
    ഇന്നല്ലെങ്കില്‍ അഞ്ചോ പത്തോ കൊല്ലം കഴിയുമ്പോഴേക്കും ഇങ്ങനെ ഒരെണ്ണം ആരെങ്കിലും ഉണ്ടാക്കും, ഉണ്ടാക്കിയേ തീരൂ... It is a logical inevitability.

    ഇതില്‍ വരാവുന്ന പ്രധാനപ്രശ്നം അന്യഭാഷാപദങ്ങളും ശുദ്ധസംസാരഭാഷാപദങ്ങളും ആവും.


    PS. എന്താ കൈപ്പള്ളീ, ഈ വിലപ്പെട്ട പോസ്റ്റുകളും കമന്റുകളും ഞങ്ങള്‍ കാണാതെ പോവുന്നത്? പിന്മൊഴിഗൂഗിളത്തില്‍ അംഗമല്ലേ?

    ReplyDelete

ഇതെല്ലാം വായിച്ചിറ്റ് ഒന്നും പറയാനില്ലി?
ഇതിനെപറ്റി എന്തരെങ്കിലുമെക്ക പറ..