github主页
导入:
> from fuzzywuzzy import fuzz > from fuzzywuzzy import process
1)
> fuzz.ratio("this is a test", "this is a test!") out 97 > fuzz.partial_ratio("this is a test", "this is a test!") out 100
fuzz.ratio()对位置敏感,全匹配。fuzz.partial_ratio()对位置敏感,搜索匹配。
2)
> fuzz._process_and_sort(s, force_ascii, full_process=True)
对字符串s排序。force_ascii:True 或者False。为True表示转换为ascii码。如果full_process为True,则会将字符串s转换为小写,去掉除字母和数字之外的字符(发现不能去掉-字符),剩下的字符串以空格分开,然后排序。如果为False,则直接对字符串s排序。
> fuzz._token_sort(s1, s2, partial=True, force_ascii=True, full_process=True)
给出字符串 s1, s2的相似度。首先经过 fuzz._process_and_sort()函数处理。partial为True时,再经过fuzz.partial_ratio()函数。partial为False时,再经过fuzz.ratio()函数。
> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear") out 100
partial为False的_token_sort()
fuzz.partial_token_sort_ratio(s1, s2, force_ascii=True, full_process=True)
就是partial为True时的Fuzz._token_sort()
3)
> fuzz.token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear") out 100
fuzz._token_set(s1, s2, partial=True, force_ascii=True, full_process=True)
当partial为False时,就是 fuzz.token_set_ratio()函数。
fuzz.partial_token_set_ratio(s1, s2, force_ascii=True, full_process=True)
partial为True的fuzz._token_set()函数。
4)
fuzz.QRatio(s1, s2, force_ascii=True, full_process=True)
full_process为True时,经过utils.full_process()函数。然后经过fuzz.ratio()函数。对顺序敏感。
fuzz.UQRatio(s1, s2, full_process=True)
就是 force_ascii为False的fuzz.QRatio()函数。
fuzz.WRatio(s1, s2, force_ascii=True, full_process=True)
使用另一种不同算法计算相似度。对顺序敏感。
UWRatio(s1, s2, full_process=True)
是force_ascii为False的fuzz.WRatio()函数。
总结:如果计算相似度的字符串只有字母和数字,直接可以用ratio()和partial_ratio()。但如果还有其他字符,而且我们想要去掉这些没用字符,就用下边的。下边的函数都对顺序不敏感,但token_sort_ratio()系列是全字符匹配,不管顺序。而token_set_ratio()只要第二个字符串包含第一个字符串就100,不管顺序。
5)
> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"] > process.extract("new york jets", choices, limit=2) [('New York Jets', 100), ('New York Giants', 78)] > process.extractOne("cowboys", choices) ("Dallas Cowboys", 90)
> process.extract(query, choices, processor=default_processor, scorer=default_scorer, limit=5)
query是字符串,choices是数组,元素是字符串。 processor是对输入比较的字符串的处理函数,默认是fuzzywuzzy.utils.full_process(),即将字符串变为小写, 去掉除字母和数字之外的字符(发现不能去掉-字符),剩下的字符串以空格分开。scorer计算两个字符串相似度的函数,默认fuzz.WRatio()。 limit是输出个数。
输出为数组,元素为元组,元祖第一个匹配到的字符串,第二个为int型,为score。对输出按照score排序。
> process.extractWithoutOrder(query, choices, processor=default_processor, scorer=default_scorer, score_cutoff=0)
score_cutoff为一个阈值,当score小于该阈值时,不会输出。返回一个生成器,输出每个大于 score_cutoff的匹配,按顺序输出,不排序。
> process.extractBests(query, choices, processor=default_processor, scorer=default_scorer, score_cutoff=0, limit=5)
process.extractBests()和process.extract()都调用了process.extractWithoutOrder(),只不过process.extractBests()能传输 score_cutoff。
> process.extractOne(query, choices, processor=default_processor, scorer=default_scorer, score_cutoff=0)
也调用了process.extractWithoutOrder(),只不过输出一个score最高的值。
process.dedupe(contains_dupes, threshold=70, scorer=fuzz.token_set_ratio)
contains_dupes是数组,元素为字符串。
取出相似度小于 threshold的字符串,相似度大于 threshold的字符串取最长一个。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]