本文整理自網絡,主要是對自然語言處理能發展和落地的方向進行總結,也算是對自然語言處理常見任務的總結。
NLP的四大任務如下:
- 序列標注任務
- 分類任務
- 句子關系判斷
- 生成式任務
1. 序列標注任務
序列標注(Sequence labeling)是我們在解決NLP問題時經常遇到的基本問題之一。在序列標注中,我們想對一個序列的每一個元素標注一個標簽。一般來說,一個序列指的是一個句子,而一個元素指的是句子中的一個詞。比如信息提取問題可以認為是一個序列標注問題,如提取出會議時間、地點等。
序列標注一般可以分為兩類:
- 原始標注(Raw labeling):每個元素都需要被標注為一個標簽。
- 聯合標注(Joint segmentation and labeling):所有的分段被標注為同樣的標簽。
命名實體識別(Named entity recognition, NER)是信息提取問題的一個子任務,需要將元素進行定位和分類,如人名、組織名、地點、時間、質量等。
舉個NER和聯合標注的例子。一個句子為:Yesterday , George Bush gave a speech. 其中包括一個命名實體:George Bush。我們希望將標簽“人名”標注到整個短語“George Bush”中,而不是將兩個詞分別標注。這就是聯合標注。
1.1 BIO標注
解決聯合標注問題最簡單的方法,就是將其轉化為原始標注問題。標準做法就是使用BIO標注。
BIO標注:將每個元素標注為“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段屬于X類型并且此元素在此片段的開頭,“I-X”表示此元素所在的片段屬于X類型并且此元素在此片段的中間位置,“O”表示不屬于任何類型。
比如,我們將 X 表示為名詞短語(Noun Phrase, NP),則BIO的三個標記為:
- B-NP:名詞短語的開頭;
- I-NP:名詞短語的中間;
- O:不是名詞短語;
因此可以將一段話劃分為如下結果:
我們可以進一步將BIO應用到NER中,來定義所有的命名實體(人名、組織名、地點、時間等),那么我們會有許多 B 和 I 的類別,如 B-PERS、I-PERS、B-ORG、I-ORG等。然后可以得到以下結果:
[圖片上傳失敗...(image-b1cfb3-1609330627120)]
1.2 序列標注常用模型
- Bi-LSTM
選擇雙向LSTM的原因是:當前詞的tag和前后文都有關。
1.3 序列標注具體任務
(1)分詞
- 輸入:word + tag(I:in word;E:end of word);
- 輸出:tag of word,標簽是E的后面加空格,就達到了分詞的目的;
(2)詞性標注(Part-of-Speech tagging ,POS tagging)
- 輸入:word + tag (詞性:動詞、名詞、形容詞等);
- 輸出:詞性;
- 模型:HMM也可以做
(3)命名實體標注(name entity recognition, NER)
- 輸入:word + tag(B: begin of entity,I : inside of entity,o: outside of entity);
- 輸出:實體標注;
(4)詞義角色標注 (semantic role labeling, SRL) :
- 輸入: word + 是不是謂語(B-Argo,I-Argo,BV );
- 輸出:語義角色;
2. 分類任務
2.1 分類的具體任務
(1)文本分類、情感分類
- 模型:LSTM,屬于 many- to - one 的問題,最后使用 Softmax輸出分類結果;
3. 句子關系判斷
3.1 具體任務
(1)句法分析、蘊含關系判斷(entailment)
- 模型:語法分析樹,LSTM 來對每個edges 算得分,選擇得分高的edges,限制是這些edges 必須組成一個樹;
- 模型:RNNGs 也可以做
4. 生成式任務
這類任務一般直接面向普通用戶,提供自然語言處理產品服務的系統級任務,會用到多個層面的自然語言處理技術。
4.1 具體任務
(1)機器翻譯(Machine Translation,MT)
Encoder-Decoder的最經典應用,事實上這一結構就是在機器翻譯領域最先提出的。
(2)文本摘要、總結(Text summarization/Simplication)
輸入是一段文本序列,輸出是這段文本序列的摘要序列。
(3)閱讀理解(Reading Comprehension)
將輸入的文章和問題分別編碼,再對其進行解碼得到問題的答案。
(4)語音識別
輸入是語音信號序列,輸出是文字序列。
(5)對話系統(Dialogue Systerm)
輸入的是一句話,輸出是對這句話的回答。
(6)問答系統(Question-Answering Systerm)
針對用戶提出的問題,系統給出相應的答案。
(7)自動文章分級(Automatic Essay Grading)
給定一篇文章,對文章的質量進行打分或分級。
NLP基本任務:
1. 詞法分析(Lexical Analysis):對自然語言進行詞匯層面的分析,是NLP基礎性工作
- 分詞(Word Segmentation/Tokenization):對沒有明顯邊界的文本進行切分,得到詞序列
- 新詞發現(New Words Identification):找出文本中具有新形勢、新意義或是新用法的詞
- 形態分析(Morphological Analysis):分析單詞的形態組成,包括詞干(Sterms)、詞根(Roots)、詞綴(Prefixes and Suffixes)等
- 詞性標注(Part-of-speech Tagging):確定文本中每個詞的詞性。詞性包括動詞(Verb)、名詞(Noun)、代詞(pronoun)等
- 拼寫校正(Spelling Correction):找出拼寫錯誤的詞并進行糾正
2. 句子分析(Sentence Analysis):對自然語言進行句子層面的分析,包括句法分析和其他句子級別的分析任務
- 組塊分析(Chunking):標出句子中的短語塊,例如名詞短語(NP),動詞短語(VP)等
- 超級標簽標注(Super Tagging):給每個句子中的每個詞標注上超級標簽,超級標簽是句法樹中與該詞相關的樹形結構
- 成分句法分析(Constituency Parsing):分析句子的成分,給出一棵樹由終結符和非終結符構成的句法樹
- 依存句法分析(Dependency Parsing):分析句子中詞與詞之間的依存關系,給一棵由詞語依存關系構成的依存句法樹
- 語言模型(Language Modeling):對給定的一個句子進行打分,該分數代表句子合理性(流暢度)的程度
- 語種識別(Language Identification):給定一段文本,確定該文本屬于哪個語種
- 句子邊界檢測(Sentence Boundary Detection):給沒有明顯句子邊界的文本加邊界
3. 語義分析(Semantic Analysis):對給定文本進行分析和理解,形成能勾夠表達語義的形式化表示或分布式表示
- 詞義消歧(Word Sense Disambiguation):對有歧義的詞,確定其準確的詞義
- 語義角色標注(Semantic Role Labeling):標注句子中的語義角色類標,語義角色,語義角色包括施事、受事、影響等
- 抽象語義表示分析(Abstract Meaning Representation Parsing):AMR是一種抽象語義表示形式,AMR parser把句子解析成AMR結構
- 一階謂詞邏輯演算(First Order Predicate Calculus):使用一階謂詞邏輯系統表達語義
- 框架語義分析(Frame Semantic Parsing):根據框架語義學的觀點,對句子進行語義分析
- 詞匯/句子/段落的向量化表示(Word/Sentence/Paragraph Vector):研究詞匯、句子、段落的向量化方法,向量的性質和應用
4. 信息抽?。↖nformation Extraction):從無結構文本中抽取結構化的信息
- 命名實體識別(Named Entity Recognition):從文本中識別出命名實體,實體一般包括人名、地名、機構名、時間、日期、貨幣、百分比等
- 實體消歧(Entity Disambiguation):確定實體指代的現實世界中的對象
- 術語抽取(Terminology/Giossary Extraction):從文本中確定術語
- 共指消解(Coreference Resolution):確定不同實體的等價描述,包括代詞消解和名詞消解
- 關系抽?。≧elationship Extraction):確定文本中兩個實體之間的關系類型
- 事件抽取(Event Extraction):從無結構的文本中抽取結構化事件
- 情感分析(Sentiment Analysis):對文本的主觀性情緒進行提取
- 意圖識別(Intent Detection):對話系統中的一個重要模塊,對用戶給定的對話內容進行分析,識別用戶意圖
- 槽位填充(Slot Filling):對話系統中的一個重要模塊,從對話內容中分析出于用戶意圖相關的有效信息
5. 頂層任務(High-level Tasks):直接面向普通用戶,提供自然語言處理產品服務的系統級任務,會用到多個層面的自然語言處理技術
- 機器翻譯(Machine Translation):通過計算機自動化的把一種語言翻譯成另外一種語言
- 文本摘要(Text summarization/Simplication):對較長文本進行內容梗概的提取
- 問答系統(Question-Answering Systerm):針對用戶提出的問題,系統給出相應的答案
- 對話系統(Dialogue Systerm):能夠與用戶進行聊天對話,從對話中捕獲用戶的意圖,并分析執行
- 閱讀理解(Reading Comprehension):機器閱讀完一篇文章后,給定一些文章相關問題,機器能夠回答
- 自動文章分級(Automatic Essay Grading):給定一篇文章,對文章的質量進行打分或分級
Reference:
【1】序列標注中的BIO標注介紹,地址:https://blog.csdn.net/HappyRocking/article/details/79716212
【2】http://nlpers.blogspot.com.au/2006/11/getting-started-in-sequence-labeling.html
【3】NLP 四大任務,地址:https://www.dazhuanlan.com/2019/08/21/5d5ca1e2826b9/
【4】NLP基本任務,地址:https://blog.csdn.net/lz_peter/article/details/81588430
【5】微信研究員解析深度學習在NLP中的發展和應用,地址:https://edu.csdn.net/course/play/8673
【6】從Word Embedding到Bert模型—自然語言處理中的預訓練技術發展史 - 張俊林的文章 - 知乎 https://zhuanlan.zhihu.com/p/49271699