```{r}
versionInfo()
```
1.R version 3.1.0 (2014-04-10)
2.Platform: x86_64-apple-darwin10.8.0 (64-bit)
3.Packages : tm_0.6 NLP_0.1-3
```{r}
versionInfo()
```
1.R version 3.1.0 (2014-04-10)
2.Platform: x86_64-w64-mingw32/x64 (64-bit)
3.Packages : tm_0.6 NLP_0.1-3
亲爱的,
我整个星期都在工作。我正在攻读社交网络分析博士学位。目前,我正在使用TM软件包进行文本挖掘和分析,英语和阿拉伯语混合在投标数据集中。
数据集是使用JAVA程序从Twitter API收集的,并放在MongoDB数据库中。
出于测试目的,我使用了36000条推文的小数据集。
问题在于,对于大型数据集计算(> 1000000行),我的MacBookPro是不够的。我需要使用具有Windows 8.1操作系统的PC,它具有更好的ROM和RAM。
在Windows 8.1操作系统上测试我的代码在MAC OS X上使用相同的测试数据集在RStudio上正常工作时,我在Corpus计算级别上得到了与TM软件包不同的结果。
这里是R代码的开头:
```{r}
y <<- dget("file") # get the file ext rated from MongoDB with rmongodb package
a <<- y$tweet_text # extract only the text of the tweets in the dataset
text_df <<- data.frame(a, stringsAsFactors = FALSE) # Save as a data frame
myCorpus_df <<- Corpus(DataframeSource(text_df_2)) # Compute a Corpus from the data frame
```
当我在MAC OS中检查R时,所有角色,英语和阿拉伯语都有很好的代表性:
```{r}
str(myCorpus_df[1:2])
```
List of 2
$ 1:List of 2
..$ content: chr "The CHRONICLE EYE Ahrar al#Sham is clearly fighting #ISIS where its men storm some #Manbij buildings #Aleppo "
..$ meta :List of 7
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1], format: "2014-07-03 22:42:18"
.. ..$ description : chr(0)
.. ..$ heading : chr(0)
.. ..$ id : chr "1"
.. ..$ language : chr "en"
.. ..$ origin : chr(0)
.. ..- attr(*, "class")= chr "TextDocumentMeta"
..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
$ 2:List of 2
..$ content: chr "RT @######## جبهة النصرة مهاجرينها وأنصارها مقراتها مكان آمن لكل من يخشى على نفسه الآذى "
..$ meta :List of 7
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1], format: "2014-07-03 22:42:18"
.. ..$ description : chr(0)
.. ..$ heading : chr(0)
.. ..$ id : chr "2"
.. ..$ language : chr "en"
.. ..$ origin : chr(0)
.. ..- attr(*, "class")= chr "TextDocumentMeta"
..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
- attr(*, "class")= chr [1:2] "VCorpus" "Corpus"
然而,当我在WINDOWS OS上的RSTUDIO中执行相同的代码部分时,所有的阿拉伯语言都被错误地解码了(不能在这里传递给你)。语料库的str显示相同的参数。只有阿拉伯语的显示是不可读的。检查数据框text_df
时,阿拉伯语言会很好地显示出来。
当我检查两个OS(MAC和WINDOWS OS)上的阿拉伯语单词的编码时,它似乎编码良好:
```{r}
Encoding("لمياه_و_الإصحا")
```
[1] "UTF-8"
在创建Corpus
(使用readerControl
等等)时,我尝试传递了许多其他信息但没有任何变化:我的阿拉伯语言在Windows操作系统中的R或RStudio中显示不佳用tm包。
是否有人在使用非拉丁语文本挖掘的MAC OS X和WINDOWS操作系统之间遇到了相同的差异问题?
答案 0 :(得分:0)
据我所知,在我看来,阿拉伯字符是以某种原生(特定于Windows)编码进行编码的,而您的R
代码却错误地将它们解码为UTF8。这就是为什么你得到所有那些令人讨厌的符号,如“Ø”**。要验证这一点,只需使用charToRaw
检查字符串变量的原始字节,然后检查UTF8字符表。
之前我没有使用mongodb
包,但我想知道是否有办法强制以UTF8格式从mongodb
读取数据,可能是通过指定编码参数一些“阅读”功能。
**实际上,我可以立即识别这些字符的原因是因为我在处理使用twitteR
包获得的阿拉伯语推文时遇到了这种问题。