我正在尝试用R做中文文本挖掘。
在我的数据集中,我有一个列,上面有人们的评论,比如"连锁店购买的“。多亏了JiebaR,我还创建了另外两个专栏。它们保存分段的消息(“连锁店”,“购买”,“的”)和来自这些消息的关键字(“连锁店”,“购买”)。关键字选择删除了“不”(中文中是“no”),因此我尝试从单词中提取它并将其添加到关键字中。很简单,对吧?
为了有一个干净的代码,我把我的所有函数放在一个单独的文件中,并将其放在我的主文件中。现在发生了一些非常奇怪的事情:当函数在主文件中时,它可以工作,但当它在我源文件中时,它不能工作!(我只是将函数从我的main复制并粘贴到" function“文件中,然后运行源代码(...)行...)。
fetchingNeg <- function(df){
for (i in 1:nrow(df)){
if ("不" %in% unlist(df[i,]$words)){
df[i,]$keywords <- list(append(unlist(df[i,]$keywords),"不"))
}
}
return(df)
}
发布于 2017-01-12 11:09:42
所以我发现了错误:编码!有一个字符c,我知道它是"不“,但当我打印(”不“== c)时,它会给出FALSE...在本例中,"不“不是以UTF8编码的,所以为了使我的代码正常工作,我必须将它更改为
fetchingNeg <- function(df){
for (i in 1:nrow(df)){
# "不" is "\u{4e0d}" in UTF-8
if ("\u{4e0d}" %in% unlist(df[i,]$words)){
df[i,]$keywords <- list(append(unlist(df[i,]$keywords),"\u{4e0d}"))
}
}
return(df)
}
https://stackoverflow.com/questions/41604425
复制相似问题