程序化使用的免费词库?

47 投票
7 回答
81094 浏览
提问于 2025-04-15 11:11

我有个朋友在聊她喜欢玩的一个单词游戏,游戏的规则是把一个单词变成另一个单词(它们的字母数相同),每次只能换一个字母,而且每次变换后都要是一个真实的单词。

举个例子:

MOON --> WOLF
GOON
GOOF
GOLF
WOLF

我觉得写个程序来生成这些解决方案会很有趣,进一步来说,给定两个单词,判断是否存在解决方案,以及最优解的迭代次数。

问题是我找不到可以轻松访问的免费单词列表。我也在考虑借此机会学习Python,所以如果有人知道免费的单词列表和如何在Python中解析和访问这些列表的建议,那就太好了。至于如何找到最优路径的算法,我会自己研究。

7 个回答

7

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

你可以通过文件输入输出功能来访问这些单词。

33

大多数Unix系统(包括macOS)都有一个文件,路径是/usr/share/dict/words

75

选项:

  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))

这样,Words就会包含字典中所有的四个字母的单词。接下来你可以根据这个进行逻辑处理。

撰写回答