假设我们有一个内容文本文件:"Je suis un beau homme ......"
另一个:"我是一个勇敢的人"
第三个用德语发表文字:"Guten morgen.Wie geht's?"
我们如何编写一个告诉我们的函数:第一个文件中的文本是英文的,第二个文件是英文等等?
欢迎链接到书籍/开箱即用的解决方案.我用Java编写,但如果需要,我可以学习Python.
我的评论
Ott*_*ger 19
有一个名为JLangDetect的包,它似乎完全符合您的要求:
langof("un texte en français") = fr : OK
langof("a text in english") = en : OK
langof("un texto en español") = es : OK
langof("un texte un peu plus long en français") = fr : OK
langof("a text a little longer in english") = en : OK
langof("a little longer text in english") = en : OK
langof("un texto un poco mas largo en español") = es : OK
langof("J'aime les bisounours !") = fr : OK
langof("Bienvenue à Montmartre !") = fr : OK
langof("Welcome to London !") = en : OK
// ...
Run Code Online (Sandbox Code Playgroud)
编辑:正如凯文指出的那样,包org.apache.nutch.analysis.lang提供的Nutch项目中有类似的功能.
对于较大的文本corpi,您通常使用字母,有向图甚至三字母的分布,并与您想要检测的语言的已知分布进行比较.
但是,一句话很可能太短,无法产生任何有用的统计措施.然后,您可能有更多的运气将单个单词与字典匹配.