Dockerfile 下载NLTK Data避坑指南

3 篇文章 0 订阅
1 篇文章 0 订阅

目录

命令行安装

配置到Dockerfile中之后运行报错

手动安装

下载器报错

报错信息结论

解决DNS解析问题

查看需要安装包的下载链接

 查看下载链接域名信息

修改HOSTS文件

完整Dockerfile


完整的Dockerfile在最后自行参考,Chromedriver按需要配置。

NLTK官网 

NLTK :: Installing NLTK Data

Github地址

GitHub - nltk/nltk_data: NLTK Data

命令行安装

 此处提到命令下载:

python -m nltk.downloader all
sudo python -m nltk.downloader -d /usr/local/share/nltk_data all

配置到Dockerfile中之后运行报错

docker build -t python:nltk .

Cannot assign requested address 无法分配请求地址

手动安装

查看手动下载地址

https://www.nltk.org/nltk_data/

 根据官网描述,下载后zip文件需要解压到对应的目录下。例如:https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/brown.zip 解压到 nltk_data/corpora/brown目录。

尝试使用下载器下载链接

https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/brown.zip

下载器报错

无法分配请求的地址,该地址无效

报错信息结论

说明域名无法访问,此时我们使用ping命令测试一下连通性

由此可见域名解析出了问题,需要解决DNS解析问题之后就可以正常访问了。 

解决DNS解析问题

查看需要安装包的下载链接

 查看下载链接域名信息

https://www.ipaddress.com/site/raw.githubusercontent.com

找到域名解析的IPV4地址

 再用ping命令测试一下

修改HOSTS文件

说明ip没问题,最后以管理员身份打开HOSTS文件

Windows: C:\Windows\System32\drivers\etc\HOSTS

Linux: /etc/hosts

添加以下配置

185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com

再ping一次域名

再次执行Docker命令

docker build -t python:nltk .

 建议指定类型安装NLTK Data可以减少image大小,避免安装失败。

# 建议安装指定nltk data
RUN python3 -W ignore -m nltk.downloader -d /root/nltk.data punkt
RUN python3 -W ignore -m nltk.downloader -d /root/nltk.data stopwords

完整Dockerfile

FROM python:3.9

RUN cd && mkdir .pip  && mkdir .ssh
COPY ./pip.ini /root/.pip/pip.conf
# 配置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list

# 配置Google sign key
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'

# 准备工作
RUN apt-get clean
RUN apt-get update
RUN apt-get install git openssl
RUN apt-get clean
RUN apt-get install -y google-chrome-stable

# 下载chromedriver
RUN apt-get install -yqq unzip
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
# 解压
RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/
RUN rm -rf /tmp/chromedriver.zip
RUN apt remove -y unzip
RUN chmod 777 -R /opt/

# 安装NLTK
RUN pip3 install --upgrade pip && pip3 install wheel && pip3 install nltk

# 下载nltk data(以下几种方式都可以,-d参数后面必须跟目录)
# RUN python3 -m nltk.downloader all
# RUN python3 -m nltk.downloader -d /root/nltk.data all
# RUN python3 -c "import nltk; nltk.download('all')"
# 忽略Warning日志
# RUN python3 -W ignore -m nltk.downloader -d /root/nltk.data all
# 安装指定nltk data
RUN python3 -W ignore -m nltk.downloader -d /root/nltk.data punkt
RUN python3 -W ignore -m nltk.downloader -d /root/nltk.data stopwords
nltk_dataPython中一款常用的自然语言处理工具包NLTK(Natural Language Toolkit)中的一个重要组成部分。它包含了多种语料库、词典和训练数据,用于支持多种自然语言处理任务,如分词、词性标注、句法分析等。 下载nltk_data可以通过以下步骤进行: 1. 安装NLTK:在Python环境中,可以通过pip install nltk命令进行安装。确保已经安装了合适版本的Python和pip工具。 2. 导入nltk模块:在Python代码文件中,通过import nltk导入nltk模块。 3. 先下载nltk_data的索引文件:通过nltk.download('all')命令下载nltk_data的索引文件。也可以选择只下载需要的部分,比如nltk.download('book')只下载书籍中所需的数据。 4. 下载需要的数据:通过nltk.download('data_name')命令下载具体的数据。其中data_name可以是具体的文件名,也可以是语料库或词典的名称。 需要注意的是,下载nltk_data可能需要一定的时间和网络连接。下载过程中可以看到下载的进度以及下载完成的数据大小。下载后,nltk_data将默认保存在本地的NLTK数据目录中。 下载完成后,就可以在NLTK中使用数据了。可以使用nltk.corpus模块来访问语料库数据,使用nltk.data模块来访问其他数据。比如可以使用nltk.corpus.brown.words()来获取Brown语料库的词汇,使用nltk.data.path来获取nltk_data保存在本地的路径。 总之,下载并使用nltk_data是进行自然语言处理任务中必备的一步。通过下载nltk_data,我们可以获得丰富的语料库、词典和训练数据,从而更好地进行文本处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amour_柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值