Пакет R tm: не удалось удалить специальный символ - PullRequest
0 голосов
/ 21 мая 2019

Я хочу использовать пакет R 'tm' для некоторого анализа текста.Я хочу добавить некоторые специальные символы в стоп-слова.

stop3<-c("()","(3):","article","..","etal.","fig.","natgenet","artical","articleinitiallypublished")
reuters <- tm_map(reuters, removeWords, c(stopwords("english"),stop3))
dtm <- DocumentTermMatrix(reuters)
findFreqTerms(dtm, 20)

Однако я нашел (), этал.и (): нельзя удалить из Reuters.Кто-нибудь знает, что случилось?

Спасибо

это то, что я вернулся, когда я использую findFreqTerms

findFreqTerms(dtm, 20)
[1] "()."             "():"             "etal."           "found"           "htmlpdfversions" "show"   

1 Ответ

1 голос
/ 25 июня 2019

Вы можете использовать quanteda , который не беспокоит специальные символы в новых шаблонах удаления стоп-слов (символы (, )).

Токенизация с использованием what = "fasterword"означает, что вы разделяете шаблон регулярного выражения на пробел и не используете stringi для распаковки знаков препинания (что по умолчанию и происходит).

stop3 <- c(
  "()", "(3):", "article", "..", "etal.", "fig.", "natgenet",
  "artical", "articleinitiallypublished"
)

library("quanteda")
## Package version: 1.4.3

# import the tm corpus as a quanteda corpus
data(crude, package = "tm")
reuters <- corpus(crude)

# example of removing tokens
(toks <- tokens("this () etal. is in artical fig. two", what = "fasterword"))
## tokens from 1 document.
## text1 :
## [1] "this"    "()"      "etal."   "is"      "in"      "artical" "fig."   
## [8] "two"
tokens_remove(toks, stop3)
## tokens from 1 document.
## text1 :
## [1] "this" "is"   "in"   "two"

# in this problem
dtm <- tokens(reuters, what = "fasterword") %>%
  tokens_remove(c(stopwords("en"), stop3)) %>%
  dfm()
topfeatures(dtm, 20)
##      oil     said     opec   prices      mln     last    crude   reuter 
##       80       52       38       33       29       24       20       20 
##     dlrs    saudi    said.      bpd      one      new official   kuwait 
##       19       18       17       16       15       14       14       13 
##    price   market      pct   sheikh 
##       12       12       12       11
...