模糊起点
Fuzzy Startswith
有没有一种方法可以执行模糊 "startswith",如果第一个字符串以接近第二个的字符串开头,它会 return 为真?我的第一个想法是使用编辑距离阈值,但我不确定如何在 startswith 的上下文中执行此操作。
示例:
first_str = "My nam is Hello World"
second_str = "My name is"
first_str.startswith(second_str) == True
fuzzywuzzy 可以帮助
>>> from fuzzywuzzy import fuzz
>>> fuzz.partial_ratio("my name is joran","my nam is")
你需要 pip install fuzzywuzzy
然后你只需要选择一个比率 "True" 这并不一定意味着 "it startswith" 我们可以用辅助函数来做到这一点
def fuzzy_startswith(needle,haystack):
n_words = len(needle.split())
haystack_startswith = " ".join(haystack.split()[:n_words])
return fuzz.ratio(needle,haystack_startswith)
fuzzy_startswith("my nam is","my name is joran")
有没有一种方法可以执行模糊 "startswith",如果第一个字符串以接近第二个的字符串开头,它会 return 为真?我的第一个想法是使用编辑距离阈值,但我不确定如何在 startswith 的上下文中执行此操作。
示例:
first_str = "My nam is Hello World"
second_str = "My name is"
first_str.startswith(second_str) == True
fuzzywuzzy 可以帮助
>>> from fuzzywuzzy import fuzz
>>> fuzz.partial_ratio("my name is joran","my nam is")
你需要 pip install fuzzywuzzy
然后你只需要选择一个比率 "True" 这并不一定意味着 "it startswith" 我们可以用辅助函数来做到这一点
def fuzzy_startswith(needle,haystack):
n_words = len(needle.split())
haystack_startswith = " ".join(haystack.split()[:n_words])
return fuzz.ratio(needle,haystack_startswith)
fuzzy_startswith("my nam is","my name is joran")