【发布时间】:2013-03-14 16:57:13
【问题描述】:
我有包含“字典单词”和名称的英语和德语文本。
例如“......画家莱昂纳多在佛罗伦萨建造......”
我有一个 Java 程序,需要确定每个单词是相应语言的名称还是单词。
例如names={..., Florence, Leonardo, ...}, 语言词={..., In, the, painter, built, ...}
我看到了两种方法:
-
使用相应的字典列表,将其加载到哈希结构中,查看单词是否在其中(语言单词)(名称/拼写错误)。
问题/问题:
我找不到排除姓名的德语单词列表
单词屈曲(德语复杂)可能不在列表中
-
使用服务/api将单个单词翻译成另一种语言,查看单词是否更改(语言单词)或未更改(名称/拼写错误)。
问题/问题:
名称也可以翻译,例如佛罗伦萨 > 弗洛伦茨
我找不到离线字典列表/api。所以我想使用在线服务是可行的,但像谷歌翻译这样的大服务不是免费的。
当然,有些名称类似于字典单词,在这两种方法中,它们都被识别为字典单词,这很好。
主要问题是:是否有没有英文和德文名称的综合字典列表,最好是单词屈曲?
或者: 是否有免费的(在线)API 来完成这项任务?还有其他解决方案吗?
【问题讨论】:
-
我想通过测试它是否不在字典或任何其他集合中来测试一个单词是否是一个名称,这在计算上会非常昂贵。也许有一个启发式方法可以用来测试一个词是否可能是一个名字......
-
我知道一个人正在研究这个问题(德语解析和语法,他必须从单词中识别名字)作为他的 AI 博士学位..所以我认为没有任何简单的方法..
-
@SoulDZIN 它是否快速完成并不重要。此外,在哈希中查找单词,例如HashSet,即使是一万个单词,也非常快。
-
@shokkokkok 是的,但是如果您要在 HashSet 上进行哈希查找,那么不会有内存成本吗?这种问题听起来像您可能想要构建一个“isName”启发式,而不是查找蛮力方法。另一个考虑是,如果某人的名字与字典中的单词相同怎么办?..(如果我走远了,请原谅我,我不熟悉德语)
-
@SoulDZIN 我认为内存不是问题。让我们假设资源没有问题。但你是对的,当然有些名字是字典单词。在这两种方法中,它们都被识别为字典单词,这很好。
标签: java parsing text dictionary