本书“ Python中的应用文本数据分析”

图片 文本分析技术在机器学习的影响下正在迅速变化。 来自理论科学研究的神经网络已进入现实生活,并且文本分析已积极地集成到软件解决方案中。 神经网络能够解决自然语言处理中最复杂的任务,没有人会对机器翻译,与在线商店中的机器人进行“对话”,重新措辞,回答问题以及保持对话感到惊讶。 为什么Siri,Alexa和Alice不想了解我们,Google找不到我们想要的东西,而机器翻译却把我们从中文到阿尔巴尼亚语的“翻译困难”的例子逗了我们? 答案在于细节-理论上正确运行的算法,但在实践中很难实现。 了解如何使用机器学习技术来使用Python功能和库在现实生活中分析文本。 从模型搜索和数据预处理开始,您将继续进行文本分类和聚类的方法,然后进行视觉解释,图形分析,并在熟悉缩放技术之后,学习使用深度学习来分析文本。


本书描述了什么?


本书讨论了使用机器学习方法通​​过刚刚列出的Python库分析文本。 该书的应用性质表明,我们不关注学术语言学或统计模型,而是关注应用程序中文本培训模型的有效部署。

我们提出的文本分析模型与机器学习的过程直接相关-搜索由特征,算法和超参数组成的模型,该模型将在训练数据上提供最佳结果以评估未知数据。 此过程从创建训练数据集开始,该训练数据集在文本分析领域称为语料库。 然后,我们研究了提取属性和进行预处理以表示机器学习方法可以理解的数字数据形式表示文本的方法。 此外,在熟悉一些基础知识之后,我们将继续研究文本的分类和聚类方法,其故事完成了本书的第一章。

在随后的章节中,重点是扩展具有更多属性集的模型并创建文本分析应用程序。 首先,我们将研究如何以符号的形式呈现和实现上下文,然后继续进行视觉解释以控制模型选择的过程。 然后,我们将研究如何使用图形分析技术来分析从文本中提取的复杂关系。 之后,我们将注意力转向交互式代理,并加深了对文本的句法和语义分析的理解。 总之,这本书将提供有关使用Spark在多处理器系统中进行文本分析的缩放技术的实用讨论,最后,我们将考虑文本分析的下一阶段:深度学习。

这本书是给谁的?


本书是为那些对在其软件产品中使用自然语言处理和机器学习方法感兴趣的Python程序员编写的。 我们不假定读者具有特殊的学术或数学知识,而是专注于工具和技术,而不是冗长的解释。 首先,本书讨论了英语文本的分析,因此读者至少需要语法实体的基本知识,例如名词,动词,副词和形容词以及它们之间的关系。 没有机器学习和语言学经验,但拥有Python编程技能的读者,不会对学习我们将要介绍的概念感到迷惑。

摘录。 从文本中提取图形


从文本中提取图形是一项艰巨的任务。 它的解决方案通常取决于主题领域,通常来说,在非结构化或半结构化数据中对结构化元素的搜索是由上下文相关的分析问题决定的。

我们建议通过组织一个简单的图形分析过程将该任务分解为较小的步骤,如图2所示。 9.3。

图片

在此过程中,我们首先根据任务描述确定实体及其之间的关系。 此外,在此方案的基础上,我们确定使用元数据,语料库中的文档以及文档中的短语或标记从语料库中选择图的方法,以提取数据及其之间的关系。 选择图形的技术是一个循环过程,可以应用于身体,生成图形并将该图形保存到磁盘或内存中以进行进一步的分析处理。

在分析阶段,对提取的图形执行计算,例如,聚类,结构分析,过滤或评估,并创建一个新的图形,供应用程序使用。 根据分析阶段的结果,我们可以返回到循环的开始,完善方法和方案,提取或折叠节点或边的组,以尝试获得更准确的结果。

创建社交图


考虑一下我们的新闻报道主体以及为文本中不同实体之间的关系建模的任务。 如果我们考虑不同新闻社之间报道范围差异的问题,则可以根据代表出版物名称,作者名称和信息来源的元素来构建图表。 而且,如果目标是在许多文章中结合对一个实体的引用,除了人口统计细节之外,我们的网络还可以确定申诉的形式(尊敬的和其他的)。 我们感兴趣的实体可以在文档本身的结构中,也可以直接包含在文本中。

假设我们的目标是找出我们文档中彼此相关的人,地点和其他任何事物。 换句话说,我们需要通过执行一系列转换来构建社交网络,如图2所示。 9.4。 我们使用在第7章中创建的EntityExtractor类开始构建图。然后添加转换器,其中一个转换器搜索对相关实体,第二个转换器将这些对转换为图。

图片

搜索实体对

下一步是创建EntityPairs类,该类以实体列表的形式接收文档(由EntityExtractor类从第7章创建)。 此类应作为Scikit-Learn的Pipeline管道中的转换器,并因此继承BaseEstimator和TransformerMixin类,如第4章中所述。假定同一文档中的实体彼此无条件连接,因此我们使用itertools函数添加对方法.permutations在一个文档中创建所有可能的实体对。 我们的transform方法将为主体中的每个文档调用对:

import itertools from sklearn.base import BaseEstimator, TransformerMixin class EntityPairs(BaseEstimator, TransformerMixin): def __init__(self): super(EntityPairs, self).__init__() def pairs(self, document): return list(itertools.permutations(set(document), 2)) def fit(self, documents, labels = None): return self def transform(self, documents): return [self.pairs(document) for document in documents] 

现在,您可以从文档中顺序提取实体并进行配对。 但是我们尚不能将频繁出现的实体对与仅出现一次的实体对区分开。 我们必须以某种方式对每对实体之间的关系权重进行编码,这将在下一节中讨论。

属性图


图的数学模型仅定义节点和边的集合,并且可以表示为邻接矩阵,可以在各种计算中使用。 但是它不支持建立强度或关系类型建模的机制。 两个实体仅出现在一个文档中还是出现在多个文档中? 他们在特定类型的文章中会面吗? 为了支持这种推理,我们需要某种方式在图的节点和边缘中保存有意义的属性。

属性图模型使您可以在图中嵌入更多信息,从而扩展我们的功能。 在属性图中,节点是具有入站和出站边的对象,并且通常包含类型字段,类似于关系数据库中的表。 肋是定义起点和终点的对象; 这些对象通常包含一个标识连接类型的标签字段和一个指定连接强度的权重字段。 使用图进行文本分析时,我们经常使用名词作为结点,并使用动词作为边。 在进行建模步骤之后,这将使我们能够描述节点的类型,链接标签以及所提出的图形结构。

关于作者


本杰明·本福特(Benjamin Bengfort)是位于华盛顿特区的数据科学专家,他完全无视政治(哥伦比亚特区的普遍情况),并且更喜欢技术。 他目前在马里兰大学攻读博士学位,研究机器学习和分布式计算。 他的实验室里有机器人(尽管这不是他最喜欢的领域),但令他非常恼火的是,他的助手们不断为这些机器人配备刀具和工具,目的可能是赢得一场烹饪比赛。 本杰明看着机器人试图切碎番茄,更喜欢自己动手做厨房,在那里他做饭法国和夏威夷菜,以及各种烧烤。 本杰明是专业教育程序员,职业数据研究员,经常撰写涵盖广泛主题的文章,从自然语言处理到Python中的数据分析以及Hadoop和Spark在分析中的使用。

Rebecca Bilbro博士-数据科学专家,Python程序员,老师,讲师和文章作者; 住在华盛顿特区。 它专门研究机器学习结果的视觉评估:从特征分析到模型选择和超参数设置。 他从事自然语言处理,建立语义网络,解析实体以及处理具有大量维度的信息领域的研究。 作为开源软件用户和开发人员社区的积极参与者,丽贝卡很高兴与其他开发人员合作进行诸如Yellowbrick(旨在预测黑匣子建模的Python软件包)等项目。 在业余时间,他经常与家人一起骑自行车或练习夏威夷四弦琴。 她获得了伊利诺伊大学香槟分校的博士学位,在那里她研究了实用的交流和可视化技术。

»这本书的更多信息可以在出版商的网站上找到
» 目录
» 摘录

小贩优惠券20%优惠-Python

支付纸质版本的书后,将通过电子邮件发送该书的电子版本。

PS:这本书的成本的7%将用于新计算机书籍的翻译,移交给印刷厂的书籍清单在此处

Source: https://habr.com/ru/post/zh-CN444384/


All Articles