我想使用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'
答案 0 :(得分:1)
来自tm vignette:
语料库构造函数的第二个参数
readerControl
必须是 包含命名组件阅读器和语言的列表。 (...)最后, 第二个组件language
设置文本的语言(最好使用 ISO 639-2规范)。
从Wikipedia起,ISO 639-2阿拉伯语代码为ara
,而希伯来语heb
代码为 ap.corpus <- Corpus(DataframeSource(data.frame(text), readerControl = list(language = "heb")))
。所以也许试试这个:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform version="3.0">
<xsl:output indent="yes"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="text()"/>
</xsl:stylesheet>
编辑:很高兴你找到了答案。使用错误的编码时会出现此错误:
答案 1 :(得分:1)
以下是答案,我们需要添加这种编码方法:
iconv(text, "ISO-8859-8", "UTF-8")[1]
而不是使用:Encoding(text) <- "UTF-8"