NLP 基础知识
ñ 自然语言处理 (NLP) 是人工智能的一个子集,它处理计算机如何处理和理解自然语言或人类语言。它用于以语音或文本的形式处理人类语言,以便计算机可以使用它并对其进行分析以识别上下文和意图。它远非完美,在这个领域还有很多需要探索和改进的地方。然而,无论我们是否知道,它都被应用在我们的日常生活中。一些例子包括:
- 虚拟个人助理应用程序,例如 Siri、Alexa 和 OK Google
- 文字处理器,例如 Grammarly 和 Google Docs 语法检查
- 电子邮件过滤器可将垃圾邮件与重要电子邮件分开
- 谷歌翻译等翻译程序
- 用于多种应用的聊天机器人,例如自动化客户服务
这个怎么运作
对于人类来说,句子和段落很容易阅读,我们可以很快地从中提取意义。然而,对于计算机而言,人类语言的无数规则难以理解,使得从文本或语音中提取信息变得极其困难。
因此,计算机需要使用算法来 预处理数据 将其转化为易于理解的结构化形式,称为 语料库 .这包括使用诸如 标记化,去除停用词, 和 词形还原 .
这样做之后,可以使用不同形式的语法分析句子/文本的结构或句法。 解析 .这包括 词性 (POS) 标记 , 浅解析或分块 , **** 和 依赖解析。
最后,可以使用各种不同的方法来分析文本的含义。但是,本文将重点介绍 命名实体识别。
值得庆幸的是,您不需要从头开始执行所有这些操作。 NLTK 和 spaCy 都是 Python 的优秀 NLP 库,但我将在本文中使用 NLTK。
预处理数据
代币化
标记化是将文本分成定义的单元(例如句子或单词)的过程。也可以丢弃标点符号等字符。这是开始将数据结构化为可用形式的有用步骤。这方面的一个例子是:
这输出:
['自然','语言','处理','nlp','is','a','子集','of','人工','智能','which','交易',' with','how','computers','process','and','understand','natural','language','or','human','language','it','is' , 'used', 'to', 'processes', 'human', 'language', 'in', 'the', 'form', 'of', 'speech', 'or', 'text', '所以','那个','it','can','be','used','by','the','computer','and','analyzed','to','recognize' , 'context', 'and', 'intent', 'it', 'is', 'far', 'from', 'perfect', 'and', 'there', 'is', 'still', ' much', 'to', 'be', 'explored', 'and', 'improved', 'in', 'this', 'field']
如您所见,我以本文的第一句话为例。每个单独的单词都被逐条列出,所有字符都小写,标点符号被删除。
去除停用词
去除停用词是一种从某些文本中去除脂肪的方法。停用词是不会给句子增加太多意义的词(例如“the”、“and”、“to”)。没有要删除的停用词列表,但通常使用预定义的停用词列表或自定义列表。以下是 NLTK 停用词列表的示例:
{'我们自己','她的','之间','你自己','但是','再次','那里','关于','曾经','期间','出去','非常','拥有','与','他们','拥有','an','be','some','for','do','its','yours','such','into' , 'of', 'most', 'self', 'other', 'off', 'is', 's', 'am', 'or', 'who', 'as', 'from', '他”、“每个”、
这一步会减少无用的文本数量,我们只会关注句子的重要部分。使用之前的标记化文本,可以在此处看到一个示例:
这输出:
['自然','语言','处理','nlp','子集','人工','智能','交易','计算机','过程','理解','自然','语言','人类','语言','使用','过程','人类','语言','形式','语音','文本','使用','计算机','分析' , 'recognize', 'context', 'intent', 'far', 'perfect', 'still', 'much', 'explored', '改进', 'field']
如您所见,与初始文本相比,单词要少得多,因为从语料库中删除了诸如“is”和“and”之类的单词。
停用词的删除可能会带来问题,因为可以通过删除这些词来删除某些含义或上下文。因此,重要的是要注意选择要删除的单词。
词形还原
词形还原是将文本中的单词简化为由它们的词条或词根定义的项目的过程。例如,“frustrating”和“frustrated”的引理是“frustrate”。这种技术有助于将具有相似含义的相似词组织在一起,并进一步简化数据的内容。
但是,要做到这一点,需要指定被词形还原的词的词性以更好地进行词形还原。这将在稍后讨论。现在,这就是使用 POS 进行词形还原的样子:
导致:
['自然','语言','处理','nlp','子集','人工','智能','交易','计算机','过程','理解','自然','语言','人类','语言','使用','过程','人类','语言','形式','语音','文本','使用','计算机','分析' , 'recognize', 'context', 'intent', 'far', 'perfect', 'still', 'much', 'explore', '改进', 'field']
如您所见,复数词,例如“computers”变成了单数,而过去时的动词,例如“analyzed”、“explored”和“improved”,由于词形还原而变成了现在时。
解析
解析是将句子分成多个部分并理解它们的作用的过程。解析句子有许多不同的方法,包括词性 (POS) 标记、浅层解析或分块以及依赖解析。在所有这些方法中,算法用于识别文本元素并将其分离为这些单独的部分,并确定它们的含义。
词性标注
POS 标记将每个单词组织成它们的词性。以下是 NLTK 使用的一些重要 POS 标签的列表:
- 神经网络: 名词,单数
- 杰杰: 形容词
- VB: 动词,基本形式
- RB: 副词
- PRP: 人称代词
- 在: 介词/从属连词
这些类别可以进一步分为子类别。例如,JJ(形容词)可以分为JJR(比较形容词)和JJS(最高级形容词)。这一步使我们可以更有效地使用许多其他技术,例如词形还原。使用我们之前预处理的文本进行 POS 标记的示例:
这导致:
[('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('nlp', 'JJ'), ('subset', 'VBN') , ('人工', 'JJ'), ('智能', 'NN'), ('交易', 'NN'), ('计算机', 'NN'), ('进程', 'NN') , ('understand', 'JJ'), ('natural', 'JJ'), ('language', 'NN'), ('human', 'JJ'), ('language', 'NN') , ('use', 'NN'), ('process', 'NN'), ('human', 'JJ'), ('language', 'NN'), ('form', 'NN') , ('speech', 'NN'), ('text', 'NN'), ('use', 'NN'), ('computer', 'NN'), ('analyze', 'VBP') , ('recognize', 'VB'), ('context', 'JJ'), ('intent', 'NN'), ('far', 'RB'), ('perfect', 'JJ') , ('still', 'RB'), ('much', 'JJ'), ('explore', 'RBR'), ('improved', 'JJ'), ('field', 'NN') ]
浅解析
浅层解析类似于词性标注,但句子被分成短语的类别,例如名词短语,而不是词性。这样可以更好地理解句子结构。浅解析将导致文本被分成短语和词性,可以使用树形图进行可视化。
在这个例子中,我只使用给定的 POS 标签模式来解析和分类名词短语来识别它们。还有其他方法可以做到这一点,包括使用机器学习来识别不同类型的短语。
这是用于生成图表的代码:
依赖解析
依赖解析,顾名思义,就是确定句子中单词之间的关系和依赖关系。这可以帮助解码含义和上下文,并且在现实世界的应用程序中特别有用,因为即使语法不正确或词序错误,它也可以解码依赖关系。依赖关系也可以用解析树表示:
命名实体识别
命名实体识别在预处理后识别句子的重要部分,例如通过算法识别和分类人、位置、时间或组织等实体。这种技术对于大致了解文本的大致内容非常重要。
这个技巧可以看这里,这里我拉了最近的一篇文章的第一句 新闻文章 ,对其进行预处理和解析,并使用 NLTK 进行命名实体识别。
原句:
加拿大公共卫生署 (PHAC) 说 Brig.-Gen。 Krista Brodie 将接任负责监督 COVID-19 疫苗在加拿大的交付和分发的将军。
命名实体识别后的结果:
(S /DT (组织公共/NNP 卫生/NNP 机构/NNP) 的/IN (GPE 加拿大/NNP) (组织 PHAC/NNP) 说/VBZ 准将/NNP (人克里斯塔/NNP布罗迪/NNP) 将/MD 采取/VB 过/RP 作为/IN /DT 将军/JJ 输入/输入 电荷/NN 的/IN 监督/VBG /DT 交货/NN 和/抄送 分布/NN 的/IN COVID-19/NNP 疫苗/NNS 跨/IN (GPE 加拿大/NNP) )
如图所示,该算法能够将公共卫生机构和 PHAC 识别为一个组织,将 Krista Brodie 识别为一个人,并将加拿大识别为 GPE(国家、城市或州)。这提供了大量信息,可以极大地帮助算法理解此类文本的主要思想。
代码在这里:
这可能看起来很多,但这只是触及 NLP 的表面。一篇文章无法涵盖 NLP 领域的广博深度,但所展示的这些概念对于任何 NLP 程序来说都是最重要的一些。归根结底,需要将机器学习算法和人工智能模型应用于这些数据,以产生真正的意义,从而将其应用于现实生活中的产品和服务。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/37536/11361810
标签:NLP,解析,NN,基础知识,JJ,识别,文本,NNP From: https://www.cnblogs.com/amboke/p/16704295.html