http://qs321.pair.com?node_id=151847


in reply to Perl and Morphology

First, you have to decide the kinds of languages you want to be able to parse. If the list begins and ends with Turkish, you can simplify a lot, as you don't have to worry about non-concatenative kinds of morphology (e.g. reduplication, infixation, ablaut), or even prefixation, for that matter.

You don't say whether your goal is to learn about parsing or simply to be able to parse Turkish words. If the latter, you can save yourself a lot of time and effort by using the parser available at:

http://www.nlp.cs.bilkent.edu.tr/cgi-bin/tmanew

You get results like the following for 'baSlar':

analyze> 1. [[CAT=NOUN][ROOT=baS][AGR=3PL][POSS=NONE][CASE=NOM]] 2. [[CAT=VERB][ROOT=baSla][SENSE=POS][TAM1=AORIST][AGR=3SG]] 3. [[CAT=VERB][ROOT=baSla][SENSE=POS][TAM1=AORIST][CONV=ADJ=NONE]] analyze> bye!


You can use Perl to submit words for parsing and then map the results onto English. You'll also need to preprocess the words to apply some phonological rules, like vowel harmony. For example, you won't get any results from 'baSimda' and have to submit as 'baSImda' instead. You could apply the harmony rules with s///, though if you apply harmony to all words, it will apply incorrectly to disharmonic roots and non-harmonizing suffixes. It's pretty hard to avoid that problem without first having the morphological parse!

ronald