• 如何手动添加NLTK data


    一、问题描述

    Python的自然语言处理库NLTK在安装之后需要下载一些data文件才能使用。官方比较推荐的方式是直接运行下载data的代码:

    1. import nltk
    2. nltk.download('punkt')

    但是实际操作之后发现由于网络原因无法下载成功。

    除了运行代码之外,官方还推荐了两种下载数据包的方法:命令行执行安装命令以及手动添加。由于命令行执行安装命令也需要网络顺畅,跟运行代码本质上是一样的,所以我选择了比较稳妥的手动添加方式。

    二、解决方法(以下载punkt相关数据为例)

    第1步:先把全部data下载到电脑里。这里我提供一个我自己存放这些data的网盘地址: https://pan.baidu.com/s/1HrcWaPGAMx3eXouURHGZJA 提取码: 9aue 

    第2步:解压下载下来的data,存放到电脑里合适的位置。我放到了D:\nltk_data目录下。目录结构如图所示:

    D:\nltk_data\

    └─tokenizers

        └─punkt
            │  czech.pickle
            │  danish.pickle
            │  dutch.pickle
            │  english.pickle
            │  estonian.pickle
            │  finnish.pickle
            │  french.pickle
            │  german.pickle
            │  greek.pickle
            │  italian.pickle
            │  norwegian.pickle
            │  portuguese.pickle
            │  README
            │  slovene.pickle
            │  spanish.pickle
            │  swedish.pickle
            │  turkish.pickle
            │  
            └─PY3
                    czech.pickle
                    danish.pickle
                    dutch.pickle
                    english.pickle
                    estonian.pickle
                    finnish.pickle
                    french.pickle
                    german.pickle
                    greek.pickle
                    italian.pickle
                    norwegian.pickle
                    portuguese.pickle
                    README
                    slovene.pickle
                    spanish.pickle
                    swedish.pickle
                    turkish.pickle

    可以看到,这些pickle文件在punkt目录里保存了一份,又在punkt下的PY3目录里保存了一份,这是因为NLTK库下的data.py模块中会从这两个路径读取数据,少一份都会报错。所以,大家也要这样构造目录结构,把文件保存两份。

    第3步:创建环境变量,指向顶层目录D:\nltk_data。win10系统创建环境变量方法如下:

    查看高级系统设置->环境变量->系统变量->新建->填写变量名和变量值->每个窗口都点击“确定”

     第4步:检验数据是否添加成功。可以运行下面的代码:

    1. from nltk import word_tokenize
    2. input = "What's the best way to split a sentence into words?"
    3. print(word_tokenize(input))

    运行结果是:['What', "'s", 'the', 'best', 'way', 'to', 'split', 'a', 'sentence', 'into', 'words', '?']

    如果得到了正确的切分结果,那就说明数据添加成功了。

    如果这篇博文帮到了你,就请给我点个吧(#^.^#)

    有疑问也欢迎留言~博主最近比较忙,如果没有及时回复还请见谅

    ヾ(◍°∇°◍)ノ゙

  • 相关阅读:
    一份关于网络工程师的“失业”生存指南
    html进阶语法
    Codeforces 1670 E. Hemose on the Tree
    centos7篇---安装nvidia-docker
    Tomcat相关基础以及安装运行
    网络安全管理与运维服务
    《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第12章 元数据
    微信支付服务商模式(电商收付通)实现分账操作
    Netty启动之后马上退出问题排查
    各种锁机制
  • 原文地址:https://blog.csdn.net/weixin_44520259/article/details/128169377