Вы можете преобразовать слово в нижний регистр перед передачей его в лемматизатор и впоследствии восстановить регистр.
Я использовал этот код в прошлом:
word = 'Americans'
lemmatized = wnl().lemmatize(word.lower())
if word.istitle():
word = lemmatized.capitalize()
else:
word = lemmatized
# word = 'American'
Это предполагаетчто в одном слове нет нескольких прописных букв (например, «MySpace»), что было верно для моего случая в то время.Я думаю, что в целом это так, поскольку слова с несколькими заглавными буквами, как правило, являются собственными существительными, и, следовательно, обычно нет необходимости их лемматизировать.
Если вас интересует все слово UPPERCASE, вы можете включитьэтот случай также:
word = 'AMERICANS'
lemmatized = wnl().lemmatize(word.lower())
if word.istitle():
word = lemmatized.capitalize()
elif word.upper()==word:
word = lemmatized.upper()
else:
word = lemmatized
# word = 'AMERICAN'