2013-08-26 4 views
11

У меня есть Корпус в R, используя пакет tm. Я подаю функция removeWords для удаления игнорируемых словДобавление пользовательских стоп-слов в R tm

tm_map(abs, removeWords, stopwords("english")) 

Есть ли способ, чтобы добавить свои собственные пользовательские стоп-слова в этот список?

ответ

31

stopwords просто предоставляет вам вектор слов, только c ombine свои собственные.

tm_map(abs, removeWords, c(stopwords("english"),"my","custom","words")) 
+0

Вместо того, чтобы делать это для каждой операции, есть файл или dict, где я могу добавить эти дополнительные стоп-слова, такие как процент, цент, миллион и т. Д.? – Pradeep

1

Вы можете создать вектор пользовательских игнорируемых слов & использовать подобное заявление:

tm_map(abs, removeWords, c(stopwords("english"), myStopWords)) 
+0

Является ли myStopWords ожидаемым списком или символом? можете ли вы предоставить команду для создания myStopWords? Выполняет ли это myStopWords <- read.csv ('mystop.csv') – harsha

1

Можно добавить свои собственные стоп-слова в список по умолчанию игнорируемых слов, которые пришли вместе с тм установки , Пакет «tm» поставляется со многими файлами данных, включая стоп-слова, и обратите внимание, что файлы стоп-логов поступают на многие языки. Вы можете добавлять, удалять или обновлять файл english.dat в каталоге стоп-слов.
Самый простой способ найти каталог стоп-слов - это поиск каталога «стоп-слов» в вашей системе через браузер файлов. И вы должны найти english.dat вместе со многими другими языковыми файлами. Откройте файл english.dat из RStudio, который должен включить редактирование файла - вы можете добавить свои собственные слова или отбросить существующие слова по мере необходимости. Это тот же процесс, если вы хотите редактировать стоп-слова на любом другом языке.

2

Сохраните ваши данные stop words в csv-файле (например: word.csv).

library(tm) 
stopwords <- read.csv("word.csv", header = FALSE) 
stopwords <- as.character(stopwords$V1) 
stopwords <- c(stopwords, stopwords()) 

Тогда вы можете применить custom words к своему текстовому файлу.

text <- VectorSource(text) 
text <- VCorpus(text) 
text <- tm_map(text, content_transformer(tolower)) 
text <- tm_map(text, removeWords, stopwords) 
text <- tm_map(text, stripWhitespace) 

text[[1]]$content 
+0

, пожалуйста, используйте 4-пространственный отступ для блоков кода (вместо того, чтобы возвращать их) – YakovL