Как я могу использовать функцию tm_map, removeWords, со значениями регулярных выражений? - PullRequest
0 голосов
/ 28 мая 2020

Я работаю со списком ранее сгруппированных имен пользователей ретвитов, которые я хотел бы загрузить в Document-Term-Matrix для дальнейшего сравнения по кластерам. Таким образом, каждый кластер сохраняется как отдельный документ.

Некоторые имена пользователей, взятые из исходных данных ретвита, не были четко извлечены, поэтому они все еще содержат фразы @userxxx @ user123, et c.

Теперь я хотел бы очистить эти остатки с помощью функции (tm_map, removeStopwords) и указать, что все слова, начинающиеся с @, должны быть удалены из моего корпуса.

Я представлял себе это следующим образом («docs» - это мой ранее созданный VCorpus):

#clean docs from remaining @retweets
docs <- VCorpus(DirSource(c))

docs <- tm_map(docs, removeWords, regex("@*"))

dtm <- DocumentTermMatrix(docs)

Однако я не совсем понимаю, возможно ли установить sh значение регулярного выражения в функции removeWords, и если да, то как мне это нужно сделать.

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

Заранее спасибо!

1 Ответ

0 голосов
/ 29 мая 2020

Решение, которое я нашел, теперь было

docs <- tm_map(docs, content_transformer(function(x) gsub(x, pattern = "@.*", replacement = "")))

Оно делает то, что мне нужно.

...