Хранить специальные символы в частотно-частотной матрице
Я анализирую некоторые бренды в тексте, чтобы узнать, как 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 ответа
Я бы сказал что-то вроде этого. В пакете 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
Я не знаком с qdap
пакет, но может заменить &
может решить вашу проблему
replacement <- "" # set your replacement e.g. "" (empty string) or "_"
test <- gsub("&", replacement, test, fixed = T)