Python用于NLP :处理文本和PDF文件

提示:代码图片可以全屏查看,双指操作也可以放大缩小。

这是关于我的自然语言处理Python(NLP)系列文章的第一篇。在本文中,我们将从面向NLP的Python基础知识开始。我们将看到如何使用Python来处理简单的文本文件和PDF文件。

使用文本文件

文本可能是您在NLP工作中遇到的最基本的文件类型。在本节中,我们将学习如何在Python中读取文本文件、创建文本文件以及将数据写入文本文件。

读取文本文件

使用以下文本创建一个文本文件,并使用“.”将其保存在本地目录中。txt “扩展名。

在我的例子中,我将名为“myfile.txt”的文件存储在我的D驱动器的根目录中。

阅读文件的所有内容。

现在让我们看看如何阅读文档的所有内容。第一步是指定文件的路径,如下所示:

要打开文件,可以使用Python内置的open函数。如果您执行了上面的代码并且没有看到错误,这意味着您的文件已经成功打开。确保将文件路径更改为保存文本文件的位置。

现在让我们看看myfile变量中存储了什么:

输出如下所示:

显示myfile变量是myfile.txt文件的容器,并以只读模式打开该文件。

如果指定了错误的文件路径,您可能会收到以下错误:

每当你得到Errno 2,可能有两个原因。您的文件不存在,或者您为open函数提供了错误的文件路径。

现在,让我们来阅读这个文件的内容。为此,您需要对myfile变量调用read函数,如下所示:

在输出中,您应该能够看到如下的文件文本:

现在,如果您再次尝试调用read,控制台上将不会显示任何内容:

这是因为一旦调用read方法,光标将移动到文本的末尾。因此,当您再次调用read时,将不会显示任何内容,因为没有更多文本要打印。

解决这个问题的一个方法是调用seek方法,并在调用read方法后使用0作为参数。

这将把光标移回到文本文件的开头。查看下面的代码,看看它是如何工作的:

在输出中,您将看到文本内容打印了两次。

一旦文件被处理,关闭文件以便其他应用程序可以访问它是非常重要的。为此,您需要调用close方法。

逐行读取文件

我们也可以逐行读取文件的内容,而不是一次读取文件的所有内容。为此,我们需要执行readlines方法,该方法可以将文本文件中的每一行作为列表项返回。

在输出中,您会看到文本文件中的每一行都变成了一个列表项:

在大多数情况下,这将使文本更容易相处。例如,我们现在可以轻松地遍历每一行并打印该行中的第一个单词。

输出如下所示:

写文本文件

要写文本文件,打开文件时只需将打开模式设置为W或W即可。前者以写模式打开文件,而后者以读写模式打开文件。如果该文件不存在,将会创建它。值得一提的是,如果你在W或W模式下打开一个文件,文件的所有内容都会被删除,如下图所示:

在输出中,因为文件是以W模式打开的,所以屏幕上不会显示任何内容,并且文件的所有内容都已被删除。你可以附上文字来避免这种情况,下面我也会提到。

现在,让我们使用write方法在文件中写一些东西。

在上面的脚本中,我们将文本写入文件,然后调用seek方法将光标移回到开头,然后调用read方法读取文件的内容。在输出中,您将看到新添加的内容,如下所示:

通常,您不需要删除文件的现有内容。相反,您可能需要在文件末尾添加内容。

为此,您需要在模式A下打开文件,这可以添加和读取文件的内容。

再次创建一个包含以下内容的文件,并在驱动器D的根目录下保存为“myfile.txt ”:

执行以下脚本,使用添加模式打开文件:

在输出中,您将看到文件的内容。

接下来,让我们向文件中添加一些文本。

现在让我们再次读取文件的内容:

在输出中,您将看到文章末尾新添加的一行,如下所示:

最后,在进入下一节之前,让我们看看如何使用上下文管理器在执行所需的操作后自动关闭文件。

如上所示,使用with关键字,您不需要显式关闭文件。相反,上面的脚本打开文件,读取内容,然后自动关闭它。

使用PDF文件

除了文本文件,我们经常需要使用PDF文件来执行不同的自然语言处理任务。默认情况下,Python没有任何可用于读写PDF文件的内置库。但是我们可以使用PyPDF2库。

在使用PyPDF2库之前,我们需要安装它。如果您使用pip安装程序,您可以使用以下命令安装PyPDF2库:

或者,如果您在Anaconda环境中使用Python,您可以在conda命令提示符下执行以下命令:

注意:这里需要提到的是,PDF文档可以从不同的来源创建,如word文档、图像等。在本文中,我们将只处理用word文档创建的PDF文档。对于用图像创建的PDF文档,还有其他专门的库,我将在后面的文章中解释。目前我们只使用word文档生成的PDF文档。

作为可用的虚拟文档,可以从以下链接下载PDF:http://www . bav tailor . com/WP-content/uploads/2023/10/lorem-ipsum . PDF。

将下载的文档保存在驱动器d的根目录下。

阅读PDF文档

要阅读一个PDF文档,首先我们要像打开其他普通文档一样打开它。使用以下脚本:

值得一提的是,打开PDF文件时,模式必须设置为“读取二进制”的rb模式,因为大部分PDF文件都是二进制格式。

打开文件后,我们需要调用PyPDF2库中的PdfFileReader函数,如下所示:

现在使用pdf_document变量,我们可以执行各种阅读功能。例如,要获取PDF文档的总页数,我们可以使用以下numPages属性:

由于我们只有一页文档,在我们的PDF文档中,您将在结果中看到1。

最后,要从PDF文档中提取文本,首先需要使用getPage函数获取PDF文档的页面。

接下来,您可以调用extractText函数从特定页面中提取文本。

以下脚本从PDF的第一页提取文本,然后在控制台上打印。

结果,您应该在PDF的第一页看到文本。

编写PDF文档

由于字体和其他限制,Python字符串不能使用PyPDF2库直接写入PDF文档。但是,为了进行演示,我们将从PDF文档中读取内容,然后将内容写入我们将创建的另一个PDF文件中。

我们先来看看PDF文档第一页的内容。

上面的脚本读取我们的PDF文档的第一页。现在,我们可以使用以下脚本将第一页中的内容写入新的PDF文档:

上面的脚本创建了一个对象,可用于将内容写入PDF文件。首先,我们将向该对象添加一个页面,并将从另一个PDF中检索到的页面传递给它。

接下来,我们需要用wb(写二进制)权限打开一个新文件。如果文件不存在,用这种权限打开文件将创建一个新文件。

最后,我们需要调用PDF创作对象上的write方法,并将新创建的文件传递给它。

关闭mypdf和pdf_output_file文件,然后转到程序的工作目录。您应该在编辑器中看到一个新文件new_pdf_file.pdf。打开文件,您应该会看到它包含原始PDF第一页的内容。

让我们试着阅读新创建的PDF文档的内容:

现在让我们使用一个更大的PDF文件。从以下链接下载PDF文件:

http://ctan . math . Utah . edu/ctan/tex-archive/macros/latex/contrib/lip sum/lip sum . pdf

将其保存在本地目录中。下载文件的名称为“lipsum.pdf”。

执行以下脚本检查文件中的页数:

在输出中,您将看到打印出87页,因为这个PDF有87页。让我们在控制台上打印文档中的所有页面:

在输出中,您将看到PDF文档的所有页面都打印在屏幕上。

结论

读写文本文档是开发自然语言处理应用的基本步骤。在本文中,我们将解释如何使用Python来处理文本和PDF文件。我们看到了如何读写文本和PDF文件。在下一篇文章中,我们将开始讨论一些其他的NLP任务,例如使用spaCy库来词干化、减少词的形状以及标记词。

中文:3359 stack abuse . com/python-for-NLP-working-with-text-and-pdf-files/translator:狼行千里吃鸡

其他教程

2022年11月价格信息电费(纸厂废纸壳价格信息)

2023-1-14 7:37:20

其他教程

华为p40支持无线充电吗(ps5港服官网)

2023-1-14 7:39:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索