有没有我可以下载java的字典?

时间:2010-03-18 13:28:21

标签: java

我可以为java下载一本词典吗? 我希望有一个程序,它需要一些随机字母,看看是否可以通过检查字典来重新排列成真正的单词

6 个答案:

答案 0 :(得分:8)

  

我可以下载一本字典吗?   对于java?

其他人已经回答了这个问题......也许你不只是在谈论一个字典文件,而是关于一个拼写检查器?

  

我希望有一个程序需要一个   几个随机的字母,看看他们是否   可以重新排列成一个真正的单词   根据字典检查它们

这是不同的。你想要多快这么快?字典中有多少单词,有多少单词,你想查看多长?

如果你想要一个拼写检查器(你的问题并不完全清楚),Jazzy是一个Java的拼写检查器,它有一个链接到 lot 的词典。这还不错,但是各种实现都非常低效(对于小字典来说没问题,但是当你有几十万个单词时,这是一个惊人的浪费)。

现在,如果您只是想解决您描述的具体问题,您可以:

  • 解析字典文件并创建地图:(按排序顺序排列的字母,匹配单词集)

  • 然后是任意数量的随机字母:对它们进行排序,看看你是否在地图中有一个条目(如果你输入的值包含你可以用这些字母做的所有单词)。

    abracadabra:(aaaaabbcdrr,(abracadabra))

    carthorse :( acehorrst,(carthorse))

    管弦乐队:( acehorrst,(carthorse,orchestra))

等...

现在你拿三个随机字母并获得“hsotrerca”,你将它们排序为“acehorrst”,然后用它作为关键词得到所有(有效的)字谜......

这是有效的,因为你描述的是一个特殊的(简单的)案例:你需要的只是对你的字母进行排序,然后使用O(1)地图查找。

要进行更复杂的拼写检查,可能会出现错误,那么你需要一些东西来提出“候选人”(可能是正确但拼错的词)[比如说,使用soundex,metaphone或双变音符algos]然后使用像Levenhstein编辑距离算法这样的东西来检查候选人与已知的好词(或者由Levenhstein编辑距离组成的更复杂的树,谷歌用它来“找到你的类型”):

http://en.wikipedia.org/wiki/Levenshtein_distance

作为一个有趣的旁注,优化的字典表示可以存储数百甚至数百万字,每个字不到10比特(是的,你已经正确读取:每个字少于10比特)并且允许非常快速的查找。 / p>

答案 1 :(得分:2)

字典通常与编程语言无关。如果您尝试在不使用关键字“java”的情况下进行谷歌搜索,则可能会获得更好的结果。例如。 free dictionary download在每个dicts.info下提供。

答案 2 :(得分:2)

OpenOffice dictionaries很容易逐行解析。

你可以在内存中读取它(记住它有很多内存):

List words = IOUtils.readLines(new FileInputStream("dicfile.txt"))(来自commons-io

因此,你得到所有单词的List。或者,如果遇到内存问题,可以使用Line Iterator。

答案 3 :(得分:1)

答案 4 :(得分:1)

答案 5 :(得分:0)

退房 - http://sourceforge.net/projects/test-dictionary/,它可能会给你一些线索

我不确定是否有任何此类库可供下载!但我想你绝对可以通过sourceforge.net来查看是否有人或者如何使用词典 - http://sourceforge.net/search/?type_of_search=soft&words=java+dictionary