自然语言处理涉及的技术,自然语言处理的概念及技术

首页 > 科技 > 作者:YD1662024-05-08 17:54:37

自然语言处理涉及的技术,自然语言处理的概念及技术(1)

作者 | George Seif

译者 | 孙薇,责编 | 屠敏

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

现代公司要处理大量的数据。这些数据以不同形式出现,包括文档、电子表格、录音、电子邮件、JSON以及更多形式。这类数据最常用的记录方式之一就是通过文本,这类文本通常与我们日常所使用的自然语言十分相似。

自然语言处理涉及的技术,自然语言处理的概念及技术(2)

自然语言处理(NLP)是针对计算机编程的研究,探索处理和分析大量自然文本数据的方式。自然语言处理的知识对于数据科学家来说至关重要,因为文本是数据存储中极为易用和常用的介质。

面对针对文本数据执行分析和构建模型的任务时,我们必须清楚要如何执行基础的数据科学任务,包括清理、格式化、解析、分析、执行可视化和对文本数据建模。当数据还处于原始数字的构成形态时,除了这些任务的常规方法,还会需要一些额外的步骤。

本篇指南将对在数据科学中使用自然语言处理做基础性的介绍,包括处理文本数据时最常用的7种技术,如NLTK及Scikit Learn等。

(1) 标记化(Tokenization)

标记化指的是将文本切分为句子或单词,在此过程中,我们也会丢弃标点符号及多余的符号。

自然语言处理涉及的技术,自然语言处理的概念及技术(3)

这个步骤并非看起来那么简单。举个例子:在上图的实例中,“纽约(New York)”一词被拆成了两个标记,但纽约是个代名词,在我们的分析中可能会很重要,因此最好只保留一个标记。在这个步骤中要注意这一点。

标记化的好处在于,会将文本转化为更易于转成原始数字的格式,更合适实际处理。这也是文本数据分析显而易见的第一步。

import nltk
sentence = "My name is George and I love NLP"
tokens = nltk.word_tokenize(sentence)
print(tokens)

# Prints out ['My', 'name', 'is', 'George', 'and', 'I', 'love', 'NLP']

(2) 删除停止词(Stop Words Removal)

在标记化之后,下一步自然是删除停止词。这一步的目标与上一步类似,也是将文本数据转化为更容易处理的格式。这一步会删除英语中常见的介词,如“and”、“the”、“a”等。之后在分析数据时,我们就能消除干扰,专注于具有实际意义的单词了。

通过比对预定义列表中的单词来执行停止词的删除非常轻松。要注意的重要问题是:并没有普天皆适的停止词列表。因此这个列表一般是从零开始创建,并针对所要处理的应用执行了定制。

import nltk
from nltk.corpus import stopwords

sentence = "This is a sentence for removing stop words"
tokens = nltk.word_tokenize(sentence)

stop_words = stopwords.words('english')
filtered_tokens = [w for w in tokens if w not in stop_words]
print(filtered_tokens)

# Prints out ['This', 'sentence', 'removing', 'stop', 'words']

(3) 提取主干(Stemming)

清理文本数据的另一个技术就是提取主干。这种方法是将单词还原为词根形式,目的是将因上下文拼写略有不同,但含义相同的单词缩减为相同的标记来统一处理。例如:考虑在句子中使用单词“cook”的情况——写cook这个词是有很多方式的,具体要取决于上下文:

自然语言处理涉及的技术,自然语言处理的概念及技术(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.