python代码排除词汇库_Python查找相似单词的方法_克莱儿儿儿的博客-程序员宝宝

技术标签: python代码排除词汇库  

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

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)

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")

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33037813/article/details/113653966

智能推荐

Error: Cannot find module ‘webpack-cli/bin/config-yargs_陈福国的博客-程序员宝宝

显示是“找不到webpack-cli下的yargs配置”当前开发依赖版本为: "devDependencies": { "webpack": "^5.36.2", "webpack-cli": "^4.7.0", "webpack-dev-server": "^3.11.2" }webpack-cli早在4.0版本后就移除了yargs,于是将webpack-cli还原到3.3.12版本的版本手动修改版本 "devDependencies": { "webpa.

为win10的python安装protobuf-cpp_implementation_--cpp_implementation_培培哥的博客-程序员宝宝

最近用python版本的protocol buffer解码数据。发现与C++版本相比,python版本的解码速度慢很多,已经慢到了无法容忍的地步。因此,在github上查找解决方案。Github上有给出实验,由python实现的protobuf API速度的确很慢(这里是测试结果),但也给出了python调用C++库的解决办法。linux的安装步骤很简单,但却没给出windows的...

@Scheduled执行阻塞问题_Adonis_D_Gogh的博客-程序员宝宝

原文:https://blog.csdn.net/lym0721/article/details/89499588一. 问题描述  最近项目中发现一个问题,计划每日凌晨4:40执行一个定时任务,使用注解方式: @Scheduled(cron = “0 40 4 * * ?”),cron表达式明显没有问题,但是这个定时任务总是不按时执行,有时候得等到8点多,有时候9点多才执行。后来查了下,原...

Hive添加列、修改列(调整位置)、删除列操作等_hive 删除列_张行之的博客-程序员宝宝

1.添加1列或多列# 添加1列alter table table_name add columns( user_id bigint comment '用户ID');# 添加多列alter table table_name add columns( name string comment '用户名称', city string comment '城市', sex string comment '用户性别', age s

aopaspect区别_Spring AOP和AspectJ AOP的区别对比_weixin_39528000的博客-程序员宝宝

Spring面试题关于Spring AOP和AspectJ AOP的区别对比,Spring AOP属于运行时增强,AspectJ属于编译时增强,Spring AOP和AspectJ AOP适用场景等,面试题吧分享Spring AOP和AspectJ AOP的区别对比:Spring AOP和AspectJ AOP的之间有哪些区别?AOP即面向切面编程(Aspect Oriented Program)...

JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)_taozihk的博客-程序员宝宝

工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。本章将要学习的简单工厂模式是工厂方法模式的“小弟”,它不属于GoF 23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。这三种工厂模式各具特色,难度也逐个加大,在软件开发中它们都得到了广泛的应用,成为面向对

随便推点

Windows系统安装之 BIOS篇(AMI BIOS)_在风中的意志的博客-程序员宝宝

前言前段时间有一个小伙伴让我重新安装了下Windows系统。后来硬盘坏掉了,导致系统无法启动,我进行了一系列的问题定位。操作流程首先,了解了BIOS的几种基本类型,类型决定了查找手册和使用的方向。PC机Award BIOS:按“Del”键AMI BIOS:按“Del”或“ESC”键Phoenix BIOS:按“F2”键acer:按“Del”键由于本人装的机器为AMI...

Mysq性能分析总结 —— Genral log(普通日志)与 Slow log(慢速日式)_赶路人儿的博客-程序员宝宝

对Mysql进行深入的分析对于发现mysql性能瓶颈和寻找优化策略是十分必要的。 我们可以从不同的粒度上对Mysql进行分析:可以整体分析服务器,或者检查单个查询或批查询。通过分析,我们得到的如下信息:1、Mysql访问得最多的数据2、Mysql执行得最多的查询的种类3、Mysql停留时间最长的状态4、Mysql用来执行查询的使用得最频繁的子系统5、Mysql查询过程中访问

mysql压力测试标准,MySQL数据库标准压力测试工具之MySQLSlap使用实例_weixin_39611725的博客-程序员宝宝

MySQL数据库基准压力测试工具之MySQLSlap使用实例一、mysqlslap 介绍mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。如果是系统自带或者使用rpm包安装的mysql,安装了MySQL-...

matlab读取excel数据 一列数据,读取excel中的数据把第一列相同的所有行数据输出成一个excel..._weixin_39575502的博客-程序员宝宝

该楼层疑似违规已被系统折叠隐藏此楼查看此楼284 1113436773300.00 1113436773.30 44.55284 1113436773400.00 1113436773.40 44.55284 1113436773500.00 1113436773.50 44.55284 1113436773600.00 ...

STM32出现HardFault_Handler故障_yongyooh的博客-程序员宝宝

FATFS文件系统的LFN选项支持4种配置模式#define _USE_LFN1/   0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect./   1: Enable LFN with static working buffer on the BSS. Always NOT reentra

推荐文章

热门文章

相关标签