python - Python - 与字符串一起获取匹配的字符串百分比
问题描述
我想将字符串与某些关键字匹配,并获取与我的关键字匹配的百分比和子字符串。例如,我有一个关键字列表
keywords = ['Projekt-Nr.:', 'Projektbezeichnung:', 'Anlagenklassifizierung:', 'Arbeiten / Gewerk:']
和一些未知的文字,例如
s = "Projekthezeichnung: —_[H- Kloster Eig i Krankenhaus"
我希望在此字符串中搜索我的关键字,以便它返回部分匹配的字符串。
'Projektbezeichnung:' 应该匹配 'Projekthezeichnung:' 的准确率超过 95%(我已经为此使用了 cdifflib),但 cdifflib 不返回与我的关键字匹配的子字符串。
如何获取与我的关键字部分匹配的未知子字符串?
任何帮助都会非常有用,谢谢!
解决方案
difflib
get_close_matches
似乎合适:
from difflib import get_close_matches as gcm
keywords = ['Projekt-Nr.:', 'Projektbezeichnung:', 'Anlagenklassifizierung:', 'Arbeiten / Gewerk:']
unk_text = "Projekthezeichnung: —_[H- Kloster Eig i Krankenhaus"
words = unk_text.split()
result = [gcm(kw, words, n=len(words), cutoff=0.8) for kw in keywords]
# [[], ['Projekthezeichnung:'], [], []]
列表的每个子result
列表都包含与相应关键字的“接近”匹配项。
推荐阅读
- powershell - 如何在 PowerShell 中使用 Copy-Item 排除隐藏文件夹/文件?
- javascript - 试图纠正零售价格显示
- reactjs - 如何使 redux 连接的反应组件监听在反应之外调度的动作
- postgresql - PSQL 命令行结尾从 => 更改为 (>
- python-3.x - 使用 Hunspell 和 Python 进行拼写无法处理带符号的葡萄牙语单词
- html - 画布 1 应调整为窗口大小,画布 2 应固定大小
- javascript - Javascript/CSS:动态改变 HTML 元素的边框颜色
- bash - Bash:计算来自多个 log.gz 文件的特定字符串的出现次数
- gitlab - Gitlab - 与远程服务器同步在线回购?
- python - 为什么 Scipy dendrogram 距离轴比例会随着变量的数量而变化?