Этот вопрос является возможным дубликатом лемматизатора в 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")
).