首页 > 解决方案 > NERDA 模型导入的 ValueError

问题描述

我正在尝试导入 NERDA 库,以便使用它来参与 Python 中的命名实体识别任务。我最初尝试在 jupyter notebook 中导入库并收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\NERDA\models.py", line 13, in <module>
    from .networks import NERDANetwork
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\NERDA\networks.py", line 4, in <module>
    from transformers import AutoConfig
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\__init__.py", line 43, in <module>
    from . import dependency_versions_check
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\dependency_versions_check.py", line 36, in <module>
    from .file_utils import is_tokenizers_available
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\file_utils.py", line 51, in <module>
    from huggingface_hub import HfApi, HfFolder, Repository
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\__init__.py", line 31, in <module>
    from .file_download import cached_download, hf_hub_url
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\file_download.py", line 37, in <module>
    if tuple(int(i) for i in _PY_VERSION.split(".")) < (3, 8, 0):
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\file_download.py", line 37, in <genexpr>
    if tuple(int(i) for i in _PY_VERSION.split(".")) < (3, 8, 0):
ValueError: invalid literal for int() with base 10: '6rc1'

然后我尝试在 gitbash 中使用 pip 进行全局安装,得到了同样的错误。该库似乎安装没有错误,但是当我尝试以下导入时,我得到了相同的 ValueError:

from NERDA.models import NERDA

我还尝试了一些预煮模型导入并得到相同的 ValueError。

from NERDA.precooked import EN_ELECTRA_EN
from NERDA.precooked import EN_BERT_ML

我在网上找不到有关此错误的任何信息,希望有人能提供一些见解?非常感谢!

标签: pythonhuggingface-transformersnamed-entity-recognition

解决方案


看一下使用的 huggingface_hub 库的源代码。他们比较你的 python 版本来做不同的导入。
但是您使用了一个发布候选python 版本(这告诉了'6rc1'导致错误的值)。因为他们没有预料到/没有处理这个,所以你得到了 int-parse-ValueError。


解决方案 1:
将您的 python 版本更新为稳定版本。没有候选版本。所以你有一个仅限 int 的版本号。

解决方案 2:
Monkeypatch sys.version,在导入NERDA库之前。

sys.version = '3.8.0'

推荐阅读