【发布时间】:2014-06-07 16:09:03
【问题描述】:
我需要使用 R 检测许多短文本的语言。 我正在使用 textcat 包,它可以在许多(比如 30 个)欧洲 语言是每种文本的一种。但是,我知道我的文本是法语或英语(或者,更一般地说,是 textcat 处理的语言的一小部分)。
如何在调用 textcat 函数时添加这些知识?
谢谢,
【问题讨论】:
-
考虑添加您希望分类的示例文本。
我需要使用 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% line-of-code 结合使用。
包textcat 的ECIMCI_profiles 数据库使用更大的最大n-gram 大小1000(与TC_byte_profiles 或TC_char_profiles dbs 中的400 不同)。
【讨论】: