User:Velraam

Google Summer of Code 2013 Proposal for Swathanthra Malalayalam Computing

Personal Information
Email Address                   ː velmurugan686@cse.ssn.edu.in Blog URL                         ː http://velmurugancse.blogspot.in/ Freenode IRC Nick               ː velraam University and current education ː B.E Computer Science, Anna University Chennai. Sri sivasubramaniya nadar college of engineering.Chennai.

Why do you want to work with the Swathanthra Malayalam Computing?
SMC is involved in Indic language computing though it focuses on Malayalam. I want to pay my contribution to my mother tongue Tamil through my programming knowledge.

Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?
No.I haven't contributed to open source projects before.

Did you participate with the past GSoC programs, if so which years, which organizations?
No, I've not participated in GSoC programs before.

Do you have other obligations between May and August ? Please note that we expect the Summer of Code to be a full time, 40 hour a week commitment
I will be able to work 40 hours a week starting from May.

Will you continue contributing/ supporting the Swathanthra Malayalam Computing after the GSoC 2013 program, if yes, which area(s), you are interested in?
I will definitely continue contributing along with maintaining my project after GSoC. My interested area includes Tamil computing projects in specific to Tamil grammar

Why should we choose you over other applicants?
I'm an open source enthusiast took part in many open source events and activities conducted by small groups such as ILUG-C (Indian Linux users group chennai). I took part in workshop conducted by wikipedia and mozilla in our college campus. I've attended monthly meetings of ILUG-C frequently. I want a chance to prove my self through this project. Moreover I have sufficient knowledge in Tamil grammar and passion to serve my language.

Proposal Description
The current spell checker lacks some features in Tamil. The proposed project aims to make it work with linux based system so that we can serve the open source community and also to work with applications such as Libre office. currently it have some issues in it. So those issues need to fixed.

An overview of your proposal
The proposed project aims at building more advanced spellchecker which works for multilevel suffix stripping as required for Tamil. It will also have features to handle inflections and agglutinations in Tamil. The plan is to use hunspell algorithm. For this hunspell files has to be written for Tamil, after scripting data needed for files. Hunspell supports two fold suffix stripping by extension. If it does not support five level suffix stripping a python based solution has to be found out. In order to write files for hunspell,Tamil grammar system and it's rules for word combinations has to be studied in detail.

The need you believe it fulfills
Apart from basic spell checker SILPA provides, hunspell algorithm will help people to use spell checker more efficiently.Implementing hunspell algorithm has following benefits :


 * Performs spell checking of complex words
 * Spell checks inflecting and agglutinating words
 * Spell checks multi level suffix stripping words
 * Give suggestions for the complex words
 * Handle conditional affixes
 * Support complex compoundings

Tamil, like other Dravidian languages, is an agglutinative language. Tamil words consist of a lexical root to which one or more affixes are attached. Most Tamil affixes are suffixes. Tamil suffixes can be derivational suffixes, which either change the part of speech of the word or its meaning, or inflectional suffixes, which mark categories such as person, number, mood, tense, etc. There is no absolute limit on the length and extent of agglutination, which can lead to long words with a large number of suffixes, which would require several words or a sentence in English. To give an example, the word pōkamuṭiyātavarkaḷukkāka means "for the sake of those who cannot go", and consists of the following morphemes:

pōka 	 	  	muṭi 	  	  	y 	  	  	āta 	  	  	var 	  	  	kaḷ 	  	ukku 	  	  	āka

go 	 	  	accomplish 	  	  	word-joining letter 	  	  	negation (impersonal) 	 	  	nominalizer he/she who does 	 	  	plural marker 	  	  	to 	  	  	for

Words formed as a result of the agglutinative process are often difficult to translate. According to Today Translations,[2] a British translation service, the Tamil word "செல்லாதிருப்பவர்" (sellaathiruppavar, meaning a certain type of truancy †) is ranked

8th in The Most Untranslatable Word In The World list.

Any relevant experience you have
No. I don't have any experience but I have the confidence to lean those thing quickly as possible.

How you intend to implement your proposal
Hunspell is a spell checker and program designed for languages with complex word compounding or character encoding.It uses terminal like interfaces. Hunspell algorithm can be implemented for spellchecker.

In hunspell algorithm two files are used for spell checking.

1. A dictionary file containing list of words in Tamil. The first line of the file contains word count. Each word can optionally be followed by a slash('/') and flags which represents affixes. A second word separated by a slash sets the affixation.

2. An affix file which contains optional attributes.Some of these attributes are

REP - It sets a replacement table for multiple character corrections for suggestions. It is not applied for the correct word. The first REP is header which gives the number of REPs used followed by REPs from the next line. REP can be used if right word forms differs by 1 or more characters.

PFX – It defines prefix

SFX – It defines suffix

TRY – It sets change characters for suggestions.It is not applied for correct word.It suggests the right word forms

There are also options for compounding of words in hunspell. The compound header gives number of compound definitions. The words can be first,middle,last,only middle etc elements in compound words. For this flags are defined in affix file and it is used in dictionary file.

Hunspell also supports two fold suffix stripping for agglutinating languages. Single suffix stripping is extended for this purpose. Hunspell can also handle many affix classes. The Hunspell provides library routines which gives the user word-level linguistic functions : spell checking - spell and correction -suggest. It’s constructor needs paths of the affix and dictionary files.

We have to make these two files with necessary data for Tamil spell checker.Suffix stripping can be extended to achieve any multilevel suffix stripping.If it doesn't work in hunspell, an algorithm to be implemented in python has to be found out.Help can be sought from language communities if needed for scripting.The dictionary file is already written for silpa. The main task will be creating an affix file in hunspell for Tamil. SinceTamil is an agglutinating language spell checking program can be more complicated.

Tell us something about you have created
NO. I haven't created any successfull projects yet.

Have you communicated with a potential mentor? If so who?
NO. I've not communicated with Santhosh Thottingal(mentor).

SMC Wiki link of your proposal
http://wiki.smc.org.in/User:velraam