I took the corpus from Heliost and blogs and newspapers. The corpus had non hindi words and numbers. To remove them I used "sed" commands to prune it. Then catenated the whole corpus into a single file using "cat" command. Then I used python script to generate frequency wordlist. Then further tweaking used "sed" to remove spaces and other non-hindi words and other errors.
I executed the code in two ways: 1. Took top 90k words in a file and ran the code on this file. The Accuracy came to be 22/244 2. Took all the words -5L (The code could not give segmentation for all the words in corpus).The segmentation was generated for 1L words. The accuracy came out to be 61/283. Then I changed the parameters of LOW_FREQUENCY_DROPOUTS_LEARNING to 3 and WRFR_PREFIX_THRESHOLD to 2, this increased the accuracy further, but not significantly. The change on changing WRFR_SUFFIX_THRESHOLD to 5 was more in comparision to prefix.Accuracy came out to be 107/283
Final Undivided++ parameters used : #define SMALL_ROOT_LENGTH 3 #define LOW_FREQUENCY_DROPOUTS 2 #define LOW_FREQUENCY_DROPOUTS_LEARNING 3 #define SUFFIX_CUTOFF_THRESHOLD 75 //CRITICAL #define PREFIX_CUTOFF_THRESHOLD 55 //CRITICAL #define COMPOSITE_SUFFIX_THRESHOLD 0.65 #define WRFR_SUFFIX_THRESHOLD 6 #define WRFR_PREFIX_THRESHOLD 1.5 #define SLS_NORMALIZATION_CONSTANT 5 #define ALLOMORPH_REPLACEMENT_THRESHOLD 3 #define ALLOMORPH_DELETION_THRESHOLD 3 #define ALLOMORPH_ADDITION_THRESHOLD 3 #define PROMOTE_LONG_SEGMENTATION 0 #define PROMOTE_LONG_SEGMENTATION_LENGTH 12 #define INDUCE_OUTOFVOCABULARY_ROOTS 0 #define INDUCE_OUTOFVOCABULARY_ROOTS_THRESHOLD 5
| Trial | Precision | Recall | F-Score |
|---|---|---|---|
| Final | 0.54 | 0.81 | 0.65 |