Добавить результаты NLP NGRAM / Term в новый столбец в существующем фрейме данных - PullRequest
0 голосов
/ 15 сентября 2018

Добрый вечер, Штабелеры!У меня есть еще один дурак для вас:)

У меня есть файл Excel с примерно 54k строк, и в этом файле у меня есть столбец с именем «краткое описание», это «краткое описание» конечных пользователейПроблема с ИТ - «Я не могу напечатать», «Я не могу открыть X с сервера Y» и т. Д. Я использую NLP для поиска наиболее распространенных «слов и фраз», указанных в наборе данных или в кратком описании.... вот как выглядит этот вывод: enter image description here

Чтобы добраться до этой точки, я создал корпус из своего короткого описания, я сделал все«очистка», то есть изменение всего в нижний регистр, удаление стоп-слов, пробелов и т. д. Вывод на изображении выше был сделан с помощью term_stats (corpus, ngrams = 3: 3)

Что теперьЯ хотел бы сделать, например, если вы посмотрите на проблемы сканирования UPC из приведенного выше изображения, я хотел бы создать новый столбец в источнике данных «db» под названием «фраза», и для каждой строки, которая выдает сканирование UPCбыл найден в кратком описанииЯ просто хочу добавить это в новую строку нового столбца фразы ... как отношение один к одному, если хотите.Попытка объяснить себя далее, если в строке 1 краткого описания говорится «У меня проблемы с моей платформой сканирования UPC», то в новой строке фразы «строка 1» будет «Проблемы сканирования UPC»

Вот как я строюмой корпус и другие части сценария:

###### GET RID OF FUNKY CHARS ########
db$SHORT_DESCRIPTION <- sapply(db$SHORT_DESCRIPTION,function(row) iconv(row, "latin1", "ASCII", sub=""))

###### CREATE CORPUS ########
corpus <- Corpus(VectorSource(db$SHORT_DESCRIPTION))

###### INSPECT CORPUS ########
inspect(corpus[1:20])

###### TRANSFORM/MANIPULATE TEXT IN CORPUS ########
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, removeWords, c("csd","CSD","please","request","service","servic","active","activ","resourc","reset","8000","self","please",'compucom","self","pleas","notif","csdplease","caller","record","issue","temp","csdemail","csdneed","csdact"))
str_replace_all(db$SHORT_DESCRIPTION, "[[:punct:]]", " ")
corpus <- tm_map(corpus, stripWhitespace)

##### CREATE PHRASES #####
phrases <- term_stats(corpus, ngrams = 3)
phrases

##### NOW THIS IS WHERE I AM STUCK ######
db$phrases <- phrases????? 
#I get an error saying that phrases contains aprpox 200k rows and my data set only containts 54k rows.. 

Я хочу взять результаты фраз, создать столбец в наборе данных db и добавить результаты фраз сверху в этот столбец.

Извините за изображение, но это самый простой способ показать вывод строки, которую я создал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...