【问题标题】:Natural language identification and assign as like "en", "fr", "tr" [duplicate]自然语言识别和分配,如“en”、“fr”、“tr”[重复]
【发布时间】:2018-02-12 13:00:16
【问题描述】:

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

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

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

【问题讨论】:

标签: r nlp


【解决方案1】:

你最好的选择可能是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"           

【讨论】:

  • 感谢所有答案和 cmets,我正在尝试两种建议的方式; textcat 和 cldr。如果有人经历过不同语言单词的混合,您能否也分享一下,哪个更好?
  • 查看链接问题中的示例,textcat 似乎更擅长处理短字符串?
  • 我对短文章textcat的重复链接问题的基准测试要慢得多。在一些相当明显的情况下它也会失败。 stackoverflow.com/questions/8078604/detect-text-language-in-r/…
  • 其实我无法安装cldr(坏凭证401),我已经安装了cldr2-3 & textcat。所以 cldr2 的工作原理如下。 > detect_language(docs2) [1] "lb" "ru" "fr" 无论如何,我的数据集有 >40 行,但 textcat 没有检测到 ch 和 ja 字符并将它们检测为梵语、弗里斯兰语甚至德语..cldr2-3对于相同的 ch 和 ja 样本,都检测为“ja”。加上cldr正确检测ru,但是cldr检测不到>21000条记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2022-07-21
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2017-10-22
相关资源
最近更新 更多