【问题标题】:AttributeError: module 'fuzzywuzzy' has no attribute 'ratio'AttributeError:模块 'fuzzywuzzy' 没有属性 'ratio'
【发布时间】:2019-03-11 20:41:53
【问题描述】:

我正在尝试从库fuzzywuzzy 中调用 ratio() 函数来匹配两个字符串并得到以下错误消息:

AttributeError: module 'fuzzywuzzy' has no attribute 'ratio'

版本变了吗?我试图在 fuzz 中寻找其他功能以查看它是否存在,但我无法找到它。

import fuzzywuzzy as fuzz
from fuzzywuzzy import process
import Levenshtein
fuzz.ratio('Lord of the Rings', 'The Lord of the Rings')

【问题讨论】:

  • from fuzzywuzzy import fuzz
  • 这只是一个错字吗?或与模块版本更改有关?如果是版本问题,也许给你正在使用的版本和新版本。

标签: python fuzzywuzzy


【解决方案1】:

ratio 是fuzzywuzzy.fuzz 的一个方法。使用:

from fuzzywuzzy import fuzz

那么你可以使用:

fuzz.ratio('Lord of the Rings', 'The Lord of the Rings')

【讨论】:

    【解决方案2】:

    将导入更改为:

    from fuzzywuzzy as fuzz
    from fuzzywuzzy import process
    

    【讨论】:

      【解决方案3】:

      如果你检查here,你可以看到你没有正确导入fuzzywuzzy。

      你应该使用from fuzzywuzzy import fuzz而不是import fuzzywuzzy as fuzz

      基本上,您有两种方法可以做到这一点。要么:

      import fuzzywuzzy as <something>
      <something>.fuzz.ratio(...)
      

      或 从fuzzywuzzy导入fuzz fuzz.ratio(...)

      【讨论】:

        【解决方案4】:

        https://github.com/seatgeek/fuzzywuzzy 的自述文件指出使用fuzzywuzzy 的方法是:

        from fuzzywuzzy import fuzz
        from fuzzywuzzy import process
        

        您的操作方式 (import fuzzy-wuzzy as fuzz) 意味着您需要在调用层次结构中设置另一个级别,fuzz.fuzz.blah 而不仅仅是 fuzz.blah。

        所以答案是要么使用额外的级别,要么以记录的方式导入它。

        【讨论】:

          猜你喜欢
          • 2018-04-14
          • 2019-02-18
          • 1970-01-01
          • 2020-01-01
          • 2019-07-20
          • 2021-11-05
          • 2021-11-04
          • 2021-02-23
          相关资源
          最近更新 更多