Я занимаюсь поиском текста в R с помощью tm
-package. Все работает очень гладко. Однако одна проблема возникает после окончания (http://en.wikipedia.org/wiki/Stemming). Очевидно, что есть некоторые слова, которые имеют одинаковую основу, но важно, чтобы они не «сбивались» (поскольку эти слова означают разные вещи).Text-mining с tm-пакетом - word stemming
Для примера см. Ниже 4 текста. Здесь вы не можете использовать слова «лектор» или «лекция» («ассоциация» и «ассоциировать»). Однако это то, что делается на этапе 4.
Есть ли элегантное решение, как реализовать это для некоторых случаев/слов вручную (например, что «лектор» и «лекция» хранятся как две разные вещи)?
texts <- c("i am member of the XYZ association",
"apply for our open associate position",
"xyz memorial lecture takes place on wednesday",
"vote for the most popular lecturer")
# Step 1: Create corpus
corpus <- Corpus(DataframeSource(data.frame(texts)))
# Step 2: Keep a copy of corpus to use later as a dictionary for stem completion
corpus.copy <- corpus
# Step 3: Stem words in the corpus
corpus.temp <- tm_map(corpus, stemDocument, language = "english")
inspect(corpus.temp)
# Step 4: Complete the stems to their original form
corpus.final <- tm_map(corpus.temp, stemCompletion, dictionary = corpus.copy)
inspect(corpus.final)
Это точка ствола. Вы делаете это, чтобы получить корневые слова. Если вы хотите сохранить различия, то не начинайте. –
Я знаю. Но разве нет изящного способа изменить его для некоторых случаев? – majom