手机
当前位置:查字典教程网 >脚本专栏 >python >Python查找相似单词的方法
Python查找相似单词的方法
摘要:本文实例讲述了Python查找相似单词的方法。分享给大家供大家参考。具体分析如下:问题:给你一个单词a,如果通过交换单词中字母的顺序可以得到...

本文实例讲述了Python查找相似单词的方法。分享给大家供大家参考。具体分析如下:

问题:

给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在给你一个字典,用户输入一个单词,让你根据字典找出这个单词有多少个兄弟单词。

Python代码如下:

from itertools import tee,izip from collections import defaultdict def pairwise(iterable): a, b = tee(iterable) for elem in b: break return izip(a, b) buf_array=[] buf_no={} key_from_id=0 def add_to_buf(word): global key_from_id,buf_array if len(word)==1: pass #TODO for pos,pair in enumerate(pairwise(word)): if len(buf_array)<pos+1: buf_array.append(defaultdict(set)) pos_dict=buf_array[pos] key=list(pair) key.sort() key="".join(key) if key not in buf_no: buf_no[key]=key_from_id key_from_id+=1 key=buf_no[key] pos_dict[key].add(word) def find_in_buf(word): global key_from_id,buf_array if len(word)==1: pass #TODO exist = [] for pos,pair in enumerate(pairwise(word)): if len(buf_array)<pos+1: return pos_dict=buf_array[pos] key=list(pair) key.sort() key="".join(key) if key not in buf_no: continue key=buf_no[key] if key not in pos_dict: continue exist.append(pos_dict[key]) count_dict=defaultdict(int) for i_set in exist: for i in i_set: count_dict[i]+=1 result=[] min_match = len(word)-3 for k,v in count_dict.iteritems(): if v>=min_match: result.append(k) return result add_to_buf("1234") add_to_buf("ABCD") add_to_buf("CABD") print find_in_buf("ACBD")

希望本文所述对大家的Python程序设计有所帮助。

【Python查找相似单词的方法】相关文章:

精确查找PHP WEBSHELL木马的方法(1)

Python中的魔法方法深入理解

python函数返回多个值的示例方法

python条件和循环的使用方法

Python中的yield浅析

vc6编写python扩展的方法分享

Python中使用动态变量名的方法

2款Python内存检测工具介绍和使用方法

Python yield使用方法示例

python中的sort方法使用详解

精品推荐
分类导航