Этот вопрос является возможным дубликатом лемматизатора в R или python (am, are, is → be?), но я добавив его снова, поскольку предыдущий был закрыт, говоря, что он слишком широк, и единственный ответ, который он имеет, неэффективен (поскольку он обращается к внешнему веб-сайту для этого, что слишком медленно, так как у меня очень большой корпус, чтобы найти леммы для). Поэтому часть этого вопроса будет аналогична вышеупомянутому вопросу.
Согласно Википедии, лемматизация определяется как:
Лемматизация (или лемматизация) в лингвистике - это процесс группировки различных искаженных форм слова, чтобы они могли анализироваться как единый элемент.
Простой поиск Google для лемматизации в R будет указывать только на пакет wordnet
of R. Когда я попробовал этот пакет, ожидая, что вектор символа c("run", "ran", "running")
, введенный в функцию лемматизации, приведет к c("run", "run", "run")
, я увидел что этот пакет обеспечивает функциональность, аналогичную функции grepl
, через различные имена фильтров и словарь.
Пример кода из пакета wordnet
, который дает максимум 5 слов, начинающихся с "car", поскольку имя фильтра объясняет сам себя:
filter <- getTermFilter("StartsWithFilter", "car", TRUE)
terms <- getIndexTerms("NOUN", 5, filter)
sapply(terms, getLemma)
Вышеупомянутая НЕ лемматизация, которую я ищу. Я ищу, используя R
. Я хочу найти истинные корни слов: (например, от c("run", "ran", "running")
до c("run", "run", "run")
).