Converting text to its base form using lemmatization

The goal of lemmatization is also to reduce words to their base forms, but this is a more structured approach. In the previous recipe, we saw that the base words that we obtained using stemmers don't really make sense. For example, the word "wolves" was reduced to "wolv", which is not a real word. Lemmatization solves this problem by doing things using a vocabulary and morphological analysis of words. It removes inflectional word endings, such as "ing" or "ed", and returns the base form of a word. This base form is known as the lemma. If you lemmatize the word "wolves", you will get "wolf" as the output. The output depends on whether the token is a verb or a noun. Let's take a look at how to do this in this recipe.

How to do it…

  1. Create a new Python file, and import the following package:
    from nltk.stem import WordNetLemmatizer
  2. Let's define the same set of words that we used during stemming:
    words = ['table', 'probably', 'wolves', 'playing', 'is', 
            'dog', 'the', 'beaches', 'grounded', 'dreamt', 'envision']
  3. We will compare two lemmatizers, the NOUN and VERB lemmatizers. Let's list them as follows:
    # Compare different lemmatizers
    lemmatizers = ['NOUN LEMMATIZER', 'VERB LEMMATIZER']
  4. Create the object based on WordNet lemmatizer:
    lemmatizer_wordnet = WordNetLemmatizer()
  5. In order to print the output in a tabular form, we need to format it in the right way:
    formatted_row = '{:>24}' * (len(lemmatizers) + 1)
    print '
    ', formatted_row.format('WORD', *lemmatizers), '
    '
  6. Iterate through the words and lemmatize them:
    for word in words:
        lemmatized_words = [lemmatizer_wordnet.lemmatize(word, pos='n'),
               lemmatizer_wordnet.lemmatize(word, pos='v')]
        print formatted_row.format(word, *lemmatized_words)
  7. The full code is in the lemmatizer.py file. If you run this code, you will see the following output. Observe how NOUN and VERB lemmatizers differ when they lemmatize the word "is" in the following image:
    How to do it…
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.202.103