【问题标题】:unable to download the pipeline provided by spark-nlp library无法下载 spark-nlp 库提供的管道
【发布时间】:2020-02-19 16:39:52
【问题描述】:

我无法使用 spark-nlp 库提供的预定义管道“recognize_entities_dl”

我尝试安装不同版本的 pyspark 和 spark-nlp 库

import sparknlp
from sparknlp.pretrained import PretrainedPipeline

#create or get Spark Session

spark = sparknlp.start()

sparknlp.version()
spark.version

#download, load, and annotate a text by pre-trained pipeline

pipeline = PretrainedPipeline('recognize_entities_dl', lang='en')
result = pipeline.annotate('Harry Potter is a great movie')

2.1.0
recognize_entities_dl download started this may take some time.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-13-b71a0f77e93a> in <module>
     11 #download, load, and annotate a text by pre-trained pipeline
     12 
---> 13 pipeline = PretrainedPipeline('recognize_entities_dl', 'en')
     14 result = pipeline.annotate('Harry Potter is a great movie')

d:\python36\lib\site-packages\sparknlp\pretrained.py in __init__(self, name, lang, remote_loc)
     89 
     90     def __init__(self, name, lang='en', remote_loc=None):
---> 91         self.model = ResourceDownloader().downloadPipeline(name, lang, remote_loc)
     92         self.light_model = LightPipeline(self.model)
     93 

d:\python36\lib\site-packages\sparknlp\pretrained.py in downloadPipeline(name, language, remote_loc)
     50     def downloadPipeline(name, language, remote_loc=None):
     51         print(name + " download started this may take some time.")
---> 52         file_size = _internal._GetResourceSize(name, language, remote_loc).apply()
     53         if file_size == "-1":
     54             print("Can not find the model to download please check the name!")

AttributeError: module 'sparknlp.internal' has no attribute '_GetResourceSize'

【问题讨论】:

  • 请提供有关 Apache Spark 版本和 Spark NLP 版本以及您的环境的信息。
  • 感谢回复,我使用的Apache Spark版本是2.3.0,Spark NLP版本是2.2.2和windows 10。

标签: python apache-spark johnsnowlabs-spark-nlp


【解决方案1】:

感谢您确认您的 Apache Spark 版本。预训练的管道和模型基于 Apache Spark 和 Spark NLP 版本。最低的 Apache Spark 版本必须是 2.4.x 才能下载预训练的模型/管道。否则,您需要为之前的任何版本训练自己的模型/管道。

这是所有管道的列表,它们都适用于 Apache Spark 2.4.x: https://nlp.johnsnowlabs.com/docs/en/pipelines

如果您查看任何模型或管道的 URL,您可以看到以下信息:

recognize_entities_dl_en_2.1.0_2.4_1562946909722.zip

  • 姓名recognize_entities_dl
  • en
  • Spark NLP:必须等于 2.1.0 或更大
  • Apache Spark:等于2.4.x 或更高

注意:正在针对 Apache Spark 2.4.x 构建和编译 Spark NLP 库。这就是模型和管道仅适用于 2.4.x 版本的原因。

注意2:由于您使用的是Windows,因此您需要使用与Windows兼容的_noncontrib模型和管道:Do Spark-NLP pretrained pipelines only work on linux systems?

我希望这个答案能帮助并解决您的问题。

2020 年 4 月更新:显然,在 Apache Spark 2.4.x 上训练和上传的模型和管道也与 Apache Spark 2.3.x 兼容。因此,如果您使用的是 Apache Spark 2.3.x,即使您不能使用 pretrained() 进行自动下载,您也可以手动下载它,而只需使用 .load()

所有模型和管道的完整列表以及下载链接:https://github.com/JohnSnowLabs/spark-nlp-models

更新:2.4.0 发布后,所有模型和管道都是跨平台的,无需为任何特定操作系统选择不同的模型/管道: https://github.com/JohnSnowLabs/spark-nlp/releases/tag/2.4.0

对于较新版本:https://github.com/JohnSnowLabs/spark-nlp/releases

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多