1

我有包含“字典单词”和名称的英语和德语文本。

例如“......画家莱昂纳多在佛罗伦萨建造......”

我有一个 Java 程序,需要确定每个单词是相应语言的名称还是单词。

例如名称={...,Florence,Leonardo,...},语言单词={...,In,the,painter,built,...}

我看到两种方法:

  1. 使用相应的字典列表,将其加载到哈希结构中,查看单词是否在其中(语言单词)(名称/拼写错误)。

    问题/问题:

    我找不到排除姓名的德语单词列表

    单词屈曲(德语复杂)可能不在列表中

  2. 使用服务/api将单个单词翻译成另一种语言,查看单词是否更改(语言单词)或不更改(名称/拼写错误)。

    问题/问题:

    名称也可以翻译,例如 Florence > Florenz

    我找不到离线字典列表/api。所以我想使用在线服务是可行的方法,但像谷歌翻译这样的大服务不是免费的。

当然,有些名称类似于字典单词,并且在这两种方法中,它们都被识别为字典单词,这很好。

主要问题是:是否有没有英文和德文名称的综合字典列表,充其量只是单词屈曲?

或者:是否有免费的(在线)API 来完成这项任务?还有其他解决方案吗?

4

2 回答 2

0

通过检查第一个字母是否大写,您可以找到很多名称。之后,您将排除所有以句尾字符 {"."、"!"、"?"} 结尾的字符。

假设它更像是一个故事,那么假设一个名字会出现不止一次是很安全的。使用您已经找到的所有名称,并将它们与出现在句尾字符后的所有大写单词的列表进行核对。添加平等的人。

仅当您想要每一次出现时才应该完成第二部分,而不仅仅是发生的那些。

至少,我会这样处理它。

编辑:我对德语不太熟悉,但我的方法确实会对德语有一些问题。请参阅 Joop Eggen 针对该语言的解决方案。

于 2013-03-14T17:06:21.167 回答
0

是的,德语有点问题,因为非名字名词也大写。

但是有一个语言属性。虽然人们可以说“美丽的弗洛伦茨”(“das schöne Florenz”),但对于个人名字,在前面使用冠词/形容词是非常罕见的。除了复数,“the Müllers”(“die Müllers”)也可以考虑。

所以你只需要一个地名列表等。

并检测前面的文章/形容词(der/die/das/... 和 -e/-en/-...)。

于 2013-03-14T17:07:26.840 回答