2009-02-27 90 views
8

如何获得一个返回随机英语单词(最好是名词)的函数,而不必在手前保留文件中所有可能单词的列表,最好的方法是什么?如何从列表中选择一个随机英语单词

+0

这不是一个明智的问题。你能提供一些额外的背景或线索,你想做什么。在没有英文字典的情况下生成英文单词是一个合乎逻辑的矛盾。请澄清这一点。 – 2009-02-27 11:14:08

+0

从任何旨在提供随机单词的在线资源中提取单词看起来是个不错的主意。:-) – 2009-02-27 11:50:48

+0

@joshhunt:什么构成“大规模”?拼写检查英语词典大约400K。请参阅http://aspell.net/。 – 2009-02-27 15:56:29

回答

0

好了,你有三种选择:

  • 硬码字的列表,并用它初始化数组。
  • 从Internet位置而不是文件获取列表。
  • 保留文件中可能的单词列表。

避免上述情况的唯一方法是如果您不关心这个单词是否是真实的:您可以生成随机长度的字符串。 (如果没有字典列表,则无法以编程方式生成单词。)

10

您不能。没有算法来生成有意义的单词。你只能生成听起来像英语的单词,但它们没有任何意义。

+6

虽然hobarattically转眼,你仍然可以GRAT一个finth。 – dkamins 2012-01-21 00:42:34

3

另一种理论方法:你可以刮掉random wikipedia article页面并返回文章的第N个字。

+0

这是一个不错的主意,但您可能需要过滤日期和数字以及非Engilsh单词。 – Ben 2009-02-27 12:43:00

1

有一个随机的单词生成器here - 它不是英文,但它是英文ish,即这些单词足够类似于语言,用户可以读取这些单词并将它们存储在短期记忆中。

源代码是用C#编写的,但有点用处不大,但是您可以在Python中使用类似的方法生成大量单词,而无需存储大量列表。

或者,您可以直接在演示页面上调用Web服务 - 它托管在GoDaddy上,所以不保证它可以在生产环境中工作!

1

您可以从http://www.math.toronto.edu/jjchew/scrabble/lists/下载“SOWPODS和TWL通用字”列表。我把这些文件中的所有单词放在一起,列表的大小约为642k。没有任何标准的巨大。尽管这些列表包含了大量晦涩的单词,因为它们是用于锦标赛拼字游戏的使用。好的是,这些清单构成了英语的一个重要子集。

相关问题