Хранить специальные символы в матрице частот слов - PullRequest
0 голосов
/ 18 ноября 2018

Я анализирую некоторые бренды в тексте, чтобы узнать, как KPI распознает рекламу. Однако бренды, содержащие специальные символы, пока уничтожены моим кодом.

library(qdap)
library(stringr)
test <- c("H&M", "C&A", "Zalando", "Zalando", "Amazon", "Sportscheck")

wfm(test)

Это вывод:

            all
a             1
amazon        1
c             1
h             1
m             1
sportscheck   1
zalando       2

Существует ли пакет или метод, позволяющий понять, что H & M получает h & m, а не "h" и "m", как у его двух брендов?

edit: функция wfm имеет аргумент ..., который ДОЛЖЕН позволять мне использовать функцию strip.

wfm(test, ... = strip(test, char.keep = "&"))

К сожалению, не работает.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Я бы сказал что-то вроде этого. В пакете udpipe есть функция document_term_frequencies, где вы можете указать разделение, и он превращает данные в data.frame с подсчетом частоты. Если столбец id не указан, он будет сгенерирован. Результирующий объект document_term_frequencies является таблицей данных.

library(udpipe)

# data.frame without a ID column
my_data <- data.frame(text = c("H&M, C&A, Zalando, Zalando, Amazon, Sportscheck", 
                               "H&M, C&A, Amazon, Sportscheck"),
                      stringsAsFactors = FALSE)

# if you have an ID column add document = my_data$id to the function
# see more examples in ?document_term_frequencies
document_term_frequencies(my_data$text, split = ",")

   doc_id         term freq
1:   doc1          H&M    1
2:   doc1          C&A    1
3:   doc1      Zalando    2
4:   doc1       Amazon    1
5:   doc1  Sportscheck    1
6:   doc2          H&M    1
7:   doc2          C&A    1
8:   doc2       Amazon    1
9:   doc2  Sportscheck    1
0 голосов
/ 18 ноября 2018

Я не знаком с пакетом qdap, но, возможно, замена & может решить вашу проблему

replacement <- "" # set your replacement e.g. "" (empty string) or "_"
test <- gsub("&", replacement, test, fixed = T)
...