检测长文本中的多种语言

问题描述

我有一个很长的文本,主要是英文,但也包含多页的法文文本、几段希腊文以及一些阿拉伯语和德语句子。

到目前为止,我已经测试了旧的“语言检测”library(2011 版,找不到 2014 版):

DetectorFactory.loadProfile(langFolder);
Detector detector = DetectorFactory.create();
detector.append(text);
ArrayList<Language> languages = detector.getProbabilities();

... 和 Apache 的 Tika(1.25 版):

LanguageDetector detector = new OptimaizeLangDetector();
detector.loadModels();
List<LanguageResult> languages = detector.detectAll(text);

对于两个库,整个文本的结果是 99.9something % "en"。

我知道您需要一个很长的文本样本才能使检测工作,所以我没有检测到简短的阿拉伯语/德语句子,但希腊语/法语部分相当长,所以我没有理解为什么数组的大小总是“1”,即使我使用了“检测所有语言”的方法

如果我只给它一些希腊语或法语文本,它会检测到它是希腊语/法语,但是当我将它们组合起来并且其中一部分比另一部分长时,只会输出那一部分的语言。似乎这两个部分的长度必须大致相同才能得到两种语言。

如何使用任一库(但最好是 Tika,因为它仍在更新中)获得其他语言的结果,即使它只有 0.1%?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)