如何获取英语单词数据库?

184
我需要一个包含所有英语有效单词的数据库。我查看了/usr/share/dict/words文件,它包含少于100k个单词。维基百科称英语有475k个单词。那么我在哪里可以获取完整列表(美式拼写)?
此外,是否有一个网站可以提供其他语言的单词,包括亚洲和欧洲语言?
编辑:忘记添加,我不需要姓名等,只需要有效的英语单词。

20
我的 /usr/share/dict/words 文件里有 479829 个单词,所以可能会有一些差异(并且可能适用于其他人)。 - marshall.ward
8
在 Mac 系统上,运行命令 wc -l /usr/share/dict/words 可以得到单词数目为 235,886 个(截止至 2014 年 7 月,OSX Mavericks 10.9.4 版本)。 - nelsonic
4
http://www.freescrabbledictionary.com/english-word-list/ - Cesar Bielich
2
你可以在这里获取单词列表:http://marcoagpinto.cidadevirtual.pt/proofingtoolgui.html。在右侧查找“WORDLIST”链接。 - kofifus
3
如果有人还在寻找这个,我刚从https://www.wordgamedictionary.com/上获得了一个好用的免费Scrabble词典。 - Chris Rae
@james.garriss 发布的资源(谢谢!)已经不存在了。不过看起来仓库还在:https://github.com/dwyl/english-words - user2901351
6个回答

94

WordNet 数据库可能会有所帮助。我曾经开发过一个 Firefox 的插件,处理单词及其之间的各种简单到复杂的关联等等。看起来 WordNet 对你非常有用。

这里有以MySQL格式提供的数据。而这个链接使用的是 Wordnet v3.0 数据,而不是旧的 Wordnet 2.0 数据。


1
是的,他们提供了许多格式的数据库下载功能,如CSV、MySQL数据库等,并且还有可以通过.Net、Java等使用的API。这是下载页面- http://wordnet.princeton.edu/wordnet/download/。 - user266803
我安装了WordNet,但找不到任何命令行,它只是一个库吗? - jokoon
我需要一个包含所有英语动词的MySQL数据库... - user115422
sematilog(第二个链接)也支持PostgreSQL和DB2。 - Christopher Bonitz
看起来Princeton网站上的WordNet也出了问题。由于它不再可靠,因此对此答案进行了投票。 - zfj3ub94rf576hc4eegm
显示剩余5条评论

42

您可以在infochimps.org找到您需要的内容。

他们提供了一个包含35万个简单(即非复合词)单词列表,可免费下载。

单词列表 - 35万多个简单英语单词

至于其他语言,您可能需要在Wiktionary上查找。这里是所有数据库备份的链接 - 信息可能没有组织得很好,但如果他们有一种语言,您可以以SQL格式下载数据。


6
下载链接已更改 - http://www.infochimps.com/datasets/word-list-350000-simple-english-words-excel-readable - Chris Rae
49
令人烦恼的是,infochimps文件是xls格式(一个单词分布在6个工作表中的Excel文件!)... 我已经将所有354986个单词提取到一个txt文件中:https://github.com/nelsonic/english-words - nelsonic
1
@nelsonic,非常感谢,infochimps链接是404。 - user1642018
1
@ChrisRae 两个链接都无法访问。 - garg10may
5
似乎它们包括带有拼写错误的单词,比如“tecnology” - 这可能是因为它们收集了网上出现的所有内容。所以对于密码破解/验证很有用,但不适用于需要真实单词的应用程序(比如拼写检查等)。 - max

13

我没有在这里看到提到http://wordlist.sourceforge.net/,但如果我正在寻找类似的东西(当我偶然发现这个问题时),那就是我会开始寻找的地方。

如果你在那里找不到想要的内容,而你想要的是一个英语单词列表,那么你应该花一些额外的时间描述如何辨认出你所需要的东西。


1
我曾经希望这些更广泛的列表中包含带有标点符号的单词,比如“C++”或“C#”,但是没有找到。因此,如果您需要这样的内容,您可以跳过这个(以及其他答案中的更窄的列表)。 - hobs
@hobs 从技术上讲,“C++”是一个C语言单词(更可能来自B语言),并不一定是英语单词。它实际上被定义为合法的C语法。确实,英语借用了它,但它并不是来自自然语言。 - SO_fix_the_vote_sorting_bug
@SO_fix_the_vote_sorting_bug 我不认为这是正确的。英语是一种动态、非正式的语言。没有严格、逻辑的定义或范畴理论数学表达式或软件程序可以写出来,以确定什么是和什么不是英语单词。你必须为你的应用程序中想要的单词列表创建一个统计模型。我认为自然语言是所有语言(正式和非正式)的超集,因为人类使用它们来相互交流。 - hobs

11

没有所谓的“完整”单词列表。不同的人有不同的衡量方式--例如,他们可能包括俚语、新造词、多词短语、冒犯性词汇、外来语、动词变形等等。有些人甚至数过一百万个单词!因此,你必须决定你想要什么样的单词列表。


3
谢谢提供链接。这是一个非常有启发性的阅读,介绍了英语中有多少单词以及试图得出它们的确切数量是徒劳无功的。如果想要更简洁和最新的阅读,可以参考这个链接:https://en.oxforddictionaries.com/explore/language-questions/how-many-words-are-there-in-the-english-language。 - Hashim Aziz
1
@HashimAziz 问题可能在于“英语”没有客观的定义,因为它只是一种共识。你可以列出“每个说英语的英语发言人所说过的每个话语”的清单。但是,你还需要定义“说英语”和“英语发言人”。 - SO_fix_the_vote_sorting_bug

4

Mozilla上的链接http://en-gb.pyxidium.co.uk/dictionary/en_GB.zip显示服务器未找到,有更新吗?谢谢。 - user1642018
@AMB 谢谢,我已经更新了链接,将其指向 http://extensions.openoffice.org/en/project/english-dictionaries-apache-openoffice 的备用词典来源。 - mloskot
现在新链接是404,@mloskot。 - james.garriss
@james.garriss 很抱歉,整个http://extensions.openoffice.org网站似乎已经崩溃了。 - mloskot
可以在这里找到en-gb.pyxidium.co.uk/dictionary/en_GB.zip的备份:https://web.archive.org/web/20120210204607/http://en-gb.pyxidium.co.uk/dictionary/en_GB.zip(网络档案馆)。 - nikssa23

3

您没有说明需要此列表的用途。如果仅用作密码检查黑名单,则cracklib可能适合您。它包含超过1.5M个单词。


2
不,不是黑名单。我正在做某种文字游戏/图表。 - user187809
1
这里有很多“垃圾词”,但我仍然非常感激你把它放在这里——当搜索其他字典没有的特定单词(例如消防车)时,它非常完美。 - kangalio
@Benjamin Bannier 如何从这个中提取单词并保存到类似txt文件的格式中? - Shahood ul Hassan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接