• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python查找相似单词的方法

Python查找相似单词的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python统计单词个数,python单词,python常用单词,笨方法学 python,笨方法学python pdf等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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")
</div>

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

</div>

您可能想查找下面的文章:

  • 最大K个数问题的Python版解法总结
  • python简单获取数组元素个数的方法
  • python简单获取数组元素个数的方法
  • python实现将英文单词表示的数字转换成阿拉伯数字的方法
  • Python实现统计单词出现的个数
  • Python实现统计英文单词个数及字符串分割代码
  • Python实现统计单词出现的个数
  • Python实现统计英文单词个数及字符串分割代码
  • Python查找相似单词的方法
  • python每次处理固定个数的字符的方法总结

相关文章

  • Django imgareaselect手动剪切头像实现方法
  • 浅谈插入排序算法在Python程序中的实现及简单改进
  • python实现一次创建多级目录的方法
  • Swift中的协议(protocol)学习教程
  • python在windows命令行下输出彩色文字的方法
  • Python函数嵌套实例
  • python爬虫入门教程之糗百图片爬虫代码分享
  • python搭建简易服务器分析与实现
  • python进阶教程之模块(module)介绍
  • python 装饰器功能以及函数参数使用介绍

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python3中set(集合)的语法总结分享
    • Python实现的数据结构与算法之链表详解
    • Django中实现一个高性能计数器(Counter)实例
    • Python实现端口复用实例代码
    • 详解Python3中yield生成器的用法
    • python抓取网页时字符集转换问题处理方案分享
    • Python选课系统开发程序
    • python 捕获shell脚本的输出结果实例
    • python实现连接mongodb的方法
    • python中enumerate的用法实例解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有