Python - 获取匹配的字符串百分比以及字符串
Python - Get matched string percentage along with the string
我想将一个字符串与某些关键字匹配,并获取与我的关键字匹配的百分比和子字符串。例如。
我有一个关键字列表
keywords = ['Projekt-Nr.:', 'Projektbezeichnung:', 'Anlagenklassifizierung:', 'Arbeiten / Gewerk:']
和一些未知文本,例如
s = "Projekthezeichnung: —_[H- Kloster Eig i Krankenhaus"
我希望在此字符串中搜索我的关键字,以便 return 将部分匹配的字符串作为我。
'Projektbezeichnung:' 应该以超过 95% 的准确率匹配 'Projekthezeichnung:'(我已经为此使用了 cdifflib)但是 cdifflib 没有 return 我的关键字匹配的子字符串。
如何获取与我的关键字部分匹配的未知子字符串?
任何帮助都会非常有用,谢谢!
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
列表的每个子列表包含 "close" 个与相应关键字匹配的项。
我想将一个字符串与某些关键字匹配,并获取与我的关键字匹配的百分比和子字符串。例如。 我有一个关键字列表
keywords = ['Projekt-Nr.:', 'Projektbezeichnung:', 'Anlagenklassifizierung:', 'Arbeiten / Gewerk:']
和一些未知文本,例如
s = "Projekthezeichnung: —_[H- Kloster Eig i Krankenhaus"
我希望在此字符串中搜索我的关键字,以便 return 将部分匹配的字符串作为我。
'Projektbezeichnung:' 应该以超过 95% 的准确率匹配 'Projekthezeichnung:'(我已经为此使用了 cdifflib)但是 cdifflib 没有 return 我的关键字匹配的子字符串。
如何获取与我的关键字部分匹配的未知子字符串?
任何帮助都会非常有用,谢谢!
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
列表的每个子列表包含 "close" 个与相应关键字匹配的项。