Как выполнить stemming и лемматизировать в R? - PullRequest
0 голосов
/ 22 мая 2019

Я обрабатываю текстовые данные со строкой, подобной приведенной ниже

"значительный шаг на пути к крупномасштабному производству водорода в команде iisc коллаборационист jncasr исследователь разрабатывает низкую стоимость катализатора, разделение скорости вода генерирует газообразный водород "

Для того, чтобы получить правильную форму слов в тексте ... необходимо сделать вывод или лемматизировать. Я делаю это, но это не дает желаемый результат

stemDocument(p[1], language = "english")

[1] "значительный шаг к большой команде по водородному продукту iisc Colborbor JNCASR исследования разработать недорогой катализатор скорость расщепленной воды образующийся газообразный водород "

lemmatize_strings(p[1], dictionary = lexicon::hash_lemmas)

[1] "значительный шаг к крупномасштабному производству водорода iisc Коллективное сотрудничество Исследователь jncasr разрабатывает низкую скорость катализатора расщепленная вода вырабатывает газообразный водород "

Как получить такой вывод

значительный шаг навстречу крупной команде по производству водорода совместная работа jncasr разрабатывает низкозатратное разделение скорости катализатора вода генерирует газообразный водород

1 Ответ

1 голос
/ 22 мая 2019

Вероятно, стоит дать пакет, который вы используете.Чтобы сделать то, что вы хотите, вы можете сделать следующее со следующими двумя пакетами

library(udpipe)

# This takes a minute to download the english dictionary
x <- udpipe(x = "significant step towards large scale hydrogen production iisc team 
            collaboration jncasr researcher develop low cost catalyst 
            speed split water generate hydrogen gas",
            object = "english")

. Это даст вам все виды информации для вашего анализа, включая токен, лемму и т. Д. Вы можете сделать многос этим.

 x$lemma
 [1] "significant"   "step"          "towards"       "large"         "scale"         "hydrogen"      "production"   
 [8] "iisc"          "team"          "collaboration" "jncasr"        "researcher"    "develop"       "low"          
[15] "cost"          "catalyst"      "speed"         "split"         "water"         "generate"      "hydrogen"     
[22] "gas" 

Чтобы обрезать слово, вы можете использовать пакет tm.Если вы хотите остановить леммы у вас есть:

library(tm)
tm::stemDocument(x$lemma)

Что даст вам следующее:

[1] "signific" "step"     "toward"   "larg"     "scale"    "hydrogen" "product"  "iisc"     "team"     "collabor"
[11] "jncasr"   "research" "develop"  "low"      "cost"     "catalyst" "speed"    "split"    "water"    "generat" 
[21] "hydrogen" "gas"     
...