41

我的一个朋友正在谈论她喜欢玩的文字游戏,您可以尝试通过一次切换一个字母来将一个单词转换为另一个单词(它们具有相同数量的字母),每次迭代都会产生一个真实的单词。

例子:

MOON --> WOLF
GOON
GOOF
GOLF
WOLF

我认为编写一个程序来生成解决方案会是一个有趣的小项目,然后再进一步,给定 2 个单词,确定解决方案是否存在以及最佳解决方案中的迭代次数。

问题是我无法找到可以以编程方式轻松访问的免费单词列表。我也在考虑以此为借口来学习 Python,所以如果有人知道免费单词列表和如何从 Python 解析和访问它的指针,那就太好了。找出如何找到最佳路径的算法,我将自己研究。

4

7 回答 7

70

选项:

  1. 在您的常见或花园品种 Unix 安装中查找 /usr/share/dict/words。
  2. http://www.ibiblio.org/webster/
  3. http://wordlist.sourceforge.net/
  4. http://svnweb.freebsd.org/csrg/share/dict/(点击文件'words'的'revision'标签)

#4是我自己用于文字游戏的Python 实验,效果很好。

对于奖励积分,这里有一些东西可以让你开始你的文字程序:

import re
startwith = "MOON"
endwith = "GOLF"
cklength = re.compile('.{' + str(len(startwith)) + '}(\n)?$', re.I)
filename = "C:/dict.txt"
words = set(x.strip().upper() for x in open(filename) if x.match(cklength))

单词将是字典中所有 4 个字母单词的集合。你可以从那里做你的逻辑。

于 2009-04-21T14:45:49.800 回答
33

大多数 unix(包括 osx)都有一个文件/usr/share/dict/words.

于 2009-04-21T14:46:57.363 回答
7

你可以在这里找到一个 2.2mb 的英文单词列表。

您可以使用文件 i/o 函数访问它们。

于 2009-04-21T14:45:45.930 回答
6

如果您可以访问 linux 安装,则应该有一些单词列表

/usr/share/dict/
于 2009-04-21T14:47:12.883 回答
4

查看dict.org中的数据库。这些实际上是字典数据库,因此您需要自己提取单词定义。你可以从Wordnet开始。

于 2009-04-21T14:52:31.593 回答
2

我遇到了同样的问题,并且在研究一个基于拼字游戏的网站时,我发现他们的几个单词列表采用了很好的文本格式。他们在https://www.wordgamedictionary.com/english-word-list/有英文版

于 2012-08-06T05:33:41.280 回答
2

对于类似的东西,我使用了Mozilla Firefox英语词典。找到您想要的英语变体,例如US English,然后右键单击保存到(“添加到 Firefox”按钮)。你得到的文件是 XPI 类型,但它实际上是一个伪装的 ZIP 文件。在里面你会发现en-GB.dic哪个是字典内容。

在此处输入图像描述

里面的字典目录:

在此处输入图像描述

于 2009-04-21T14:50:20.647 回答