python - 在 Python 3 中模糊得分前 N?
问题描述
我正在尝试建立一个dataframe
单词和fuzzywuzzy
分数,并获得前 5 名。
例如我有测试词test = "kuku"
我的词袋是:
words = ["tutu", "pupu", "lulu", "kuko", "dfvfd", "wwwer"]
到目前为止,我已经完成了以下工作:
import os
import pandas as pd
from fuzzywuzzy import fuzz
test = "kuku"
[print(i, fuzz.ratio(i, test)) for i in words]
但我希望能够按分数排序并获得前 N 个。
请告知解决此类问题的最佳做法是什么?
解决方案
Fuzzywuzzy 的 process.extract() 以反向排序返回单词列表。第一场比赛将是最好的一场。
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
query = 'sat'
choices = ['slate', 'saturn', 'satellite', 'sat', 'shore']
print(f"top 3: {process.extract(query, choices)[:3]}")
推荐阅读
- mysql - 你能避免在 MySQL 上使用子查询以获得更好的性能吗?
- audio - 使用 gstreamer 的低延迟音频流,降低胡椒机器人的缓冲时间时丢弃的样本
- vba - Access 2013 AuditTrail 表将 GUID 显示为中文符号
- sql - 使用 powershell 自动化数据库计数、数据库名称、数据库创建日期
- django - 找不到 Django WhiteNoise 模块
- apostrophe-cms - 如何在远程撇号服务器中创建管理员用户
- vba - VBA:如何在应用文本时考虑 WEEKNUM 2019 值
- javascript - 将 tbody 中的表分别为多个表求和
- smartcard - 智能卡和 SIM 卡有什么区别?
- html - apache中的文件夹不解释html