快捷搜索:

怎么使用Python编写可以从原始文本提取信息的程序

【导读】我们从日常每天都会用到的引荐 体系 到现在研讨 炽热 的开放性谈天 、对话机器人,越来越多的产品与应用的背后都需要天然 言语 处理(NLP)和常识 图谱的技能 。也有越来越多的学者与工作人员投身于 NLP 领域的研讨 。为什么要研讨 NLP呢?假如 核算 机想要更好的了解 人类的言语 ,具有 更好的人机交互体验,都离不开 NLP。那么,核算 机究竟 是怎么 了解 人类言语 的?接下来让我们跟着作者 Adam Geitgey ,和他一同 体会天然 言语 处理技能 里那些有意思的事情。

核算 机十分 拿手 处理像电子表格、数据库这样的结构化数据。但是 ,人与人之间是用言语 来交流的,而不是用表格。这对核算 机来说就很倒霉了。

怎么使用Python编写可以从原始文本提取信息的程序

然而不幸的是,我们其实不 是日子 在所罕见据都是结构化的前史 交替版本中

这个世界上的许多信息都对错 结构化的,如英语,或者其别人 类言语 写成的原文。那么,怎么 让核算 机了解 这种非结构化文本并从中提取数据呢?

怎么使用Python编写可以从原始文本提取信息的程序

天然 言语 处理(Natural Language Processing,NLP)是人工智能的子领域之一,其重点是使核算 机可以 了解 和处理人类言语 。在本文中,我们将知晓NLP是怎么 工作的,并学习怎么 使用Python编写可以 从原始文本提取信息的程序。(注:作者在文中选择的言语 对象是英语)

核算 机可以 了解 言语 吗?

自从核算 机问世以来,为了可以 开发出可以了解 言语 的程序,程序员们一直在努力。为什么一定要这么做呢?理由很简略 :人类运用言语 现已 有千年的前史 ,假如 核算 机可以 读懂这些,对人们将会十分 有协助 。

核算 机虽然还不能像人类那样真正地舆 解言语 ,但是 它们现在现已 可以做很多事情了。在某些领域中,可以用NLP来做的那些事情,现已 可以 让人感到很神奇了。假如 将NLP技能 应用到你自己的项目,也答应 以节省很多时间。

好音讯 是,NLP的最近进展可以通过开源Python库(如spaCy、textcy 和 neuralcoref)轻松拜访 。只需简略 几行Python代码就能够 完事儿,这一点就很让人惊叹。

难点:从文本中提取意义

阅读和了解 英语的过程是十分 凌乱的,尤其是考虑到是否有遵循逻辑和一致的规则。例如,下面这个新闻标题是什么意思?

“Environmental regulators grill business owner over illegal coal fires.”

这新闻标题,究竟想表达什么意思呢?监管机构是否就不合法 燃煤的问题对企业主进行了质询?仍是 监管者把不合法 燃煤的企业主拿来烧烤了?你看,假如 用核算 机来解析英语的话,事情就会变得异常凌乱。

在机器学习中,做任何一件凌乱的事情通常意味着需要构建一个工作流。这个主见 就是将你的问题分解成很小的部分,然后使用机器学习来分别解决每一个部分。然后,将几个彼此 作用的机器学习模型链接在一同 ,你就得以可以 完成十分 凌乱的事情。

这就是我们将用在NLP的策略。我们将把了解 英语的过程分解成小块,看看每一个 部分是怎么 工作的。

一步一步构建NLP工作流

我们来看一下取自维基百科上的一段文字:

London is the capital and most populous city of England and the United Kingdom. Standing on the River Thames in the south east of the island of Great Britain, London has been a major settlement for two millennia. It was founded by the Romans, who named it Londinium.

(来历 维基百科词条 London)

这一段包括 了几个有用的事实。假如 核算 机可以 读懂这段文字,并了解 London(伦敦)是一座城市,位于England(英格兰),由Romans(罗马人)建立的当地 ,那就太好了。但是 要完成 这一方针 ,就有必要 教管帐 算机学习书面言语 的最底子 的概念,然后再继续行进 。

▌第一步:句子切分(Sentence Segmentation)

工作流的第一步,是将文本切分红 单独的句子。我们得到的是:

1.“London is the capital and most populous city of England and the United Kingdom.”

2.“Standing on the River Thames in the south east of the island of Great Britain, London has been a major settlement for two millennia.”

3.“It was founded by the Romans, who named it Londinium.”

我们可以假设,英语中每一个 句子都表达了一种独立的意思或者主见 。编写程序来了解 单个句子,可比了解 整个段落要容易多了。

为句子切分模型编码就像你看到标点符号时对句子进行断句一样,都不是难事。但是 ,现代的NLP工作流通常会使用更为凌乱的技能 ,就算文档格局 不是很洁净 利落,也能正常工作。

▌第二步:单词标记(Word Tokenization)

现在我们现已 将文本切分红 了句子,这样就能够 做到一次处理一个句子。就从这段文本的第一条句子开始吧:

“London is the capital and most populous city of England and the United Kingdom.”

NLP工作流中的下一步就是将这个句子切分红 单独的单词或标记。这就是所谓的“标记”(Tokenization)。以下是单词标记的成绩:

您可能还会对下面的文章感兴趣: