变音和双变音算法的python实现。
Metaphone的Python项目详细描述
About
a元音素和双元音素算法的python实现
Metaphone
如Wikipedia page所述,原始的变音算法是 1990年出版,作为对Soundex算法的改进。就像 Soundex,仅限于英语使用。元音素算法没有 生成输入单词或名称的语音表示;而不是输出 是有意近似的语音表示。近似值 编码是解释说话者改变发音方式所必需的。 拼错或以其他方式改变他们试图拼写的单词和名称。
Double Metaphone
双变音语音编码算法是 变音算法。2000年6月描述了其执行情况 C/C++用户期刊的发布。它做了一些基本的设计 对原始变音算法的改进。
它之所以被称为“double”,是因为它可以同时返回主代码和辅助代码 对于字符串;这说明了一些不明确的情况以及多个 有共同祖先的姓氏变体。例如,对名称进行编码 “smith”产生sm0的主代码和xmt的次代码,而 名称“schmidt”产生一个xmt的主代码和一个smt的次代码——两者 有xmt的共同点。
双重变音试图解释 斯拉夫语、日耳曼语、凯尔特语、希腊语、法语、意大利语、西班牙语、汉语和其他 起源。因此,它使用比其更复杂的规则集进行编码 例如,它测试大约100种不同的上下文。 单独使用字母c。
History
这是python双元音素算法的副本,取自Andrew Collins’ work,一个python在c中实现的算法。 劳伦斯·菲利普斯创作。从那时起,已经有好几家公司进行了改进 贡献者,可在git历史记录中查看。
此项目包含一个resources目录,其中包含 以下内容:
- 由Lawrence Philips 原始C++文件
- 凯文·阿特金森对它的改进
- Maurice Aubrey的C实现(用于Perl扩展)
python版本的贡献者,最初由andrew collins开始 包括:
- 安德鲁·柯林斯
- 梁咏琪
- 马修·萨默维尔
- 理查德·巴兰 Maximillian Dornseif ><
- 塞巴斯蒂安地铁
- 邓肯·麦格雷戈
- 奥利贝内特
- 伊恩海狸
- 阿拉斯泰尔·霍顿
Usage
Running the Unit Tests
metaphone使用标准库中的unittest包,并作为 因此,它的测试对于大多数测试运行者来说是可以运行的。如果您安装了nose, 您可以执行以下操作:
$ git clone https://github.com/oubiwann/metaphone.git $ cd metaphone $ nosetests -v .
如果已安装Twisted,可以执行以下操作:
$ trial ./metaphone
Example Code
单元测试充满了示例,所以一定要检查它们。但这是 尝一尝:
$ python >>> from metaphone import doublemetaphone >>> doublemetaphone("architect") (u"ARKTKT", u"") >>> doublemetaphone("bajador") (u"PJTR", u"PHTR") >>> doublemetaphone("Τι είναι το Unicode;") (u'NKT', u'')
In the Wild
以下开发人员/项目使用此库:
- Andrew Collins在各种音乐项目中使用了他的原始代码 处理来自各种web服务提供的数据的拼写错误的文本。这个 然后与plone/zope项目集成。
- Matthew Somerville在剧院里使用它进行人名匹配,并且 它似乎起作用了。数据库存储双变音 对于名字和姓氏,然后在搜索时简单地计算double 输入内容的变音并查找匹配的任何内容。
- Duncan McGreggor在φarsk project上使用它来提供更充分的 T型印欧语系单词表和 字典。