怎样用Python统计原文句子总数?怎样解决NLTK调用缺少punkt文件的问题?
欢迎大家跟我一起学习基于Python的语言处理方法,我会不间断地提供Python处理中英文语言、翻译文本、语言学研究应用方面的理论、方法和代码。
如果你从来没有接触过Python,没关系,按照我之前的说明,把Anaconda安装好(学习安装,点击这里),然后打开JupyterNotebook,把我每次提供的代码复制、粘贴过去,尝试运行、尝试理解、尝试修改,逐渐就学会了!在任务中学习,事半功倍!
一、怎样用Python统计原文句子总数?
指导翻译硕士论文,学生需要统计原文总共有多少句,以便后续做译文错误分析时,可以算出句均错译率。人工数句子肯定是既费力,又容易出错的。还是用机器数数方便。以下奉上Python基于NLTK (Natural Language Toolkit)所作的句子统计方法。
首先,定义一下什么是句子。两个标准:1)NLTK的句子分割标准。目测可能是:首字母大写,结尾为句号、问号、叹号等句子结束符号的语言单位;2)除了NLTK的句子标准,我们根据需要把标题或未结句的换行(但有相对独立意义,如以冒号结尾的行,然后另起一段解释冒号行的内容)也视为句子。
接着,上Python代码(代码是在JupyterNotebook中写和运行的):
运行结果如下:

二、怎样解决NLTK调用时缺少punkt文件的问题?
刚开始运行以上代码时,程序报错:缺少NLTK的punkt文件,如下:

按报错中的说明,尝试解决问题失败,如下:

失败原因:使用nltk工具包时,需要的文件往往无法通过nltk.download('xxx')下载成功。
解决办法:我们可以从官网http://www.nltk.org/nltk_data/下载需要的文件。
打开网站 http://www.nltk.org/nltk_data/,找到punkt文件,点击download下载,如下:

下载成功后,在 C:\Users\xxx\AppData\Roaming 路径下创建新文件夹,命名为 nltk_data,在nltk_data下再创建新文件夹 tokenizers,将punkt.zip 解压到tokenizers 下。
AppData文件一般是隐藏的,要依次点击:C盘--用户--你电脑的个人用户名(每人各不相同,如我的用户名为lyu)--点击最上方的“查看”--勾选“隐藏的项目”,即可找到AppData文件夹,打开后可以看到Roaming文件夹(如果你的电脑系统老旧,可以自行百度学习“怎样找到电脑中的隐藏文件”),如图:

在Roaming下创建新文件夹nltk_data,在nltk_data下再创建新文件夹 tokenizers,将punkt.zip 解压到tokenizers 下,效果如下图:

然后,再次运行本文最开始提供的代码,顺利搞定!
(如果程序报错提示,没有NLTK包,可以使用pip install nltk命令安装即可)