---
title: 'NLP技術之概論'
tags: NLP
---
NLP技術之概論
===
## Table of Contents
[TOC]
## 學習目標
* 如何分析自然語言?
---
計算語言之父 (Noam Chomsky)
---
* 1957年的劃時代巨著:[Syntactic structures (句法結構)](https://scholar.google.com/citations?user=rbgNVw0AAAAJ&hl=en#d=gs_md_cita-d&u=%2Fcitations%3Fview_op%3Dview_citation%26hl%3Den%26user%3DrbgNVw0AAAAJ%26citation_for_view%3DrbgNVw0AAAAJ%3A9yKSN-GCB0IC%26tzom%3D-480)
1. A language to be a set (finite or infinite) of sentences, ==each finite in length== and constructed out of a finite set of elements.
> 語言是句子的集合(有限或無限),==每個句子的長度都是有限的==,而且從有限的元素組合。
* "有限的元素組合",代表可以完成並理解句子處理的整個步驟。
2. The structure of language is ==biologically determined==.
> 語言結構是被生理結構所確定的。
* 雖然世界上的語言有數千種,然其背後的結構是相同或相似的。
* 因為其背後的結構相似,故在NLP上不論是對何種語系其處理方法也應該是非常相似的。
3. That humans are born with an innate linguistic ability that constitutes a ==Universal Grammar==.
> 人類生來就有天生的語言能力,這個能力包含了一種==通用語法==。
* 通用語法 = 語言結構(語法)
* 不管何種語言,其背後的結構相似,處理方法也類似。
NLP的基本概念
---
例句:
NLP步驟:
1. 詞彙分析 Lexical analysis (Part-of Speech Tagging 詞性標註)
* 需要知道`This` `is` `the` `best` `thing` `happened` `in` `my` `life`分別是什麼東西?作為何種功用?~~意義~~
* POS Tagging (詞性標註)

2. 句法分析 Syntactic analysis (Parsing)
* Syntactic analysis = Noam Chomsky 所提出的 ==Syntactic structures (句法結構)==
* Universal Grammar
* 句子被拆解,且可以組合成一棵樹。

* 依據不同詞性,先組合成名詞片語、副詞片語...群組。
* 切成`token`小單位,再分析(演算法:divide and conquer)

* Parsing -> 用來理解是否輸入字串是否可以透過文法產生
* 透過`Universal Grammar(文法、文法器)`產生跟`輸入字串`幾乎==相等的東西==。
* 概念:==句子== 透過 ==文法的切法(語法結構)== 來表達。
* __文法器 = 解碼器 = 編碼器__ 的`產出`與`輸入`相等
* Parsing並非NLP裡專屬的概念
* 源自:Computer Science裡的編譯器(compiler)
* 把人所編的程式語言,轉成機器所能理解的機器語言。
:::info
### Parsing 範例(四則運算編譯器)
* 演算法:各個擊破法(divide and conquer)
* 文法:
1. `句子` E
E :: = ==E op E== | ==- E== | ==(E)== | ==id==
* 句子可以一直被拆解成更小的單位
* 最終拆解成`最小單位`id
2. `運算子` op
op :: = ==+== | ==-== | ==*== | ==/==
* 例句:`a * -( b + c )`

:::
3. 語意分析 Semantic Analysis
* 利用`Syntactic analysis (句法分析)`的小片段來理解句子的意思
* 從語意分析資料庫裡得知Rule
* 例如:(Event) + best thing + happened -> 理解成發生xxx事

4. 推理 Inference
* 利用語意分析的Rule來做推理

NLP to NLU(Natural Language Understanding)
---
* NLP(處理) 不等於 NLU(理解能力)
* [NLU vs. NLP vs. ASR](https://nlp.stanford.edu/~wcmac/papers/20140716-UNLU.pdf)

Challenges
---
* 做完NLP後,不代表"已經能夠完全了解"別人的自然語言在講什麼。不一定!
1. 斷詞錯誤
* 中/日文,容易發生
* 例句:`下雨天留客天留我不留`
```gherkin=
1. 下雨天"留"客 天"留"我不"留"
v. v. v.
2. 下雨天 "留"客天 "留"我"不" "留" => 留
adj. v. 語助詞 v.
3. 下雨天 "留"客天 "留"我"不""留" => 不留
adj.
```
* 1 & 2 詞彙分析 Lexical analysis
* `詞性標註`不同,則斷詞不同
* 2 & 3 句法分析 Syntactic analysis
2. 推理錯誤
* 與文化背景有關
* 例句:
1. `玻璃杯碎了一地` -> 玻璃杯不能用了
2. `專家眼鏡碎滿地` -> 專家眼鏡不能用了?
3. 語言的演化
* 電腦可能會斷詞錯誤
* 例句:
1. 安史之亂(唐)
2. 安屎之亂(2018)
---
* ##### tags: `NLP技術之概論`
* [現代語言學與認知科學之父](http://webarchive.ncl.edu.tw/archive/disk36/28/30/49/76/20/201112073016/20160512/web/case.ntu/sts/index53f0.html?p=1804)
* [Noam Chomsky on Language Aquisition](https://www.youtube.com/watch?v=7Cgpfw4z8cw)