文章在这里:
http://www.norvig.com/spell-correct.html
import re, string, collections
def words(text): return re.findall('[a-z]+', text.lower())
def train(features):
model = collections.defaultdict(lambda: 1)
for f in features:
model[f] += 1
return model
NWORDS = train(words(file('Documents/holmes.txt').read()))
def edits1(word):
n = len(word)
return set([word[0:i]+word[i+1:] for i in range(n)] + ## deletion
[word[0:i]+word[i+1]+word[i]+word[i+2:] for i in range(n-1)] + ## transposition
[word[0:i]+c+word[i+1:] for i in range(n) for c in string.lowercase] + ## alteration
[word[0:i]+c+word[i:] for i in range(n+1) for c in string.lowercase]) ## insertion
def known_edits2(word):
return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in NWORDS)
def known(words): return set(w for w in words if w in NWORDS)
def correct(word):
return max(known([word]) or known(edits1(word)) or known_edits2(word) or [word],
key=lambda w: NWORDS[w])
牛人就是牛人,这几行代码是在飞机上写的.
分享到:
相关推荐
Peter Norvig 拼写校正器的 Haskell 实现。 阅读更多。 用法 为了使用或编译程序,您需要安装 。 克隆存储库后,转到存储库文件夹并执行 cabal build 现在你编译了程序。 你可以像这样运行它: ./dist/build/...
Peter Norvig的Udacity课上的项目:
一个港口 到 Java 8 流。
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-...
拼写检查这是 Peter Norvig 的拼写校正算法在 Golang 中的实现。 您可以在此处阅读有关该算法的更多信息。 这个实现是多线程安全的,看起来有点像 Norvig 的实现,但底层算法是一样的。
来自Russell和Norvig的人工智能中算法的Python实现
We call ourselves Homo sapiens—man the wise—because our intelligence is so important to us. For thousands of years, we have tried to understand how we think; that is, how a mere handful of matter ...
Jscheme(方案(在Java中,由Peter Norvig编写)) 这是在找到的代码。 在第一次提交期间,它已准备好在IntelliJ中执行,并略微格式化为更现代的编码标准。 提交为“首次提交”的所有代码均由Peter Norvig编写,并...
LispyLite LispyLite是一个用Java编写的玩具/实验性Scheme解释器和JavaScript编译器。 它基于的。包含什么互动式REPL JavaScript编译器支持整数和浮点数未计划支持任何其他数据类型(例如,字符串,符号) 列表以外...
Peter Norvig 在 21 个 Python 代码中实现了一个聪明的算法,现在还有许多其他语言的实现。 我首先注意到第一个 Java 实现有 372 行代码,令人尴尬。 第二个 java 实现有 35 行代码。 那么让我们看看它在 Java 8 中...
pypyscheme 公然剽窃 peter norvig 的 lispy 以测试 pypy 运行时
C夏普PAIP 这个项目的目的是使用C#浏览我最喜欢的书之一,( 的各章。 为什么? 我认为C#基本上是一个Lisp,没有宏,语法不一致和太多特殊形式。 为了向我自己证明这一点,我将在各章中进行研究,看看静态类型是否...
数子Peter Norvig 的数独求解器的实现。 (见 ) 数独谜题是由 81 个方格组成的网格; 大多数爱好者将第 1-9 列标记为行 AI,并将九个方格(列、行或框)的集合称为一个单元,将共享一个单元的方格称为同行。 拼图让...
数独 Javascript 库,基于 Peter Norvig 的求解器 这个库是从和的数独游戏中提取的。 它包含生成和解决谜题、获取正在进行的谜题中的冲突列表以及序列化和反序列化谜题的函数。 有关库的更全面描述,请查看
彼得·诺维格(Peter Norvig)的移植到 。 您可以使用sudoku方法从字符串输入创建SudokuPuzzle 。 julia > using Sudoku julia > grid1 = " ...
介绍该文件概述了教科书《人工智能:现代方法》(也称为 AIMA)中算法的 Python 代码。 该代码在 MIT 许可下免费提供给您使用。 您可能知道,教科书以伪代码格式呈现算法; 作为补充,我们提供此代码。 目的是实现...
norvig神牛Python代码写的很飘逸,果然是有LISP内功的人! 本书涉嫌抄袭leetcode,特此注明 题目分类 from ###Dynamic Programming Edit Distance Maximum Subarray Minimum Path Sum Unique Paths Unique Paths II ...
Peter Norvig 在有一个很棒的解释。 我的目标是编写一个易于理解的 Pythonic 程序(限制使用推导式)。 我正在用不同的编程语言实现生命游戏以了解它们。 你可以找到。 我喜欢/不喜欢 python 的地方 Python 语法...
(对Norvig原始程序的小修改) C++14() 哈斯克尔 C hat-trie是dcjones 的快速trie。 建造 hat-trie库作为子模块包含在内。 正在做 git submodule init git submodule update bash -c 'cd hat-trie && ...
-使用JavaScript和Peter Norvig的Python Lisp解析器的扩展来使用Graphviz和交互式d3地图探索原始Zork源代码,以处理MDL 科学 -在Linux上使用Python,OpenCV,SPICE,ISIS自动创建Voyager 1和2飞越电影 -使用MatLab和...