qinwf / jiebaR

Chinese text segmentation with R. R语言中文分词 (文档已更新 🎉 :https://qinwenfeng.com/jiebaR/ )
Other
342 stars 110 forks source link

计算词频时不显示中文 #52

Open OUYANGYiyi opened 7 years ago

OUYANGYiyi commented 7 years ago

freq(wk[kexue]) char freq 1 <U+953B><U+70BC> 1 2 <U+591A><U+52A0> 1 3 <U+6709><U+6240> 1 4 <U+672C><U+9886> 1 5 <U+8FD9> 1 6 <U+4E4B> 1 7 <U+7ECF><U+6D4E><U+5B66><U+5BB6> 1 8 <U+7ED3><U+8BBA> 1 9 <U+559C><U+6076> 1 10 <U+4E00><U+8D77> 1

qinwf commented 7 years ago

有没有一段可以重复这个问题的代码?还有所用的是什么操作系统和 R 的版本?

OUYANGYiyi commented 7 years ago

代码 library(jiebaR) library(cidian) wk = worker() kexue <- scan(file = "./ceshi04211.txt", what = character(), sep = "\n", encoding = "UTF-8") freq(wk[kexue])

操作系统: Edition: Windows 10 Home, version: 1607, system type: 64-bit os, x64-based processor R version 3.3.3 Rtools34

Rstudio 的编码global options的code有改作UTF-8,当前系统语言是英文。

谢谢!

qinwf commented 7 years ago

我没有这个文件 ceshi04211.txt,无法重复这个错误。可以发出来一下。

OUYANGYiyi commented 7 years ago

ceshi04211.txt 编码是utf-8,放在记事本里的。我上传不了文件,以下是内容(节选自张五常《科学说需求》第一章)。 我坐在书桌前,拿起笔来,想着人类在科学上的成就。科学是有系统地解释现象的学问,很有意思的。人为万物之灵,一点不错:我们脑子的发达,与其他生物相比,距离不可以道里计。感情的表达是艺术;理智的分析却是科学了。人的感情往往与理智混淆。这样,科学上的推断可能被感情左右,弄得拖泥带水,但也可以精彩绝伦,使人觉得妙不可言。是的,科学可以有艺术的美。 向美追寻是人之常情,所以科学也可以有艺术性,有艺术的美。但科学的本质可不是艺术,前者是以阐释现象为主旨的。另一方面,人到底是人,不能冷若冰霜,半点感情也没有。因此,说某篇科学文章是一件艺术作品,是恭维的话了。问题是,仅仅是美而不能解释现象,是美中的不足,失却了科学的功能。科学家既然是人,我们不能期望他们是人类的例外,毫无感情,但感情是不可以在科学上滥用的。原则简单:科学著作可以将客观分析与主观感情结合、并用,但二者要分清楚。只要能这样做,科学文字倒可以加上感情之辞,点缀一下,减少枯燥,增加其可读性。 以经济学来说,主观感情与客观分析的清楚划分是比较困难的。不是不能做到,而是比自然科学——如物理、化学等——困难。经济学是解释人类行为的科学。困难是,经济学者也是人,难免将自己的价值观混在一起,甚至以主观的喜恶作为科学上的结论。优秀的经济学家在分析时有“忘我”之能;这是一心二用的本领了。天生有所不逮者,要多加锻炼。

qinwf commented 7 years ago

可以传一个百度网盘链接或者选一个传临时文件的网站

https://www.file.io/ https://uploadfiles.io/

OUYANGYiyi commented 7 years ago

https://file.io/lq25vY

qinwf commented 7 years ago

网址是 404.

OUYANGYiyi commented 7 years ago

http://pan.baidu.com/s/1mi4tNV6

qinwf commented 7 years ago
test

如上图,输出的文本是正常的,我没有办法在 Windows R console 里重复这个上面提到的问题。你可以在 R console 里试试。可能是 RStudio 的 bug。

qinwf commented 7 years ago
2017-04-21 11 33 13

还有这个文件是用记事本保存的,文件包含 BOM,建议另存为没有 BOM 的文件,可以避免一些不必要的问题。

OUYANGYiyi commented 7 years ago

image 我把文本复制到vs code保存为plain text. 然后在R console里运行,出现以上结果。 可以请教一下其他可能的原因吗?有没有可能是安装的时候缺失了什么包,或者哪里的编码需要设置一下。 谢谢!

qinwf commented 7 years ago

这是我的 sessionInfo(),你可以看看你的对应设置。

> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 14393)

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936 
[2] LC_CTYPE=Chinese (Simplified)_China.936   
[3] LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C                              
[5] LC_TIME=Chinese (Simplified)_China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] cidian_0.1    pbapply_1.3-0 stringi_1.1.2 jiebaR_0.9.1  jiebaRD_0.1  

loaded via a namespace (and not attached):
[1] parallel_3.3.2     tools_3.3.2        Rcpp_0.12.8        RcppProgress_0.2.1
> 
OUYANGYiyi commented 7 years ago

谢谢! 我把系统语言改作中文默认,地区改作中国,重启电脑,词频函数的结果可以显示中文。 把系统语言改作英文,地区改作香港,词频函数的结果不显示中文。 这是结果截屏:http://pan.baidu.com/s/1o8v2yRw

qinwf commented 7 years ago

嗯嗯,可能是英文的 locale 无法对应显示对应的 unicode 中文,这是系统的问题,<U+953B> unicode 对应的刚好是中文的 锻

http://unicode.scarfboy.com/scrhwexfdavmzul.html?s=U%2B953B

OUYANGYiyi commented 7 years ago

我想我可以大概明白原因了。。。 谢谢你的耐心解答!