`

soundex.py源代码分析

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

"""Soundex algorithm

This program is part of "Dive Into Python", a free Python book for

experienced programmers. Visit http://diveintopython.org/ for the

latest version.

"""

__author__ = "Mark Pilgrim (mark@diveintopython.org)"

__version__ = "$Revision: 1.5 $"

__date__ = "$Date: 2004/05/11 19:11:21 $"

__copyright__ = "Copyright (c) 2004 Mark Pilgrim"

__license__ = "Python"

import string

allChar = string.uppercase + string.lowercase

charToSoundex = string.maketrans(allChar, "91239129922455912623919292" * 2)

def soundex(source):

"convert string to Soundex equivalent"

# Soundex requirements:

# source string must be at least 1 character

# and must consist entirely of letters

if (not source) or (not source.isalpha()):

return "0000"

# Soundex algorithm:

# 1. make first character uppercase

# 2. translate all other characters to Soundex digits

digits = source[0].upper() + source[1:].translate(charToSoundex)

# 3. remove consecutive duplicates

digits2 = digits[0]

for d in digits[1:]:

if digits2[-1] != d:

digits2 += d

# 4. remove all "9"s

# 5. pad end with "0"s to 4 characters

return (digits2.replace('9', '') + '000')[:4]

if __name__ == '__main__':

import sys

if sys.argv[1:]:

print soundex(sys.argv[1])

else:

from timeit import Timer

names = ('Woo', 'Pilgrim', 'Flingjingwaller')

for name in names:

statement = "soundex('%s')" % name

t = Timer(statement, "from __main__ import soundex")

print name.ljust(15), soundex(name), min(t.repeat())

分享到:
评论

相关推荐

    soundex:在 Elixir 中 Soundex 算法的实现

    例子: iex&gt; Soundex.soundex("Morris")"M620"iex&gt; Soundex.soundex("Harris")"H620" iex&gt; Soundex.soundex("Morrison")"M625"iex&gt; Soundex.soundex("Smith")"S530"iex&gt; Soundex.soundex("Smithie")"S530" 细节...

    Python库 | fuzzycollections-0.0.3-py2.py3-none-any.whl

    `fuzzycollections-0.0.3-py2.py3-none-any.whl` 是一个针对Python编程语言的库,名为 `fuzzycollections` 的版本0.0.3的安装包。这个库主要提供了模糊匹配和集合操作的功能,特别适用于在数据处理和搜索时需要一定...

    Algorithm-soundex-code.zip

    在“soundex-code-master”目录下,我们可以找到实现Soundex编码的源代码。这个实现通常包括以下几个步骤: 1. **提取首字母**:保持姓名的第一个字母不变,因为它通常代表了单词的主要音节。 2. **音节编码**:对...

    Python库 | soundex-1.1.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:soundex-1.1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    perl-Text-Soundex-3.04-4.el7.x86_64.rpm

    离线安装包,亲测可用

    perl-Text-Soundex-3.05-8.el8.ppc64le.rpm

    离线安装包,亲测可用

    soundex代码:快速的Soundex实现

    var soundex = require ( 'soundex-code' ) soundex ( 'phonetics' ) // =&gt; 'P532' soundex ( 'Ashcraft' ) // =&gt; 'A261' soundex ( 'Lissajous' ) // =&gt; 'L222' soundex ( 'Smith' ) === soundex ( 'Schmit' ) // ...

    retext-soundex:Soundex算法的文本重实现

    retext-soundex 算法的实现。安装 : npm install retext-soundex retext-soundex也可用于 , 和以及和的AMD,CommonJS和globals模块。用法 var retext = require ( 'retext' ) ;var inspect = require ( 'unist-...

    perlgolf_history_070109.pdf

    Perlgolf History Perlgolf History Edition 2007-01-09 top secret / strictly confidential page 2 of 520 Contents 1. Intro.........................................................................

    模糊查询源代码案例1

    在压缩包文件“FuzzyQuery”中,可能包含的源代码文件可能有`.java`、`.cpp`或`.py`等,分别对应Java、C++或Python等编程语言实现的模糊查询功能。源代码将展示如何构建Trie树、如何使用SQL查询以及可能的优化策略,...

    C#_Soundex算法实现_代码_下载

    在编程领域,Soundex是一种经典的字符串相似度算法,主要用于处理英文姓名,通过将名字转换成一个固定长度的编码,使得发音相近的单词编码结果相同。这个算法在数据库查询、信息检索以及数据清洗等方面有着广泛的...

    易语言源码易语言模糊查找窗口源码.rar

    本压缩包文件"易语言源码易语言模糊查找窗口源码.rar"提供了易语言实现的模糊查找窗口的源代码,这对于学习易语言以及理解模糊查找算法具有很高的参考价值。 模糊查找是一种在数据集中查找与目标值相似但不完全匹配...

    soundex-rs:美国soundex算法在Rust中的实现

    在Rust的`soundex-rs`库中,开发者可以方便地调用相应的函数,如`soundex::soundex()`,将输入的字符串转化为Soundex代码,进而进行发音相似性的比较。在`tests.rs`文件中,我们可以看到库的测试用例,这些用例展示...

    commons-codec-1.6-src.zip

    其中,`commons-codec-1.6-src.zip`是一个包含Apache Commons Codec库1.6版本的源代码压缩包。这个库广泛应用于Java开发中,为开发者提供了丰富的编码和解码功能,如Base64编码、URL编码、发音编码(如Soundex)等。...

    fuzzy-源码.rar

    【fuzzy-源码.rar】是一个压缩包文件,通常包含了一组与模糊匹配或模糊查找相关的源代码。从文件名可以推断,这个压缩包很可能包含了一个名为“fuzzy”的软件或库的源代码实现。模糊匹配是计算机科学中一个重要的...

    python模块详解

    13.10. py_compile 模块 13.11. compileall 模块 13.12. ihooks 模块 13.13. linecache 模块 13.14. macurl2path 模块 13.15. nturl2path 模块 13.16. tokenize 模块 13.17. keyword 模块 13.18. parser ...

    perl-Text-Soundex-3.05-8.el8.aarch64.rpm

    离线安装包,亲测可用

    perl-Text-Soundex-3.05-8.el8.x86_64.rpm

    离线安装包,亲测可用

    模糊查询源代码案例2

    在IT领域,模糊查询是一种非常常见的搜索技术,它允许用户输入不完全或不精确的...通过分析和学习“模糊查询源代码案例2”,开发者不仅可以学习到具体的编程技巧,还能加深对模糊查询算法的理解,进一步提高开发能力。

    易语言模糊查找窗口源码.7z

    在这个"易语言模糊查找窗口源码.7z"压缩包中,包含的是使用易语言编写的模糊查找窗口的源代码。模糊查找是一种在大量数据中快速搜索部分匹配的查询技术,它允许用户输入不完全或者模糊的关键词来查找相关结果。 源...

Global site tag (gtag.js) - Google Analytics