精华内容
下载资源
问答
  • Python列表模糊匹配

    2020-03-26 13:55:09
    Python列表模糊匹配
    a = ['123','666','355']
    b = ['2','5']
    for i in range(len(b)):
        for j in range(len(a)):
            if a[j].find(b[i]) == -1:
                continue	#如果找不到符合b列表中的字符串,继续
            print(a[j])		#如果能找到则,打印,继续循环
    
    展开全文
  • python两个文本模糊匹配对比

    千次阅读 2019-05-31 18:28:51
    两个本地文本作对比,看其中小的文本是否存在大文本,存在的保存一个文件,不存在的也保存一个文件 hello.txt内容: hello world accchhh world.txt内容: hahhhhello world hasdjsjhworld 6666dfhhhahellohdhdh ...

    两个本地文本作对比,看其中小的文本是否存在大文本,存在的保存一个文件,不存在的也保存一个文件
    hello.txt内容:
    hello
    world
    accchhh
    world.txt内容:
    hahhhhello
    world
    hasdjsjhworld
    6666dfhhhahellohdhdh
    jdhshadh

    -- coding: UTF-8 --

    import re #使用正则库

    打开文件

    fo = open(“hello.txt”, “r”)

    #co = open(“world.txt”, “r”);

    colines = co.readlines(); #读取所有world文件中的行

    for line in fo.readlines(): #依次读取每行
    line = line.strip(); #去掉每行头尾空白
    matchObj = re.search( line, “%s” % colines, re.M | re.I);
    #正则匹配开始,使用search可以将全部符合条件的字符集都找出来
    if matchObj:
    print line;

        with open('liveproduct1.txt','a') as fb:
            fb.write((line)+'\n')
    else:
        print line
        with open('otherproduct1.txt','a') as fb:
            fb.write((line)+'\n')
            # fb.write(line)
    

    关闭文件

    fo.close();
    co.close();

    展开全文
  • Python模糊匹配搜索

    千次阅读 2020-11-19 15:36:15
    利用python库:fuzzywuzzy及difflib,两个库均可实现词粒度的模糊匹配,同时可设定模糊阈值,实现关键词的提取、地址匹配、语法检查等 2. fuzzywuzzy pip install fuzzywuzzy from fuzzywuzzy import process ...

    1. 概述

    利用python库:fuzzywuzzydifflib,两个库均可实现词粒度的模糊匹配,同时可设定模糊阈值,实现关键词的提取、地址匹配、语法检查等

    2. fuzzywuzzy

    pip install fuzzywuzzy
    
    from fuzzywuzzy import process
    from fuzzywuzzy import fuzz

    2.1 fuzzy模块

    (1)模糊匹配方法

    1. ratio()——简单匹配,使用纯Levenshtein Distance进行匹配。
    2. partial_ratio()——非完全匹配,基于最佳的子串(substrings)进行匹配
    3. token_set_ratio——忽略顺序匹配,对字符串进行标记(tokenizes)并在匹配之前按字母顺序对它们进行排序 
    4. token_set_ratio——去重子集匹配,对字符串进行标记(tokenizes)并比较交集和余数 

    (2)实例

    • ratio() 简单匹配
    fuzz.ratio("河南省", "河南省")
    >>> 100
    
    fuzz.ratio("河南", "河南省")
    >>> 80
    • partial_ratio() 非完全匹配

     

    fuzz.partial_ratio("河南省", "河南省")
    >>> 100
    
    fuzz.partial_ratio("河南", "河南省")
    >>> 100
    • token_set_ratio() 忽略顺序匹配

     

    fuzz.ratio("西藏 自治区", "自治区 西藏")
    >>> 50
    fuzz.ratio('I love YOU','YOU LOVE I')
    >>> 30
    
    fuzz.token_sort_ratio("西藏 自治区", "自治区 西藏") 
    >>> 100
    fuzz.token_sort_ratio('I love YOU','YOU LOVE I') 
    >>> 100
    • token_set_ratio() 去重子集匹配
    fuzz.ratio("西藏 西藏 自治区", "自治区 西藏")
    >>> 40
    
    fuzz.token_sort_ratio("西藏 西藏 自治区", "自治区 西藏")
    >>> 80
    
    fuzz.token_set_ratio("西藏 西藏 自治区", "自治区 西藏")
    >>> 100

    2.2 process模块

    (1) extract提取多条数据

    类似于爬虫中select,返回的是列表,其中会包含很多匹配的数据

    choices = ["河南省", "郑州市", "湖北省", "武汉市"]
    process.extract("郑州", choices, limit=2)
    >>> [('郑州市', 90), ('河南省', 0)]
    # extract之后的数据类型是列表,即使limit=1,最后还是列表,注意和下面extractOne的区别
    

    (2)extractOne提取一条数据

    提取匹配度最大的结果,返回 元组 类型, 还有就是匹配度最大的结果不一定是我们想要的数据,可以通过下面的示例和两个实战应用体会一下

    process.extractOne("郑州", choices)
    >>> ('郑州市', 90)
    
    process.extractOne("北京", choices)
    >>> ('湖北省', 45)

    3. difflib

    Difflib作为python的标准库,difflib模块提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面,而且支持输出可读性比较强的HTML文档

    (0)get_close_matches(word, possibilities, n=3, cutoff=0.6)

    import difflib
    config_list = ['中国工商银行','中国农业银行','建设银行','中国人民银行','招商证券','中国农业发展银行']
    query_word = '农行'
    
    res = difflib.get_close_matches(query_word, config_list, 1, cutoff=0.5)
    print(res)
    >>>['中国农业银行']

    扩展——文件比较

    (1)difflib.Differ

    此类比较的是文本行的差异并且产生适合人类阅读的差异结果或者增量结果,结果中各部分的表示如下:

    (2)difflib.HtmlDiff

    make_file(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
    
    make_table(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
    

     此类可以被用来创建HTML表格 (或者说包含表格的html文件) ,两边对应展示或者行对行的展示比对差异结果。以上两个方法都可以用来生成包含一个内容为比对结果的表格的html文件,并且部分内容会高亮显示。

    (3)context_diff

    difflib.context_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm])
    

    比较a与b(字符串列表),并且返回一个差异文本行的生成器

    >>> s1 = ['bacon\n', 'eggs\n', 'ham\n', 'guido\n']
    >>> s2 = ['python\n', 'eggy\n', 'hamster\n', 'guido\n']
    >>> for line in context_diff(s1, s2, fromfile='before.py', tofile='after.py'):
    ...     sys.stdout.write(line)  
    *** before.py
    --- after.py
    ***************
    *** 1,4 ****
    ! bacon
    ! eggs
    ! ham
      guido
    --- 1,4 ----
    ! python
    ! eggy
    ! hamster
      guido

    (4) 比对两个文件,然后生成一个展示差异结果的HTML文件

    import difflib
    hd = difflib.HtmlDiff()
    file1 = ''
    with open('xxx1.py','r') as load:
        file1 = load.readlines()
        load.close()
    
    file2 = ''
    with open('xxx2', 'r') as mem:
        file2 = mem.readlines()
        mem.close()
    
    with open('htmlout.html','a+') as fo:
        fo.write(hd.make_file(file1,file2))
        fo.close()

    总结:difflib多用于文本的差异比较,用于模糊匹配精度还是不太准的,一般词的模糊匹配可用fuzzywuzzy

    参考链接

    1. python difflib模块讲解示例

    2.【python】字符串模糊匹配及在实战中的应用(FuzzyWuzzy库)

    3. FuzzyWuzzy:Python中的模糊字符串匹配

    展开全文
  • python fuzzywuzzy 模糊匹配,计算相似度 from fuzzywuzzy import fuzz from fuzzywuzzy import process 1:简单匹配 a = fuzz.ratio('this is a shot','this is a shat') Out[37]: 93 2:非完全匹配 b = fuzz....

    每天一点点,记录学习点滴

    python fuzzywuzzy 模糊匹配,计算相似度

    from fuzzywuzzy import fuzz
    from fuzzywuzzy import process
    

    1:简单匹配

    a = fuzz.ratio('this is a shot','this is a shat')
    

    Out[37]: 93

    2:非完全匹配

    b = fuzz.partial_ratio('this is a shot','this is o shot')
    

    Out[38]: 93
    3:忽略顺序匹配

    d = fuzz.token_sort_ratio('我是谁?我在哪?','我在哪?我是谁?')
    

    Out[40]: 100
    4:去重子集匹配

    e = fuzz.token_set_ratio('this is a shot','this is is a shot')
    

    Out[42]: 100

    5:返回模糊匹配的字符串和相似度,如果不需要全部数据,只要
    其中几个,可以最后设置条件limit = n 即可

    choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
    f = process.extract("New York Jets",choices)
    

    Out[44]:
    [(‘New York Jets’, 100),
    (‘New York Giants’, 79),
    (‘Atlanta Falcons’, 29),
    (‘Dallas Cowboys’, 22)]

    模糊查找匹配字符串和相似度

    g = process.extractOne('Cow',choices)
    

    Out[46]:
    (‘Dallas Cowboys’, 90)

    展开全文
  • Python字符串模糊匹配库FuzzyWuzzy 在计算机科学中,字符串模糊匹配(fuzzy string matching)是一种近似地(而不是精确地)查找与模式匹配的字符串的技术。换句话说,字符串模糊匹配是一种搜索,即使用户拼错...
  • 通过使用wordnet文本匹配,我意识到wordnet只能将一个单词与一个单词进行匹配。它不能将一个单词与一个短语相匹配。在如你所见,我有两个清单。在list1=['fruit', 'world']list2=[u'domain', u'creation Year', u'...
  • 本文将从字符串模糊匹配的角度介绍一下搜索引擎。一般的搜索,要分为两个步骤:搜索和排序。搜索的方法有很多,为了高效一般进行字符串或关键词匹配,而用户提供的一些关键词可能不是数据库中保存的,例如使用倒...
  • FuzzyWuzzy一个简单易用的模糊字符串匹配工具包。让你轻松解决烦恼的匹配问题! 前言 在处理数据的过程中,难免会遇到下面类似的场景,自己手里头获得的是简化版的数据字段,但是要比对的或者要合并的却是完整版的...
  • fuzzywuzzy:Python中的字符串模糊匹配
  • 原文链接:...经过一些改动,编辑距离同样可以用于子串的模糊匹配。 例子: 子串:“abc” 匹配对象:“c abba c
  • 【金融科技】模糊匹配
  • 今天小编就为大家分享一篇python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python编程:fuzzywuzzy字符串模糊匹配

    千次阅读 2019-03-26 13:00:51
    fuzzywuzzy使用编辑距离(Levenshtein Distance)来计算序列之间的差异 github: https://github.com/seatgeek/fuzzywuzzy 安装 pip install fuzzywuzzy ...python: fuzzywuzzy学习笔记
  • 利用FuzzyWuzzy库匹配字符串1. 背景前言2. FuzzyWuzzy库介绍2.1 安装2.1 fuzz模块2.1.1 简单匹配(Ratio)2.1.2 非完全匹配(Partial Ratio)2.1.3 ... pandas实战应用3.1 公司名称字段模糊匹配3.1.1 参数讲解:3.1.2
  • 对文件的操作算是Python中一个基础又重要的知识点了,无论是在爬虫、数据分析、Web开发,还是在编写图形界面、进行数据分析,都有可能需要用到文件相关的操作。今天就来总结性地学习和回顾一下,Python各类文件处理...
  • 我们在登录之后操作浏览器进入考试界面并且获取试题的文本内容,然后利用模糊匹配得到相应的答案,点击对应的按钮,完成答题操作。 Python学习资源扣QUN:⑦⑧④⑦⑤⑧②①④ 从零基础开始到Python各领域的项目...
  • # 模糊匹配查询内容keyword是模糊查询关键字,list是查询出的列表,该函数用于验证查询的结果是不是 #都包含该关键字,如果都包含则返回True,否则返回False。 def fuzzy_match(self,keyword,list): flag='' ...
  • xpath模糊匹配,类似find_by_partial_link,如下图: contains(属性名,字符串),starts-with(属性名,字符串),ends-with(属性名,字符串),matchs(属性名,字符串) 转载于:...
  • 模糊匹配以xx开头:starts-with xpath("//input[starts-with(@id,‘xx') ]") driver.find_element_by_xpath("//input[starts-with(@class,'s_ip')]").send_keys("hao") 5、文本属性 对于这种文本属性,语法:.//*...
  • python遍历文件夹及其子文件夹, 查询出所有的文件 按照名字模糊搜索模板文本进行比对
  • 如,通过模糊匹配text属性,找到百度首页的“糯米”网站超链接 driver.find_element_by_xpath("//a[contains(text(),'糯')]").click()   2.模糊匹配某个属性:contains xpath("//input[contains(@id,‘xx')]...
  • FuzzyWuzzy:Python中的模糊字符串匹配

    千次阅读 2019-03-13 16:25:07
    模糊字符串匹配是大致(而不是精确地)查找与给定模糊匹配的字符串的过程,就像字面意思一样,它也被称为近似字符串匹配。通常,这些字符串普哦诶的模式另一个字符串。 使用Levenshtein Distance计算两个字符串之间...
  • Python 字符串匹配、搜索及替换

    千次阅读 2019-12-31 23:11:45
    文章目录字符串匹配、搜索及替换字符串开头或结尾匹配str.startswith() 和 str.endswith()用 Shell ...对于字符串的检查,可以通过特定的文本模式进行匹配。在 Python 内置类型中也提供了 str.startswith() 和 str....
  • OpenCV+Python实现SIFT匹配地理标记图像1. 什么是SIFT1.1 SIFT算法解决的问题1.2 SIFT算法的步骤功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合...
  • # 用contains,寻找页面中...# 用于知道超链接上显示的部分或全部文本信息 self.driver.find_element_by_xpath('//a[contains(text(), "退出")]').click() 转载于:https://www.cnblogs.com/sgwjj/p/8035613.html
  • 超级小白,刚刚接触python。这两天想要试着爬一下爱彼迎上的民宿信息,包括房屋情况、位置、价格三个信息
  • re模块提供来正则表达式匹配操作,用来对文本进行一些处理优化。匹配模式和被搜索的字符串既可以是Unicode字符串(str),也可以是8位字节串(bytes),不过两者不能混用。绝大多数正则表达式操作都提供了相应的函数,...
  • python单词模糊查找

    2019-01-17 17:44:56
    QQ群:476842922(欢迎加群讨论学习) file00 = open("C:\\Users\\Administrator\\dictNewN.txt", "r") content = file00.read() content.strip() list00 = content.splitlines()# 按照行('\r', '...
  • python 数据库模糊查询

    千次阅读 2018-08-06 22:36:26
    import sqlite3 import random connect = sqlite3.connect('...有了模式匹配功能就可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下列表格指出 pattern 中允许的字符以及它们与什么进行匹配

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,815
精华内容 3,526
关键字:

python文本模糊匹配

python 订阅