NLTK与punkt_tab:解决分词报错问题

4 阅读3分钟

跟多朋友在使用NLTK进行英文分词时,会遇到控制台的报错:

image.png

多是对NLTK与punkt_tab的关系不了解,或是未掌握正确的数据包下载方法。本文将从两者的关联入手,拆解常见问题,详解punkt与punkt_tab的区别,并分步讲解punkt_tab的手动下载技巧,快速解决分词报错,顺畅开展NLP学习。

一、NLTK与punkt_tab:核心关联解析

打个比方:NLTK是一个“完整的工具箱”,里面包含了分词、词性标注、命名实体识别等全套NLP功能的代码接口(相当于工具箱的手柄、扳手等操作部件);而punkt_tab则是这个工具箱里“分词专用的核心配件”,是支撑NLTK实现句子分割、单词拆分的关键数据包(相当于扳手的刀头、螺丝刀的刃口)。

需要特别注意的是,punkt_tab并非可执行代码,而是基于大量语料训练好的规则数据文件,存储着不同语言的分词逻辑。且NLTK安装时默认不包含该数据包(为了节省磁盘空间),需要用户手动下载后,才能启用分词功能。

二、punkt与punkt_tab:一字之差,版本之别

在使用NLTK的过程中,会发现除了punkt_tab,还有一个名为punkt的数据包,两者功能完全一致,但属于NLTK不同版本的产物,核心差异在于存储格式和版本适配,具体区别如下:

特性punkt(旧版)punkt_tab(新版)
存储格式Pickle格式(.pickle)Tab-separated格式(.tab)
适配NLTK版本NLTK 3.8及以下NLTK 3.9+(主要是3.9/3.10+)
核心功能句子分割、单词分词完全相同(无功能差异)
兼容性新版NLTK可能不兼容旧版NLTK无法识别

一:通过NLTK图形化下载器(对新手友好的方法)

这是官方推荐的手动下载方式,可视化操作,无需记忆路径,具体步骤如下:

  1. 打开Python交互式终端:按下Win+R输入python回车:

image.png

  1. 执行代码打开下载器:输入import nltk,再输入nltk.download(),此时会弹出NLTK图形化下载窗口;

image.png

  1. 选择数据包:在窗口左侧切换到“All Packages”选项卡,向下滚动找到“punkt_tab”(注意区分旧版“punkt”),勾选其左侧的复选框;
  2. 选择下载目录(关键步骤):下载器顶部的“Download Directory”下拉框会显示默认目录,无需手动修改!
  3. 开始下载:点击窗口右下角的“Download”按钮,等待下载完成(数据包大小约几MB,速度较快),下载完成后关闭窗口即可。
  4. 然后可以在下载目录中找到一个文件

image.png

二:测试

1.在编辑工具里面写个这个东西 image.png

2.执行程序,会自动解析解压刚才下载下来的东西(通过NLTK图形化下载器下载下来的是一个压缩包)

1.png

3.最后写一段代码试一试:

这就成功了!!! image.png