R中的哪些库可以标记任何语言文本(例如:中文,日文,阿拉伯文等)

时间:2016-05-06 10:25:35

标签: r nlp text-mining text-segmentation

我必须将文字标记为单词。但我不知道文字的语言。我可以成为任何语言。所以我必须构建一个Tokenizer,它将检测文本语言并对其进行标记。如果Tokenizer无法令牌化,那么我将返回一些标记,例如“无法令牌化”。

如果可能,请帮助我标记非空间语言。

1 个答案:

答案 0 :(得分:1)

查看textcat包。它可用于查找文本或文本片段的语言。

它使用启发式方法来确定语言。它做出了明智的猜测。因此,它往往是错误的。当然,错误率取决于数据的性质。您可以通过排除文本可能不会写入的语言来帮助发送文本。

你可以像这样设置它。有关更多详细信息,请阅读文档。

library(textcat) 
#%nin% from Hmisc
my.profiles <- ECIMCI_profiles[names(ECIMCI_profiles) %nin% c("afrikaans",
                                       "basque",
                                       "frisian","middle_frisian",
                                       "latin",
                                       "rumantsch",
                                       "spanish",
                                       "welsh",
                                       "catalan",
                                       "hungarian",
                                       "romanian",
                                       "scots",
                                       "swedish")]

# ... process corpus as usual...
# then try to assign a language to each document.

myCorpusCopy <- tm_map(myCorpus, function(x){
        #lang <- textcat::textcat(content(x))
        lang <- textcat::textcat(content(x), p=my.profiles)
        #warning(lang)
        meta(x, tag="language") <- lang
        x
})

# continue processing..

更新

你说&#34;我不知道文字的语言。&#34;我认为你必须首先对文本进行分类,以便预测它所写的语言。上面的代码片段以自动方式完成。

标记化将是下一步。 http://stanfordnlp.github.io/CoreNLP/提供中文,英文,法文,德文,西班牙文的语言模型。 我R,你可以用

来打电话
library(coreNLP)
initCoreNLP()
### lots of startup messages...

使用coreNLP + addons库编写健壮的R代码是一项非常重要的任务,我无法帮到你。使用单一语言需要一些时间。 从2016年1月(当我玩coreNLP时)阅读我的答案,开始: https://stackoverflow.com/a/34852313/202553