使用textcat包在R中进行语言检测:如何限制几种语言?

时间:2014-06-07 16:09:03

标签: r nlp

我需要使用R来检测许多短文本的语言。 我正在使用textcat包,它找到了许多(比如说30个)欧洲人 语言是每个文本之一。但是,我知道我的文本是法语或英语(或者更常见的是,由textcat处理的语言的一小部分)。

如何在调用textcat函数时添加这些知识?

谢谢,

2 个答案:

答案 0 :(得分:2)

可能有效。据推测,您希望将语言选择限制为英语或法语,以降低错误分类率。如果没有已知所需结果的示例文本,我无法测试下面的方法。但是,它似乎将语言选择限制为英语和法语。

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"

答案 1 :(得分:0)

您还可以使用内置的ECIMCI_profiles实现高分类准确度。

呼叫

textcat(my.text, p = ECIMCI_profiles)

并可选择将其与Mark Miller的答案中的%in%代码行结合起来。

ECIMCI_profiles的{​​{1}}数据库使用更大的最大n-gram大小1000(与textcatTC_byte_profiles dbs不同的400。