【python】用nltk将文章分割为自然语句

NLTK简介

官方地址:https://www.nltk.org/
NLTK 是构建 Python 程序以处理人类语言数据的领先平台。它为超过 50 个语料库和词汇资源(如 WordNet)提供易于使用的界面,以及一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库,工业级 NLP 库的包装器

功能

用nltk将文章分割为自然语句
原文章放在1.txt中,处理后生成的成果放在2.txt
这两个文本需要在.py同路径下

代码

#coding=utf-8
import nltk
import re

# 自定义分句标记,包括英文和中文标点
def sentence_tokenize(text):
    sentence_enders = re.compile('[。\!\?;;\n\r]+|[.?!]+')
    sentence_list = sentence_enders.split(text)
    return sentence_list

# 下载模型文件
nltk.download('punkt')
print(nltk.data.path)
# 打开原始文本文件并读取其中的文本内容
with open('1.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 将文本按照两个连续换行符“\n\n”进行分段
paragraphs = text.split('\n\n')

# 将每个段落分句并写入新的文本文件中
with open('2.txt', 'w', encoding='utf-8') as f:
    for paragraph in paragraphs:
        # 如果段落不为空,则进行分句处理并写入新文件
        if paragraph.strip():
            sentences = sentence_tokenize(paragraph)
            for sentence in sentences:
                f.write(sentence.strip() + '\n')
        # 如果段落为空,则在新文件中写入一个空行
        else:
            f.write('\n')

注意事项

  • nltk.download(‘punkt’) 可能下载失败
  • nltk.download()函数用于下载NLTK库所需的数据集和模型文件。一旦这些文件被下载并安装到用户的计算机上,就可以在不再需要下载的情况下使用NLTK库。因此,一旦您下载了所需的数据集和模型文件,可以将下载后的文件删除,而不会影响到程序对NLTK库的使用。
    默认情况下,nltk.download()函数会将数据集和模型文件下载到您的电脑上的一个默认位置。如果您要删除这些文件,请确保知道它们的位置并可以删除它们。
    在Python中,使用nltk.data.path命令可以查找nltk.download()函数下载的数据集和模型文件的位置。该命令将返回一个包含字符串的列表,这些字符串是因使用NLTK库而添加到Python中的路径。
# 返回nltk数据集和模型文件所在的路径列表
print(nltk.data.path)
  • 使用PyInstaller将Python程序打包为可执行文件时,可以将需要的数据集和模型一起打包到生成的可执行文件中。
    运行PyInstaller命令使用–add-data选项将punkt模型文件添加到可执行文件中。例如:
pyinstaller myprogram.py --add-data="C:\Users\myusername\AppData\Roaming\nltk_data\tokenizers\punkt\*.pickle;nltk_data/tokenizers/punkt" --onefile

注意,此命令应当根据您计算机上的实际路径进行修改。这个例子中假设您在本地计算机上使用了默认路径安装了NLTK库,即C:\Users\myusername\AppData\Roaming\nltk_data。

这个命令将punkt模型文件作为一组数据添加到了可执行文件中。–add-data选项的格式是:

--add-data="<src>;<dst>"

其中是要添加的文件或文件夹的路径,是添加到可执行文件中的相应目录。在这个例子中,是*.pickle文件的路径,是nltk_data/tokenizers/punkt,表示它会将*.pickle文件放在生成的exe文件中的nltk_data/tokenizers/punkt目录下。

–onefile选项是将所有需要的文件打包到一个文件中,而不是生成一个文件夹。如果您不想将所有文件打包成一个文件,可以删除–onefile选项,并且在生成的文件夹中,将nltk_data/tokenizers/punkt/复制到与.exe文件相同的目录中。

经过上述步骤,当您运行打包好的可执行文件时,punkt模型文件将被自动提取到本地计算机的临时目录中,以供程序使用。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hmywillstronger

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

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

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

打赏作者

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

抵扣说明:

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

余额充值