R中tm包基于txt文件生成自定义待移除词词典的实现问题
R语言tm包导入自定义逗号分隔停用词词典的实现方法
你可以按照以下步骤完成需求:
- 第一步:读取逗号分隔的停用词文件并转为字符向量
使用scan函数可以直接读取逗号分隔的文本文件,一步完成格式转换,示例代码如下:
# 读取file.txt,返回由停用词组成的字符向量 custom_stopwords <- scan( file = "file.txt", what = character(), # 指定读取内容为字符串类型 sep = ",", # 分隔符设为逗号 strip.white = TRUE, # 自动去除每个词前后的空白字符 quiet = TRUE # 不输出读取进度信息,避免控制台冗余输出 ) # 可选:过滤空字符串,避免误删文本中的空白内容 custom_stopwords <- custom_stopwords[nzchar(custom_stopwords)]
如果你的txt文件是Windows下导出的带BOM的UTF-8文件,读取出现乱码时可以用以下兼容写法:
raw_content <- readLines("file.txt", encoding = "UTF-8-BOM") custom_stopwords <- trimws(unlist(strsplit(raw_content, split = ","))) custom_stopwords <- custom_stopwords[nzchar(custom_stopwords)]
- 第二步:代入
tm_map完成语料清洗
你原来的代码存在参数传递错误,removeWords需要接收停用词向量作为参数,正确调用方式如下:
corpusname <- tm_map(corpusname, content_transformer(removeWords), custom_stopwords)
如果需要同时使用tm包自带的默认停用词(比如英文停用词),可以直接拼接向量:
library(tm) # 拼接默认英文停用词和自定义停用词 all_stopwords <- c(stopwords("english"), custom_stopwords) corpusname <- tm_map(corpusname, content_transformer(removeWords), all_stopwords)
内容的提问来源于stack exchange,提问作者user15499252
相关产品推荐
相关产品推荐

