I would like to write a program that can automatically group e.g. 'happiness', 'happily', 'happy' into 'happy':

  1. What do I need to read to get a handle on this subject? What is it called? What is the state-of-the-art?
  2. Are there any out of the box tools I can use for this?
  3. WordNet claims to include some cross-POS links, and its home page states that "Relational adjectives ("pertainyms") point to the nouns they are derived from (criminal-crime).". How do I access these using, for example, Python's NLTK?

I've read some posts referring to 'nounification' (I guess I want to 'adjectify') but can't find any solid answers.

Appreciate the help!

  • 4
    I guess you're looking for a lemmatizer. There are many free or Free implementations.
    – prash
    Sep 24, 2014 at 23:48
  • Hmm - nltks wordnet lemmatizer does not merge 'happily' and 'happiness' - can two different parts of speech be considered lemmas of one another? Sep 25, 2014 at 7:04
  • 3
    Are you trying to do stemming? There's an nltk package for that. Basically, it removes all modifiers from a word so you just have the stem (or root) word left. Sep 26, 2014 at 13:48
  • 1
    @hippietrail: sure, but I almost never recommend a stemmer: it seems so useless unless the user has very special circumstances :)
    – prash
    Sep 28, 2014 at 14:29
  • 1
    OP here. I have thousands of single word responses some of which are emotions. Unfortunately, respondents have generated e.g. happiness, happy, happily when they mean to say 'happy' and joy, joyfully, joyously when they mean 'joy', etc. I want to normalize so that in the first case the three words get rolled into the e.g. adjective form, 'happy' and in the second case 'joyful'. If I use wordnet's lemmatizer from python's nltk, this does not seem to combine happiness, happy, and happily - they remain distinct. If I stem instead, do I run the risk of combining e.g. happy and hapless into hap? Sep 29, 2014 at 9:18

1 Answer 1


Based on your comment, you seem to be looking for positive words with the intent of performing sentiment analysis (generally lists are divided into positive, negative, and neutral). Here are some lists to get started with (a Google search will turn up plenty more):

As a side note, word lists are only marginally helpful in detecting/classifying sentiment. It will capture the low-hanging fruit, but not more complicated or ambiguous phrases such as "watch the movie" (which is a positive movie review, but a negative book review).

As far as extracting pertainyms goes, any good POS-tagger will allow you to identify the predicted direct object of a verb and whatnot, but as you are likely aware, this is fraught with its own complications.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.