1

次のコードの 2 番目の部分を実行しようとすると、このあいまいなモジュールに問題が発生します。

fuzz.partial_ratio("this is a test", "this is a test!")

次のようなエラーが発生します。

Traceback (most recent call last):

  File "<ipython-input-44-f5783c7c4393>", line 1, in <module>
    fuzz.partial_ratio("this is a test", "this is a test!")

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/utils.py", line 23, in decorator
    return func(*args, **kwargs)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/utils.py", line 32, in decorator
    return func(*args, **kwargs)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/fuzz.py", line 69, in partial_ratio
    blocks = m.get_matching_blocks()

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/StringMatcher.py", line 58, in get_matching_blocks
    self._str1, self._str2)

TypeError: inverse expected a list of edit operations

最後の部分を実行しようとしたときの2番目のもの:

process.extractOne("cowboys", choices)

次のようなエラーが発生します。

Traceback (most recent call last):

  File "<ipython-input-45-8f425ac79b9d>", line 1, in <module>
    process.extractOne("cowboys", choices)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/process.py", line 161, in extractOne
    best_list = extract(query, choices, processor, scorer, limit=1)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/process.py", line 110, in extract
    score = scorer(query, processed)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/fuzz.py", line 247, in WRatio
    partial = partial_ratio(p1, p2) * partial_scale

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/utils.py", line 23, in decorator
    return func(*args, **kwargs)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/utils.py", line 32, in decorator
    return func(*args, **kwargs)

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/fuzz.py", line 69, in partial_ratio
    blocks = m.get_matching_blocks()

  File "/usr/lib/python3/dist-packages/fuzzywuzzy/StringMatcher.py", line 58, in get_matching_blocks
    self._str1, self._str2)

TypeError: inverse expected a list of edit operations

これらの 2 つを除いて、他のすべてのコードは正常に機能しています。これを修正するにはどうすればよいですか? 現在、ubuntu 14.04LTS と Spyder を使用して Python を実行しています。

編集:levenshtein、fuzzywuzzy、およびdifflibモジュールを再インストールしようとしました。それでも同じ問題が発生します。ubuntuを使っているからでしょうか?デュアル ブート Windows 10 を使用して実行しようとすると、動作するからです。

4

1 に答える 1

0

fuzzywuzyy をアンインストールしてみてください。

 pip install fuzzywuzzy[speedup]

このエラーは、古いバージョンの python-Levenshtein が原因です。

于 2021-01-19T01:31:42.827 に答える