全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6761 10
2017-04-14
悬赏 3 个论坛币 已解决
> library(tm)
载入需要的程辑包:NLP
> sms_corpus <- Corpus(VectorSource(segWord))
> sms_dtm <- DocumentTermMatrix(x = sms_corpus)
> str(sms_dtm)
List of 6
$ i       : int [1:65439] 1 2 3 4 5 6 7 8 9 10 ...
$ j       : int [1:65439] 1 2 3 3 1 2 4 5 6 4 ...
$ v       : num [1:65439] 1 1 1 1 1 1 1 1 1 1 ...
$ nrow    : int 65439
$ ncol    : int 15611
$ dimnames:List of 2
  ..$ Docs : chr [1:65439] "1" "2" "3" "4" ...
  ..$ Terms: chr [1:15611] "楂樺喎" "濡撳コ" "璺熶笂" "杞鍙" ...
- attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"
- attr(*, "weighting")= chr [1:2] "term frequency" "tf"
已经用jiebaR分完词了想创建一个文本词条矩阵。结果输出为乱码。求助各位大神

最佳答案

niu9146 查看完整内容

这个不是jieba分词的原因,是tm包 DocumentTermMatrix()这个命令以后产生了乱码。 解决的办法有几个 1、修改 locale 为英文, 在执行TermDocumentMatrix前,调用Sys.setlocale(locale="English"),之后再设定回去,Sys.setlocale(locale="Chinese (Simplified)_People's Republic of China.936"),local设置通过函数sessionInfo()获得。 2、修改 tm 包的 tokenizer.R 里的 scan_tokenizer 函数 ,然后安装修改后的 tm 包。 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-4-14 23:56:46
这个不是jieba分词的原因,是tm包 DocumentTermMatrix()这个命令以后产生了乱码。
解决的办法有几个

1、修改 locale 为英文,
在执行TermDocumentMatrix前,调用Sys.setlocale(locale="English"),之后再设定回去,Sys.setlocale(locale="Chinese (Simplified)_People's Republic of China.936"),local设置通过函数sessionInfo()获得。

2、修改 tm 包的 tokenizer.R 里的 scan_tokenizer 函数 ,然后安装修改后的 tm 包。

原函数:
scan_tokenizer <- NLP::Token_Tokenizer(function(x)
    scan(text = as.character(x), what = "character", quote = "", quiet = TRUE))

改为
scan_tokenizer <- NLP::Token_Tokenizer(function(x){
  con <- textConnection(as.character(x))
  tokens <- scan(con, what = "character", quote = "", quiet = TRUE)
  close(con)
  tokens
})
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-17 00:39:16
谢谢你
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-5-9 23:01:32
a454093113 发表于 2017-4-17 00:39
谢谢你
请问 第二种改函数的方法 最新的tm包找不到tokenizer.R 我下载旧版本tm0.6-1 md5验证成功 但是library()时显示无效这该怎么办
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-5-9 23:08:46
niu9146 发表于 2017-4-14 23:56
这个不是jieba分词的原因,是tm包 DocumentTermMatrix()这个命令以后产生了乱码。
解决的办法有几个

请问 我最近也出现这个问题 我现在用的是最新的tm包 里面我没找到tokenizer.R 我又在官网下载了旧版本tm0.6-1 安装显示成功 但library()时显示无效的包我该怎么办  现在很急
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-7-28 21:19:53
用第一种方法试过,虽然不是乱码,但是依然不是文字啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群