Spacy: ImportError: ошибка загрузки DLL: указанный модуль не найден. (Ошибка при загрузке японской модели)

#python #python-3.x #nlp #anaconda #spacy

#python #python-3.x #nlp #anaconda #spacy

Вопрос:

Как воспроизвести поведение

В приглашении Anaconda я создал среду: my_env Здесь, я установил spacy ( pip install -U spacy ) и загрузил английскую и японскую модели ( python -m spacy download ja_core_news_sm ). Загрузка английской модели не дала ошибки.

Но когда я делаю :

 import spacy
nlp = spacy.load("ja_core_news_sm")
  

Он выдал следующую ошибку :

 Traceback (most recent call last):
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacylangja__init__.py", line 31, in try_sudachi_import
    from sudachipy import dictionary, tokenizer
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagessudachipy__init__.py", line 15, in <module>
    from . import utf8inputtextbuilder
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagessudachipyutf8inputtextbuilder.py", line 16, in <module>
    from .dictionarylib.categorytype import CategoryType
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsannolibsite-packagessudachipydictionarylib__init__.py", line 19, in <module>
    from . import doublearraylexicon
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagessudachipydictionarylibdoublearraylexicon.py", line 17, in <module>
    from dartsclone import DoubleArray
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesdartsclone__init__.py", line 1, in <module>
    from dartsclone._dartsclone import DoubleArray
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacy__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacyutil.py", line 170, in load_model
    return load_model_from_package(name, **overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacyutil.py", line 191, in load_model_from_package
    return cls.load(**overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesja_core_news_sm__init__.py", line 12, in load
    return load_model_from_init_py(__file__, **overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacyutil.py", line 239, in load_model_from_init_py
    return load_model_from_path(data_path, meta, **overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacyutil.py", line 203, in load_model_from_path
    nlp = cls(meta=meta, **overrides)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacylanguage.py", line 186, in __init__
    make_doc = factory(self, **meta.get("tokenizer", {}))
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacylangja__init__.py", line 273, in create_tokenizer
    return JapaneseTokenizer(cls, nlp, config)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacylangja__init__.py", line 139, in __init__
    self.tokenizer = try_sudachi_import(self.split_mode)
  File "C:Usersnitin.trivediAppDataLocalContinuumanaconda3envsmy_envlibsite-packagesspacylangja__init__.py", line 44, in try_sudachi_import
    "Japanese support requires SudachiPy and SudachiDict-core "
ImportError: Japanese support requires SudachiPy and SudachiDict-core (https://github.com/WorksApplications/SudachiPy). Install with `pip install sudachipy sudachidict_core` or install spaCy with `pip install spacy[ja]`.
  

Я попытался установить pip install sudachipy sudachidict_core
Я проверил наличие dartsclone и убедился, что он уже присутствует.

Окружающая среда

  • Операционная система: Windows 10
  • Используемая версия Python: 3.6.10
  • Используемая версия spaCy: 2.3.2
  • Информация об окружающей среде: Anaconda

Комментарии:

1. Зачем использовать pip для установки spacy?

2. согласно инструкциям в документации spacy

3. Однако он также доступен в виде пакета Conda.

4. Похоже, это какая-то странная ошибка / проблема с библиотекой, возникающая при установке spaCy через conda . После многих дней биения головой о стену мне удалось создать conda пакеты Windows для sudachipy и его требования. Попробуйте conda install -c dmnapolitano sudachipy а также dartsclone и sudachidict-core . Они работают у меня, и я надеюсь, что вам повезет так же 🤞🏻