Lemmatization does not (and should not) return "confirmation" for "confirmation". The first is a verb, and the last is a noun. On the other hand, a Porter-based algorithm simply uses a fixed set of rules. So, your only way to change the rules at the source. (NOT the right way to fix your problem).
What you are looking for is a derivation-related “confirmation” form, and WordNet is your best source for this. You can check this online in WordNet .
There are quite a few WordNet-based libraries that you can use to do this (for example, in JWNL in Java). In Python, NLTK should be able to get the derivative-related formula you saw on the Internet:
from nltk.corpus import wordnet as wn acknowledgment_synset = wn.synset('acknowledgement.n.01') acknowledgment_lemma = acknowledgment_synset.lemmas[1] print(acknowledgment_lemma.derivationally_related_forms())
source share