Keywords

1 Introduction

Parts-of-speech (POS) tagging is a process of assigning the words in a text as corresponding to particular parts of speech. POS tagging is also called word category disambiguation. A simplified version of POS tagging is the identification of words as nouns, verbs, adjectives, etc. POS tagging can be regarded as a simplified form of morphological analysis, where it only deals with assigning an appropriate POS tag to the word, whereas morphological analysis deals with finding the internal structure of the word.

Indian languages are morphologically rich, and they have more than one morpheme of a word and due to this, tagging of Indian languages is difficult.

POS tagging is used in various applications like parsing where word and their tags are transformed into chunks, which can be combined to generate the complete parse of a text.

A POS tagger is a piece of software that reads text in some language and assigns parts of speech to each word. Parts of speech include nouns, verbs, adverbs, adjectives, pronouns, conjunction, and their subcategories. There are various approaches of POS tagging, which can be divided into two categories: rule-based tagging and statistical tagging.

The rule-based POS tagging models apply a set of handwritten rules and use contextual information to assign POS tags to words. These rules are often known as context frame rules. The earliest algorithms for automatically assigning POS were based on two-stage architecture. The first stage used a dictionary to assign each word a list of potential parts of speech. The second stage used large lists of handwritten disambiguation rules to bring down this list to a single POS for each word. The necessity of a linguistic background and manually constructing the rules are the main drawbacks of the rule-based systems. A stochastic approach includes frequency and probability or statistics. The simplest stochastic approach finds out the most frequently used tag for a specific word in the annotated training data and uses this information to tag that word in the unannotated text. The problem with this approach is that it can come up with sequences of tags for sentences that are not acceptable according to the grammar rules of a language.

2 Motivation

Automatic text tagging is an important concept in natural language processing. Till now no work has been done on POS tagging in Marathi. Therefore, there is a necessity to develop an automatic POS tagger for Marathi.

3 Problems of Parts-of-Speech Tagging

Ambiguous words are the main problems in parts-of-speech tagging. There may be many words, which can have more than one tag. Many words have multiple meanings. Sometimes it happens that a word has same POS but have multiple meaning.

For example,

  • नयन/NNP नी/PP नयन/NN मधे/CC झाकून/VM बघितला/VAUX

The same word ‘नयन’ is given a different label in a sentence. In the first case, it is termed as a proper noun as it is referring to a name (person). In the second case, it is termed as a common noun as it is referring to body part (eyes). POS tagging tries to correctly identify a POS of a word by looking at the context (surrounding word) in the sentence.

4 Previous Work on Indian Language POS Tagging

A lot of work has been done in POS tagging. There have been several researches carried out in this area. Singh et al. [2] proposed a Manipuri POS tagger using conditional random fields (CRF) and support vector machine (SVM). In this paper, they described a tagger for using CRF and SVM. Their evaluation result demonstrated the accuracies of 72.04 and 74.38 % in the CRF and SVM, respectively. Ekbal and Sivaji [3] proposed Web-based Bengali News Corpus for Lexicon Development and POS tagging, the POS tagger using hidden Markov model (HMM) and SVM. The POS taggers have been developed for Bengali and provide the accuracies of 85.56 % and 91.23 % for HMM and SVM, respectively. Dhanalakshmi et al. [4] present Tamil POS tagging using linear programming. In this paper, they propose the POS tagger for Tamil using machine learning techniques. They found that SVM-based machine learning tool affords the most encouraging result for Tamil POS tagger (95.64 %).

Kumar et al. [5] presented Building Feature Rich POS Tagger for Morphologically Rich Languages: Experiences in Hindi. A statistical part-of-speech tagger for a morphologically rich language Hindi. This Tagger employs the maximum entropy Markov model with a rich set of features capturing the lexical and morphological characteristics of the language. The system achieved the best accuracy of 94.89 % and an average accuracy of 94.38 %. Singh et al. [6], in 2008, proposed POS tagging for Grammar Checking of Punjabi. In this paper, they discuss the issues concerning the development of a POS tagset and a POS tagger for use as a part of the project on developing an automated grammar checking system for the Punjabi Language.

In 2009, Manju et al. [7] proposed Development of a POS Tagger for Malayalam which was a Hidden Markov Model (HMM) based part of speech tagger for Malayalam language. The performance of the developed POS tagger is about 90 %, and almost 80 % of the sequences generated automatically for the test case were found correct. Joshi et al. [8] proposed POS tagging for Hindi. They have used IL POS tagset for the development of this tagger. They disambiguated correct word–tag combinations using the contextual information available in the text. They have achieved the accuracy of 92 %.

Patel et al. [9] proposed POS tagging for Gujarati using CRF. This paper describes a machine learning algorithm for Gujarati POS tagging. The machine learning part is performed using a CRF model. The algorithm has achieved an accuracy of 92 % for Gujarati texts where the training corpus is of 10,000 words and the test corpus is of 5,000 words. Reddy and Sharoff [10] proposed Cross Language POS taggers (and other Tools) for Indian Languages: An Experiment with Kannada using Telugu Resources. They use TnT (Brants 2000) [11], a popular implementation of the second-order Markov model for POS tagging.

5 POS Tagset

A number of POS tagsets are developed by different organization or person based on general principle of tagset design strategy. For POS annotation of texts in Marathi, we have use tagset developed by IIIT Hyderabad (Bharti et al. 2006) [1]. Table 1 shows brief description of IL POS tagset.

Table 1 Description of Marathi POS tagset

6 POS Tagger Procedure

The tagging process follows the following procedure (Fig. 1):

Fig. 1
figure 1figure 1

Working diagram of POS tagger

Tagset finder module contains information about words observed in the corpus. In tagset finder, each word is assigned a set of tags. The tagset finder supports fetching word information by providing information required to determine word feature. Statistics analyzer firstly splits the corpus into sentences and then splits the sentences into words. After that, it stores those words into lexicon table, which lies in statistics database. Tagger tags the words in a sentence with their corresponding tags. After the completion of tagging of words, the tester module provides us the test result.

7 Our Approach

In this paper, we are describing HMM for Marathi POS tagger. Our main aim is to perform POS tagging to determine the most likely tag sequences that generate the words of sentences where ti denotes the tag sequence and wi denotes the word sequence. Then, the following equation explains this fact

$$ P(t_{i} |w_{i} ) = P(t_{i} |t_{{i - 1}} )\cdot P(t_{{i + 1}} |t_{i} )\cdot P(w_{i} |t_{i} ) $$
(1)

Here, \( \begin{aligned} P(t_{i} |t_{{i - 1}} ) & = {\text{ the probability of a current tag given the previous tag}} \\ P(t_{{i + 1}} |t_{i} ) & = {\text{ the probability of the future tag given the current tag}} \\ \end{aligned} \)

This provides the transition between the tags. These probabilities are computed by the following equation:

$$ P\left( {t_{i} |t_{i - 1} } \right) = \frac{{{\text{freq}}(t_{i - 1} ,t_{i} )}}{{{\text{freq}}(t_{i - 1} )}} $$
(2)

Each tag transition probability is computed by calculating the frequency count of two tags that come together in the corpus divided by the frequency count of the previous tag coming independently in the corpus. We used two special tags <S> and </S> to denote the starting of the sentence and the ending of the sentence, respectively, which was added to all the sentences of the training corpus.

8 Evaluation

For testing the performance of our system, we developed a test corpus of 1,000 sentences (25,744 words). We finally report results of all POS taggers in terms of recall, precision, and F-measure because they are considered to be standard performance indicators of a system.

Precision: The precision rate is the number of times that algorithm correctly identifies an event over the total number of times it actually identifies.

$$ {\text{Precision}}(P) = \frac{{{\text{No}} .\,{\text{of }}\,{\text{correct}}\,{\text{POS}}\,{\text{tags}}\,{\text{assigned}}\,{\text{by}}\,{\text{the}}\,{\text{system}}}}{{{\text{No}} .\,{\text{of}}\,{\text{POS}}\,{\text{tags}}\,{\text{assigned}}\,{\text{by}}\,{\text{the}}\,{\text{system}}}} $$

Recall: The recall rate is the number of times that algorithm correctly identified an event over the total number of times that it actually occurred.

$$ {\text{Recall}}(R) = \frac{{{\text{No}} .\,{\text{of}}\,{\text{correct}}\,{\text{POS}}\,{\text{tags}}\,{\text{assigned}}\,{\text{by}}\,{\text{the}}\,{\text{system}}}}{{{\text{No}} .\,{\text{of}}\,{\text{POS}}\,{\text{tags}}\,{\text{in}}\,{\text{the}}\,{\text{text}}}} $$

F-measure: F-measure is the weighted harmonic mean of precision and recall.

$$ {\text{F-measure}}\; = \frac{2 \times P \times R}{P + R} $$

Test scores of our system are as follows:

  • Number of correct POS tags assigned by the system = 24,156

  • Number of POS tags assigned by the system = 25,744

  • Number of POS tags in the text = 25,744.

Thus, the accuracy of the system is 93.82 %.

9 Conclusion

In this paper, we have described a POS tagger for Marathi. The POS tagger described here is very simple and efficient for automatic tagging, but the morphological complexity of the Marathi makes it little hard. The performance of the current system is good, and the results achieved by this method are excellent. We believe that future enhancements of this work would be to improve the tagging accuracy by increasing the size of tagged corpus.