我的英文和德文文本包含“词典单词”和名称。
e.g。 “......在佛罗伦萨画家莱昂纳多建造......”
我有一个Java程序,需要确定每个单词是否是相应语言的名称或单词。
e.g。 names = {...,Florence,Leonardo,...},语言词= {...,In,the,painter,built,...}
我看到两种方法:
使用相应的字典列表,将其加载到哈希结构中,查看单词是否在其中(语言单词)或不是(名称/拼写错误)。
问题/问题:
我找不到名称被排除在外的德语单词列表
单词flexions(德语复杂)可能不在列表中
使用服务/ api将单个单词翻译成另一种语言,查看单词是否被更改(语言单词)(名称/拼写错误)。
问题/问题:
也可以翻译名称,例如佛罗伦萨>佛罗伦斯
我找不到离线词典列表/ api。因此,我认为使用在线服务是可行的方法,但谷歌翻译等大型服务并非免费。
当然,有些名字类似于字典单词,在这两种方法中,它们都被识别为字典单词,这很好。
主要问题是:是否有没有英文和德文名称的综合字典列表,最好是单词屈曲?
或者: 是否有免费(在线)API来完成任务?还有其他解决方案吗?
答案 0 :(得分:0)
你可以通过检查第一个字母是否为大写来找到很多名字。在此之后,你将排除所有追踪句末字符{“。”,“!”,“?”}的那些。
假设它更像是一个故事,假设一个名字不止一次出现是非常安全的。使用您已经找到的所有名称,并根据句子结尾字符后出现的所有大写单词列表进行检查。添加那些平等的人。
第二部分应该只在你想要每一次出现时才能完成,而不仅仅是那些出现的部分。
至少,这就是我接近它的方式。
编辑:我对德语并不太熟悉,但我的方法确实会遇到德语问题。请参阅Joop Eggen针对该语言的解决方案。答案 1 :(得分:0)
是德语有点问题,因为非名词也被大写。
虽然有一种语言属性。虽然可以说“美丽的佛罗伦萨”(“drschöneFlorenz”),但对于个人名称,前面的文章/形容词的使用是非常罕见的。复数的例外,“Müllers”(“米勒斯”)也可以考虑。
所以你只需要一个地名列表等。
检测前面的文章/形容词(der / die / das / ...和-e / -en /-...)。