我需要使用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
数据库的400)。