NLP【1】NLP入门知识笔记

1、维基百科定义

自然语言处理(英语:Natural Language Processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。

自然语言认知和理解是让电脑把输入的语言变成有意思的符号和关系,然后根据目的再处理。自然语言生成系统则是把计算机数据转化为自然语言。

注:NLP有多个应用方向,详见本链接下的【主要范畴】。

关键词:语料库

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记。

关于语料库的三点基本认识:
①语料库中存放的是在语言的实际使用中真实出现过的语言材料;
②语料库是以电子计算机为载体承载语言知识的基础资源;
③真实语料需要经过加工(分析和处理),才能成为有用的资源。

2、简要介绍

// 本节参考链接:https://research.sinica.edu.tw/nlp-natural-language-processing-chinese-knowledge-information/

2.1 如何教電腦學會一種語言?

若要讓電腦理解人類的語言,以中文來說,分成兩步驟:第一步是斷詞、理解詞;第二步則是分析句子,包含語法及語義的自動解析

自然語言處理透過這兩個步驟,將複雜的語言轉化為電腦容易處理、計算的形式。早期是人工訂定規則,現在則是讓機器自己學習。

早期的方式是基於一套詞彙資料庫,用程式語言寫好人工訂定的規則,讓電腦依指令做出反應。但這種人工方式不可能包含所有語言的歧異性,例如,當同樣的詞在不同上下文產生不同意思,就會和原本的人工規則相互牴觸。1980 年代末期,自然語言處理引進機器學習 (Machine Learning) 的演算法,不再用程式語言命令電腦所有規則,而是建立演算法模型,讓電腦學會從訓練的資料中,尋找資料所含的特定模式和趨勢。中研院的「中文詞知識庫小組」團隊——就是利用機器學習的演算法,讓電腦學會從訓練的資料中,自動歸納出語言的特性

2.2 訓練電腦處理自然語言,需要什麼樣的資料?

首先,語言學家為九萬多個中文詞彙定義了完整的語法、以及語義表達方式,並且也標明詞彙之間的關係,例如:「蝴蝶」和「昆蟲」具備「前者是後者的一種」這樣的詞彙關係;「醫生」和「病人」具備「前者醫治後者」這樣的詞彙關係。這樣的表達構建了中文的知識圖譜,我們稱為「廣義知網」。

詞彙的語法、語義定義完畢後,接下來我們就依這些規則,大量分析文章中的每個句子、每個詞彙的語法和語義,並將分析的結果記錄下來 ,這就是「語料標注」的工作這些標注的語料,提供給電腦系統進行機器學習,讓電腦學會自動歸納、找出語言的語法以及語義

授人以鱼不如授人以渔——

只是我們大多數情況下,不會直接教電腦學會語言學上的規則,給它一條魚,不如給它一支釣竿。我們是給電腦看語言學家分析完成的大量結果,由電腦利用機器學習而自動歸納得到 「規則」, 並以參數的方式(請別擔心,一定是人們看得懂的形態),儲存在資訊學家所設計的模型當中。這種電腦自動學出來的模型,能夠很好地解決語言歧異性,也不會有人工寫死規則的問題

2.3 電腦可以認識所有「詞」嗎?

語言的詞彙組合無窮無盡,不可能將所有詞都收進資料庫中訓練電腦。當電腦面對與時俱進的新詞,例如「郭書瑤」、「班奈狄克·康柏拜區」、「漫撕男」、「非典」,電腦就無法辨識、理解這個詞。

通常未知詞可分為幾種類型:可能是人名、可能是複合詞、或可能是專有名詞。

2.4 NLP有什么用?

在这里插入图片描述

3、NLP的技术知识点

3.1 技术框架

在这里插入图片描述

3.2 中文NLP的基本过程

// 该部分参考链接:https://blog.csdn.net/valada/article/details/80892583

  1. 获取语料
    国内外标准开放数据集,如:人民日报语料。
    也可以选择通过爬虫自己去抓取一些数据。
  2. 语料预处理
    在一个完整的中文自然语言处理工程应用中,语料预处理大概会占到整个50%-70%的工作量,所以开发人员大部分时间就在进行语料预处理。下面的第四大节通过数据洗清、分词、词性标注、去停用词四个大的方面来完成语料的预处理工作
  3. 特征工程
    做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。显然,如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是数学中的向量。有两种常用的表示模型分别是——词袋模型和词向量。
    ————①——词袋模型(Bag of Word, BOW),即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。统计词频这只是最基本的方式,TF-IDF 是词袋模型的一个经典用法。
    ————②——词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。还有 Google 团队的 Word2Vec,其主要包含两个模型:跳字模型(Skip-Gram)和连续词袋模型(Continuous Bag of Words,简称 CBOW),以及两种高效训练的方法:负采样(Negative Sampling)和层序 Softmax(Hierarchical Softmax)。值得一提的是,Word2Vec 词向量可以较好地表达不同词之间的相似和类比关系。除此之外,还有一些词向量的表示方式,如 Doc2Vec、WordRank 和 FastText 等。
  4. 特征选择
    同数据挖掘一样,在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。文本特征一般都是词语,具有语义信息,使用特征选择能够找出一个特征子集,其仍然可以保留语义信息;但通过特征提取找到的特征子空间,将会丢失部分语义信息。所以特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。
  5. 模型训练
    在特征向量选择好之后,接下来要做的事情当然就是训练模型,对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型, 如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在后续的分类、聚类、神经序列、情感分析等示例中都会用到。
  6. 评价指标
    参看该链接
    包含召回率、精度、准确率、F1等。

4、语料预处理

4.1 语料清洗

数据清洗,顾名思义就是在语料中找到我们感兴趣的东西,把不感兴趣的、视为噪音的内容清洗删除,包括对于原始文本提取标题、摘要、正文等信息,对于爬取的网页内容,去除广告、标签、HTML、JS 等代码和注释等。常见的数据清洗方式有:人工去重、对齐、删除和标注等,或者规则提取内容、正则表达式匹配、根据词性和命名实体提取、编写脚本或者代码批处理等。

4.2 分词

中文语料数据为一批短文本或者长文本,比如:句子,文章摘要,段落或者整篇文章组成的一个集合。一般句子、段落之间的字、词语是连续的,有一定含义。而进行文本挖掘分析时,我们希望文本处理的最小单位粒度是词或者词语,所以这个时候就需要分词来将文本全部进行分词。

常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。

当前中文分词算法的主要难点有歧义识别和新词识别,比如:“羽毛球拍卖完了”,这个可以切分成“羽毛 球拍 卖 完 了”,也可切分成“羽毛球 拍卖 完 了”,如果不依赖上下文其他的句子,恐怕很难知道如何去理解。

4.3 词性标注

词性标注,就是给每个词或者词语打词类标签,如形容词、动词、名词等。这样做可以让文本在后面的处理中融入更多有用的语言信息。词性标注是一个经典的序列标注问题,不过对于有些中文自然语言处理来说,词性标注不是非必需的。比如,常见的文本分类就不用关心词性问题,但是类似情感分析、知识推理却是需要的,下图是常见的中文词性整理。
在这里插入图片描述
常见的词性标注方法可以分为基于规则和基于统计的方法。其中基于统计的方法,如基于最大熵的词性标注、基于统计最大概率输出词性和基于 HMM 的词性标注。

4.4 去停用词

停用词一般指对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词。所以在一般性的文本处理中,分词之后,接下来一步就是去停用词。但是对于中文来说,去停用词操作不是一成不变的,停用词词典是根据具体场景来决定的,比如在情感分析中,语气词、感叹号是应该保留的,因为他们对表示语气程度、感情色彩有一定的贡献和意义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值