Python查找相似单词的方法


Posted in Python onMarch 05, 2015

本文实例讲述了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 相关文章推荐
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
使用python实现链表操作
Jan 26 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python批量下载抖音视频
Jun 17 Python
python django model联合主键的例子
Aug 06 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Python识别html主要文本框过程解析
Feb 18 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
python RSA加密的示例
Dec 09 Python
Python兔子毒药问题实例分析
Mar 05 #Python
Python获取服务器信息的最简单实现方法
Mar 05 #Python
Python实现简单的可逆加密程序实例
Mar 05 #Python
Python装饰器的函数式编程详解
Feb 27 #Python
python分析nignx访问日志脚本分享
Feb 26 #Python
python分析apache访问日志脚本分享
Feb 26 #Python
Python构造函数及解构函数介绍
Feb 26 #Python
You might like
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
Python实现平行坐标图的两种方法小结
2019/07/04 Python
python实现交并比IOU教程
2020/04/16 Python
浅谈python出错时traceback的解读
2020/07/15 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
蔻驰美国官网:COACH美国
2016/08/18 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
商务英语专业自荐信
2013/10/14 职场文书
中学家长会邀请函
2014/02/03 职场文书
创业计划书如何编写
2014/02/06 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
作文评语集锦
2014/12/25 职场文书
大学生见习总结报告
2015/06/24 职场文书
学校安全管理制度
2015/08/06 职场文书
服务器SVN搭建图文安装过程
2022/06/21 Servers