4

我正在尝试使用 python 的这个 pytextrank 库- https://github.com/DerwenAI/pytextrank/blob/master/example.ipynb 但我无法解决这个错误,早些时候我收到了一个错误,ip.json 可以'找不到,但后来解决了

    import pytextrank
    import sys
    path_stage0="data/ip.json" 
    path_stage1="o1.json"

    with open(path_stage1,'w') as f:
        for graf in pytextrank.parse_doc(pytextrank.json_iter(path_stage0)):
            f.write("%s\n" % pytextrank.pretty_print(graf._asdict()))
            print(pytextrank.pretty_print(graf))


    OSError                                   Traceback (most recent call last)
    <ipython-input-12-a20b437ea0f1> in <module>
          6 
          7 with open(path_stage1,'w') as f:
    ----> 8     for graf in pytextrank.parse_doc(pytextrank.json_iter(path_stage0)):
          9         f.write("%s\n" % pytextrank.pretty_print(graf._asdict()))
         10         print(pytextrank.pretty_print(graf))

~\Anaconda3\lib\site-packages\pytextrank\pytextrank.py in parse_doc(json_iter)
    259                 print("graf_text:", graf_text)
    260 
--> 261             grafs, new_base_idx = parse_graf(meta["id"], graf_text, base_idx)
    262             base_idx = new_base_idx
    263 

~\Anaconda3\lib\site-packages\pytextrank\pytextrank.py in parse_graf(doc_id, graf_text, base_idx, spacy_nlp)
    185     if not spacy_nlp:
    186         if not SPACY_NLP:
--> 187             SPACY_NLP = spacy.load("en")
    188 
    189         spacy_nlp = SPACY_NLP

~\Anaconda3\lib\site-packages\spacy\__init__.py in load(name, **overrides)
     25     if depr_path not in (True, False, None):
     26         deprecation_warning(Warnings.W001.format(path=depr_path))
---> 27     return util.load_model(name, **overrides)
     28 
     29 

~\Anaconda3\lib\site-packages\spacy\util.py in load_model(name, **overrides)
    137     elif hasattr(name, "exists"):  # Path or Path-like to model data
    138         return load_model_from_path(name, **overrides)
--> 139     raise IOError(Errors.E050.format(name=name))
    140 
    141 

OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
4

6 回答 6

7

使用 spacy 时,我们必须使用

python -m spacy download en_core_web_sm

如果您已经这样做了,请确保正确分配了快捷链接。表示 'en' 和 'en_core_web_sm' 之间的 simlink

当我直接与 spacy 合作时,简单的 hack

nlp = spacy.load("en_core_web_sm")

在https://spacy.io/usage/models获得更多帮助

于 2019-09-23T07:13:19.767 回答
6

型号名称已更改,因此en_core_web_sm需要下载其他型号。该问题在更新到 spaCy 2.x的v1.2.1版本中得到解决。

于 2019-11-02T10:49:31.063 回答
3

使用以下方法解决了笔记本上的错误:

!python -m spacy download en_core_web_md

您可以根据您的要求下载软件包,例如:

!python -m spacy download en_core_web_sm'

或者

!python -m spacy download en_core_web_lg
于 2020-09-21T04:59:37.420 回答
3

尝试使用以下命令:

spacy.cli.download("en")

nlp = spacy.load('en_core_web_sm')
于 2020-10-13T05:02:30.057 回答
2

我解决问题如下。

问题:我发出了以下命令:

点安装空间

python -m spacy 下载 en_core_web_lg

然后在 python 控制台中,当我使用 spacy.load("en_core_web_lg") 时,我收到以下错误:“找不到模型 'en_core_web_lg'。它似乎不是快捷链接、Python 包或数据目录的有效路径。”

解决方案:

  1. 首先,发出“which python”命令来查找程序使用的 python 安装。(输出示例:.../venv/bin/python)
  2. 在 lib 文件夹内(位于“bin”文件夹所在的同一级别),应该有一个“site-packages/spacy”文件夹。转到“空间/数据”文件夹。在 'site-packages 中,当您下载模型时,会创建一个文件夹(例如,en_core_web_lg 或 en_core_web_sm)。创建一个指向下载模型文件夹的符号链接,如下所示: ln -s LOCATION_TO_MODEL THE_MODEL_NAME_YOU_WANT_TO_USE (示例:ln -s .../venv/lib/python3.5/site-packages/en_core_web_lg
    en_core_web_lg en_core_web_lg)
  3. 创建一个名为“en_core_web_lg”的符号链接。
  4. spacy.load("en_core_web_lg") 命令现在正在工作。作为参数传递的名称现在指向模型的正确位置

有关符号链接的更多信息,请参见:https ://askubuntu.com/questions/56339/how-to-create-a-soft-or-symbolic-link

于 2021-03-29T00:04:40.787 回答
1

en对我来说,通过安装软件包解决了这个问题:

python -m spacy download en

我收到以下错误:

OSError:[E050] 找不到模型“en_core_web_sm”。它似乎不是快捷链接、Python 包或数据目录的有效路径。

于 2020-08-06T09:39:23.603 回答