程序化使用的免费词库?
我有个朋友在聊她喜欢玩的一个单词游戏,游戏的规则是把一个单词变成另一个单词(它们的字母数相同),每次只能换一个字母,而且每次变换后都要是一个真实的单词。
举个例子:
MOON --> WOLF
GOON
GOOF
GOLF
WOLF
我觉得写个程序来生成这些解决方案会很有趣,进一步来说,给定两个单词,判断是否存在解决方案,以及最优解的迭代次数。
问题是我找不到可以轻松访问的免费单词列表。我也在考虑借此机会学习Python,所以如果有人知道免费的单词列表和如何在Python中解析和访问这些列表的建议,那就太好了。至于如何找到最优路径的算法,我会自己研究。
7 个回答
33
大多数Unix系统(包括macOS)都有一个文件,路径是/usr/share/dict/words
。
75
选项:
- 在你的Unix系统中查找/usr/share/dict/words这个文件夹,里面可能有你需要的单词。
- http://www.ibiblio.org/webster/ 这个网站也可以找到单词。
- http://wordlist.sourceforge.net/ 这里有一个单词列表。
- 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就会包含字典中所有的四个字母的单词。接下来你可以根据这个进行逻辑处理。