<p>我假设你同时安装了fuzzyfuzzy和python Levenshtein。
第二个软件包的安装失败,因此我收到一条消息:</p>
<blockquote>
<p>warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')</p>
</blockquote>
<p>可以使用<a href="https://docs.python.org/3.7/library/itertools.html?highlight=itertools#itertools.product" rel="nofollow noreferrer">itertools.product</a>创建笛卡尔积:</p>
<pre class="lang-py prettyprint-override"><code>from itertools import product
from fuzzywuzzy import fuzz
def get_fuzz_score(str1, str2):
partial_ratio = fuzz.partial_ratio(str1, str2)
return partial_ratio
a = ['Express Scripts', 'Catamaran Corp', 'Banmedica SA (96.7892%)', 'WebMD', 'ODC', 'Caremerge LLC (Stake%)']
b = ['Doctor on Demand', 'Catamaran', 'Express Scripts Holding Corp', 'ODC, Inc.', 'WebMD Health Services', 'Banmedica']
for first, second in product(a, b):
if get_fuzz_score(first, second) > 80:
# process
</code></pre>
<p>如果函数get\u fuzz\u score没有增长,则可以将其废弃:</p>
<pre class="lang-py prettyprint-override"><code>from itertools import product
from fuzzywuzzy import fuzz #
a = ['Express Scripts', 'Catamaran Corp', 'Banmedica SA (96.7892%)', 'WebMD', 'ODC', 'Caremerge LLC (Stake%)']
b = ['Doctor on Demand', 'Catamaran', 'Express Scripts Holding Corp', 'ODC, Inc.', 'WebMD Health Services', 'Banmedica']
for first, second in product(a, b):
if fuzz.partial_ratio(first, second) > 80:
pass # process
</code></pre>