В недавнем проекте я столкнулся с задачей превратить множественные существительные в единичные формы. Я знаю некоторые POS-метки algortihms и инструменты, которые могут распознавать множественные формы существительных и помечать их как "NNS", но я не знал ни одного алгоритма, который мог бы превратить их в единичные формы. Я пытался судить, но вывод кажется слишком агрессивным, чтобы преобразовать слово. Это дает что-то вроде этого:
parties -> parti
Но я хочу:
fish -> fish
classes -> class
parties -> party
goods -> goods
cups -> cup
Кажется, это сложная проблема без огромного словаря с каждым английским словом. Есть ли зрелые альгортимы, которые могут это сделать? Я также рад узнать, есть ли библиотека, которая может это сделать, особенно библиотеки на Java. Благодарю.
То, что вы хотите, это lemmatizer вместо стебля. В Java есть несколько реализаций. Я считаю, что Stanford CoreNLP проще всего использовать из командной строки. Морфа также довольно популярна.
PS Ваш вопрос повторяется. Я отвечаю, потому что найти ответ на него через Google удивительно сложно.