r - 自然语言识别并赋值为 "en", "fr", "tr"

标签 r nlp

R 中是否有任何包可以识别文本是哪种语言? 我有很多行,包括不同语言的文本,如“en”、“es”、“fr”、“ja”等。是否可以通过如下语言列获得结果?

id text                 language
1  "I am a musician"    en 
2  "я инженер"          ru 
3  "Je suis un poète"   fr

或者任何其他可能的帮助来定义自然语言的类型?

最佳答案

您最好的选择可能是 cldr,它使用 Chrome 的语言检测库。

library(devtools)
install_github("aykutfirat/cldr")

library(cldr)

docs1 <- c(
  "Detects the language of a set of documents with possible input hints. Returns the top 3 candidate languages and their probabilities as well.",
  "Som nevnt på møte forrige uke er det ulike ting som skjer denne og neste uke.",
  "Ganz besonders wollen wir, dass forthin allenthalben in unseren Städten, Märkten und auf dem Lande zu keinem Bier mehr Stücke als allein Gersten, Hopfen und Wasser verwendet und gebraucht werden sollen.",
  "Роман Гёте «Вильгельм Майстер» заложил основы воспитательного романа эпохи Просвещения.")

detectLanguage(docs1)$detectedLanguage
# [1] "ENGLISH" "NORWEGIAN" "GERMAN" "RUSSIAN"

但是,您的示例似乎有点太短了。

docs2 <- c("I am a musician", "я инженер", "Je suis un poète")

detectLanguage(docs2)$detectedLanguage
# [1] "Unknown" "Unknown" "Unknown"

正如 Ben textcat 所指出的,似乎在 gulnerman 给出的较短示例上表现更好,但与 cldr 不同的是,它并没有表明匹配的可靠性。这使得很难说您对结果的信任程度,即使在这种情况下三分之二是正确的。

library(textcat)
textcat(docs2)
# [1] "latin" "russian-iso8859_5" "french"           

关于r - 自然语言识别并赋值为 "en", "fr", "tr",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48747128/

相关文章:

language-agnostic - 在给定文本中发现 "templates"?

python - R 将 python GET 转换为 R http GET

r - R中逻辑向量中连续值的相交范围

r - 是否可以一键将整个 Shiny 应用程序(包括 react 值和多个表格和图表)下载为 pdf 或图像?

python nltk循环打印标题而不是值

machine-learning - 使用 ChatBot 订购电影票

java - 斯坦福 CoreNLP 观点

r - R 2.XX.Y 中的核心包

r - 使用索引的倍数来保留或替换向量中的值

nlp - 从哪里开始 : Natural language processing and AI using Python