如何在同一行上检测多种语言?

时间:2016-07-19 06:25:47

标签: java python language-detection

在java和python中有几个api,并且还尝试了一些在线演示,但是所有的api都将整个句子作为一个整体并给出一个整体可能的语言。在我的情况下,我在同一行上有多种语言需要被检测,除了英语之外的语言将被删除,同时保持句子的含义完整。

示例:

  1. 化粪池安全。 / Sans危险pour les fosses septiques。存放在阴凉,干燥的地方。 / Ranger dans un endroit frais et sec。
  2. 4X浓缩清洁* 4XPLUSCONCENTRÉPOURMIEUX NETTOYER *
  3. 磷酸盐无磷酸盐
  4. 导入/ImportépourPROCTER& GAMBLE INC。,TORONTO,ON M5W 1C5

1 个答案:

答案 0 :(得分:0)

我相信你从阅读评论中获得的方向是最好的解决方案:“我已经尝试将整个句子翻译成单词并检查每个单词的语言”。但是你应该考虑开发一个bag of words algorithm

简单地说,您将计算句子中所有单词的出现次数,并将它们存储在一个列表中,该列表中包含它们所属的语言的索引。 但是,由于您在单个句子中检测到多个语言,这些语言可能需要多个列表,因此具有最多出​​现的语言单词的列表将决定句子每个部分的语言。

This is an English sentence written in english,dans un endroit frais et sec
[english:english:2][this:english:1][is:english:1][an:english:1][sentence:english:1][written:english:1][in:english:1]
[dans:french:1][un:french:1][endroit:french:1][et:french:1][sec:french:1]

this->beginning->list index 0, sentence->end of english->list index 3

然而,这仍然可能会在您的示例中产生错误,因为样本空间越小,结果就越不准确:

化粪池安全。 / Sans危险pour les fosses septiques。存放在阴凉,干燥的地方。 / Ranger dans un endroit frais et sec。 (所有单词只出现一次,不会通过单词计数来确定语言,只能通过它们连续属于哪种语言的总和

无论如何希望这种方式有道理并希望它能帮助您找到解决方案。请随意发表评论,我会尽力帮助您解决问题。