我需要检测许多短文本的语言,使用R。我使用的是textcat软件包,它可以在许多(比如30个)欧洲人中找到其中一个语言是每一种文字的一种。但是,我知道我的文本要么是法语,要么是英语(或者,更一般地说,是textcat处理的语言的一小部分)。
如何在调用textcat函数时添加这些知识?
谢谢,
这个可能有效。假设您希望将语言选择限制为英语或法语,以减少错误分类率。如果没有已知所需结果的示例文本,我就无法测试下面的方法。然而,它似乎确实将语言选择限制为英语和法语。
my.profiles <- TC_byte_profiles[names(TC_byte_profiles) %in% c("english", "french")]
my.profiles
my.text <- c("This is an English sentence.",
"Das ist ein deutscher Satz.",
"Il s'agit d'une phrase française.",
"Esta es una frase en espa~nol.")
textcat(my.text, p = my.profiles)
# [1] "english" "english" "french" "french"
您还可以使用内置的ECIMCI_profiles实现高分类精度。
电话textcat(my.text, p = ECIMCI_profiles)
,并可选择将其与Mark Miller的答案中的%in%
行代码组合。
包textcat
的ECIMCI_profiles
数据库使用了更大的最大n-gram大小为1000(不像TC_byte_profiles
或TC_char_profiles
dbs的400)。