R语言 如何使用 tm 包进行希伯来语或阿拉伯语的文本分析



我想使用 tm 包进行希伯来语或阿拉伯语文本分析。我尝试了几种方法,看看tm是否能够处理一些单词,但我遇到了一个错误,有没有办法解决这个问题?

text  <- "הנוסעים חיכו זמן רב לנסיעה"
Encoding(text)
#[1] "unknown"
Encoding(text)  <- "UTF-8"
ap.corpus <- Corpus(DataframeSource(data.frame(text)))
ap.corpus <- tm_map(ap.corpus, removePunctuation)
ap.corpus <- tm_map(ap.corpus, content_transformer(tolower))
Error in FUN(content(x), ...) : 
invalid input 'הנוסעים חיכו זמן רב לנסיעה' in 'utf8towcs'

这是答案,我们需要添加这个编码方法:

iconv(text, "ISO-8859-8", "UTF-8")[1]

而不是使用 :Encoding(text) <- "UTF-8"

来自 tm 小插曲:

语料库构造函数的第二个参数readerControl必须是 包含命名组件读取器和语言的列表。(...)最后, 第二部分language设置文本的语言(最好使用 ISO 639-2 代码)。

从维基百科来看,阿拉伯语的ISO 639-2代码是ara的,希伯来语是heb的。所以也许试试这个:

ap.corpus <- Corpus(DataframeSource(data.frame(text), readerControl = list(language = "heb")))

编辑:很高兴你找到了答案。当使用错误的编码时,会出现此错误:

  • R tm 包在"utf8towcs"中的输入无效
  • 制作Twitter词云时运行"降低"后的有趣错误

最新更新