--- tags: NLP --- # NLP Note :::info + 課程名稱:自然語言處理 Natural Language Processing + 授課老師:[name=林川傑 Chuan-Jie Lin] + 開課學期:1071 ::: [TOC] ## 1001 Lexicon 合法詞彙的集合 ## 1008 ### Morphology 英文變形 + Inflectional 名詞動詞的變形 Ex: dog, dogs, dog's Ex: go, went, gone + Derivational 衍生出來的詞 英文詞分成兩部份 Stem 枝幹 Affixes 修飾 Ex: international Stem: nation Affixes: inter- (prefix), -al (suffix) 有些語言也有 infix + Verb/Adj to Noun -ation computerize Linguistics 語言的 翻譯比較不需要還原 搜尋引擎會比較需要用到變形還原 Maximum Likelihood 就是直接算出來的統計機率方法 N-gram用來放在語音辨識,確認辨識出來的這句話合不合理常不常見 ## 1015 只要 a > b, 則 log(a) > log(b) bigram 可能無從判斷不存在的詞是否為真的不存在 → 會讓機率的估算變成 0 ∴ 改用 Smoothing Method ### Smoothing Method 使用一個近似 0 但不是 0 的數 機率模型有個很重要的原則:所有的事件總和要是 1 方法一、Discounting 把所有事件打個九折,剩下 10% 分給未出現的詞 方法二、Model Combination 結合 Unigram, Bigram 之類的G#XFKUUTG%TG$F ## 1022 + Article 冠詞 a, the + 量詞,英文就沒有 + Function Words + 通常沒什麼資訊 + 而且集合固定,沒什麼變 + Content Words + 有很多資訊 + 而且常常冒出新的詞 ## 1029 如何做詞性標記 + 詞性集 + 辭典紀錄每個詞有幾種詞性 Project念成專案跟投射時讀音不同 Google小姐能分的清楚 Rule Base的方法太耗人力、過時、錯誤率高 詞性標記的機率模型可能有0機率的出現 如果是0,可能真的是0 通常可以相信真的是0 就算要做Smoothing那個值也是超小 不需要太複雜的Smoothing Method 大部分的機率模型大多都是監督式學習 ### Context Sensitive Grammar a S b → a NP + VP b 因為S前面是a,後面是b,所以變成後面那樣 ### Context Free Grammar 不需要根據前後文就可以剖析成某種語法 S → NP + VP 大多用Syntax,也是語法的意思,Grammar比較像是文法 在做翻譯、問答,需要語法剖析才能知道例如主詞在哪 語法差異例如:A of B → B的A Ex: You can view these great rules as analysis and synthesis machine. 介系詞開頭的都是PP 動詞接NP是VP VP + PP > VP 最後NP + VP變成S ## 1105 NP 名詞詞組 VP 動詞詞組 ### Parsing (Ch 9 P.38) 有個假設,Right hand side只有兩個子節點 + Top-Down Parsing + 把 Left hand side 做一個分群 + Bottom-Up Parsing + 把 Right hand side 的第一個做分群 可能有 Ambiguity 1. PP Attachment Ex: I observed the boy with a telescope. + 望遠鏡到底是我的還是男孩的 2. 同義字 Ex: I walk to the bank. + 到底是走去銀行還是走去河岸 3. P and Q or R + P and (Q or R) + (P and Q) or R + 可能用語音的停頓點來表示 4. NN-Compound + 兒童 新聞主播 + 兒童新聞 主播 5. Movement Which flight do you want me to have the travel agent book? ## 1126 ### Feature (Ch 11) + Number, case, gender... | | 單數 Singular | 複數 Plural | | :-----------: | ------------ | ------------ | | First Person | I, me, mine | we, us, ours | | Second Person | you, yours | you, yours | | Third Person | he, she, its | they, them | + Feature 的使用 + 語法檢查 (Ex: Office Word) + 解決 PP-attachment + 有些語法有陰性、陽性和中性,展開就會有18種 ### Feature Matching + `S -> NP VP` + 確認數量與人稱要相等 + `<NP NUM> == <VP NUM>` + `<NP PERSON> == <VP PERSON>` + `NP -> dog` + `<NP NUM> = sing. // 單數` + `<NP PERSON> = 3 // 第三人稱` + `NP -> dogs` + `<NP NUM> = plur. // 複數` + `<NP PERSON> = 3 // 第三人稱` ### Representing Meaning (Ch 14) + 一開始從 Word 到 Syntax + 現在要來研究語意 Meaning + 人類透過一連串的聲音與一堆符號來進行溝通 + 我們用一種 Representation 來教電腦何謂語意 ### First Order Predicate Calculus (FOPC) + 雖然不是最完美的表達法 + 但其他表達法有更多嚴重的限制與問題 + Predicate 述語 + Ex: 我吃了一個紅蘋果 1. 動詞 + `吃(x, y): x 吃 y` 2. 形容詞 + `紅(x): x 是紅的` 3. 名詞 + `蘋果(x): x 是蘋果` 4. 介係詞 + `吃(我, e) & 蘋果(e) & 紅(e)` + Mary giving a list to John + Mary 是**語意**上的主詞 + John was given a list from Mary + John 是**語法**上的主詞,但 John 不是主動 + 所以乾脆寫成: ``` Giving(x) & Giver(Mary, x) & Given(y, x) & Givee(John, x) & Isa(y, List) ``` ### Semantic Analysis (Ch 15) + Mass-Noun 集合名詞 + Proper-Noun 專有名詞 ## 1203 ### Review Predicate + 述語式邏輯 + Giving(Mary, John, List) + Mary giving John a list + Predicate 其實很少使用 + 但 State of the Art 的 QA System 就有使用 ### Compositional Analysis + Serving-Server-Served + $Isa(e, Serving)\land Server(e, y)\land Served(e, x)$ + #### Ex: I told Harry to go to Maharani. + Telling-Teller-Tellee + Going-Goer + To + -ee 結尾是被...的人 1. $\lambda x\lambda y\exists e, telling(e) \land teller(e, x) \land tellee(e, y)$ 2. $\lambda t\lambda k\exists z, going(z)\land goer(z, k)$ 3. $\lambda a\lambda b, to(a, b)$ + 2 跟 3 可以直接 $\land$ 在一起 + 從語法樹的葉子不斷 Parse 上來就可以完成一個 Compositional Logic ### Logic Problem + 這世界上有甜西瓜 + $\exists x, 西瓜(x)\land甜(x)$ + 這世界上的西瓜都是甜的 + $\forall x, 西瓜(x)\to甜(x)$ + #### Who Love Who + $\exists x\exists y, love(x,y)$ + 至少有個 x 愛著 y + 也有可能是同一個人愛自己 + $\forall x\forall y, love(x,y)$ + 所有人都愛所有人 + 這世界充滿了愛 + $\exists x\forall y, love(x,y)$ + 有個人愛著所有人 + $\forall x\exists y, love(x,y)$ + 所有人都愛著一個人 + $\exists y\forall x, love(x, y)$ + 有個人被所有人愛 + 若集合裡面不只有人(可能有摩天輪) + $\exists x\forall y, People(x)\land People(y)\to love(x,y)$ + 出現 $\forall$ 就要用 $\to$ ### Non-Compositionality (Ch15 P36) + Idioms + Kick the bucket + Buy the farm + Bite the bullet + Run the show + Bury the hatchet + 以上都是講人去世了 + The Tip of the Iceberg + 冰山一角 + The tip of 1000-page iceberg. + 一千頁裡面的冰山一角 + 語意的轉換上會直接轉成它直接的意思 + Jokes + Irony + Sarcasm + Metaphor + Metonymy + Indirect Requests ### Information Extraction + 跟 IR 可能比較沒有關係 + 例如:要找一個跟恐怖攻擊有關的事情 + 會有發生時間、發生地點、攻擊者是誰等等 + 需要做一些日期時間的解析 + 例如:上星期三轉成實際的日期 + 有些地名等等 + 可以查表 + 但恐怖組織,可能需要專有名詞辨識 + 組織名:Bridgestone Sport Co. + 國家名:Taiwan, Japan + 時間:Friday, January 1990 + 數量:20 million new Taiwan dollars, 20,000 ## 1210 ### Lexical Semantics + 分成三個層面 + 整篇文章在講啥 + 每句話在講啥 + 每個詞在講啥 + 接下來探討詞的意思 + Paradigmatic + 兩個詞之間的關係 + 同義詞、反義詞、上下義詞 + Syntagmatic + 討論構詞的結構 + Ex: 好喝、難聽 + 在中文比較常討論 + What's a word + 詞的單位 Lexeme + 同一個 Entry + Lexicon + Lexeme 的集合 + 單純的詞列表 + 與 Dictionary 不一樣 ### Homonymy 同名詞 + 指兩個詞很像 + Phonological 同音詞 + Homophony + Threw/Through, Deer/Dear + 意義、異議、意譯 + 造成語音辨識上的困擾 + Orthographic 形近詞 + Homographic + Tear (眼淚或撕裂) + Minute (Time/Tiny) + 空(ㄎㄨㄥ/ㄎㄨㄥˋ) + 造成語音合成的問題 + Both + Bat (球棒/蝙蝠) + 讀音跟字形都一樣 ### Polysemy 多義詞 + Bank 河岸、銀行 + Interest 興趣、利息 + 如果有大量閱讀經驗,可以解決歧義問題 ### Synonyms 同義詞 + 同義詞其實沒有很同義 + 其實同義詞很少 + 開心 & 快樂 + 但快樂可以當抽象名詞 + 詞的發明就是為了分辨更細微的差異 + 如果真的同義就不會被發明出來 + Big/Large + Big sister (O) + Large sister (X) + Small/Tiny + Tiny 是 Small 的狹義詞 + 如果兩個詞是反義詞,則他們的下義詞都互相是反義詞 ### Hyponymy 上下義詞 + Hypernym 上義詞 + Hyponym 下義詞 + Ex: Dog is an animal + Hypernym: Animal + Hyponym: Dog + 工作身份則不是語意的問題 + 比較像 Attribute,可以變的 + 上義詞有的特性,下義詞都有 + 人會說話,所以男人女人都會說話 + WordNet 由普林斯頓大學認識科學實驗室建立的 | Category | Unique Strings | Synsets | Total Word-Sense Pairs | |:---------:|:--------------:|:-------:|:----------------------:| | Noun | 117097 | 81426 | 145104 | | Verb | 11488 | 13650 | 24890 | | Adjective | 22141 | 18877 | 31302 | | Adverb | 4601 | 3644 | 5720 | + Synset 是語意 + 動詞雖然只有 11488 個,但語意卻有 13650 個 + 名詞雖然有 117097 個,但語意只有 81426 個 + WordNet vs Word2Vec + WordNet 是專家系統 + Word2Vec 是機器學習 + 以白宮為例: + 語句中可能以白宮代表美國政權 + 但 WordNet 裡面就是定義成那棟建築 + 因為人類用詞不像專家那樣精準 + 所以情感上 Word2Vec 好像準一點 ## 1217 ### Wordnet Relation (Ch.16 P.21) + 上下義 + Hypernym + Hyponym + 團體:團體中的一員 + Has-Member + Member-Of + 部件:彼此之間的差異可能有點大 + Has-Part + Part-Of + 反義詞 + Antonym + 在 Wordnet 裡面只有 Holonym/Meronym + 包含 Group/Member & Whole/Part ### Inside Verbs + Agents of the actions + Takers, givers + Thematic Role (P.28) + Agent + Experiencer + Force + Theme + 做事情的時候就在的 + Result + 做完事情才會長出來的東西 + Content + Instrument + Beneficiary + Source + 例如起點 + Goal + 例如目的地 + Sally gave Harry a book. + $Giver(Sally)\land Givee(Harry)\land Given(book)$ + $Agent(Sally)\land Goal(Harry)\land Theme(book)$ + 語意角色在機器翻譯扮演重要的角色 ### Supervised & Unsupervised Learning + 訓練的過程有沒有用到標準答案 ### Bound on Performance + Upper Bound + 人類的 Performance + Lower Bound + 最簡單演算法的 Performance + Baseline + Random Method + Majority Method + 選最常出現的 + Other Model + 選別人家的系統 ### WSD Tags + Wordnet的分類太細了 + 光 bass 就有八種解釋 + 有時候可能沒必要分太細 + Collocational + 用前後幾個詞的搭配來判斷 + Ex: [guitar, NN, and, CJC, player, NN, stand, VVB] + Co-Occurrence + 只標示有沒有出現,看不出順序的 + Ex: [0, 0, 0, 1, 0, 0, 1, 0, ..., 0] ### Classifiers + Naive Bayes + 貝氏定理寫出來的機器學習分類器 + Decision Lists + 比較像規則式 + 機器學習寫出來的規則式 + Decision Trees + Neural Nets + 強調只餵 raw text + Support Vector Machines, SVM + Nearest Neighbor Methods ### Bootstrapping + 從小型語料庫選擇 100% 正確的規則出來 + 用這 100% 正確的規則去分析大型語料庫 + 因此獲得大量訓練資料 ### One Sense per Discourse + Discourse 篇章、文章 + 假設在一篇文章中同一個詞都是一樣的語意 ### One Sense per Collocation + 附近的詞加強本身的語意 ### Unsupervised Disambiguation + EM Algorithm + 先執行 E-Step 再執行 M-Step + 不斷執行這兩個步驟直到收斂為止 + 若要判斷不同的詞,就要分別訓練不同的模型 > Maximum Likelihood > 直接計算最大值 ## Pragmatic Level ## 1224 ### Discourse (Ch.18) + 有點像是一整個篇章主題的呈現 + 整篇文章的 Discourse 要一致 + Discourse coherent 主題連貫性 + Rhetorical Structure + 修辭的結構 + 討論兩句話是否有因果、舉例、假設等 + Nucleus/Satellite + 補充 Elaboration + Features + Exlicit markers: because, however, therefore, then + 可以窮舉這些連接詞 + 順序、時態、聲音 + RST Problem + 即便有訓練過的標記者,標記的一致性可能還是很低 + Discourse/Topic Structure + Referring Expressions + Co-refernence 同指涉 + 指涉字串:例如經常用代名詞來講話 + 需要解決同指涉現象就要找出候選詞 + Candidcate 候選詞 + 所有的代名詞 vs. Full NP + Definite vs. Indefinite NPs + Definite NPs + the ... + 專有名詞 + Indefinite NPs + a ... + Common vs. Proper Noun + Modified vs. Bare head NP + 代名詞解析分兩大派 + 人稱代名詞、非人 + More NP types + Inferrables + Ex: Sally bought a used car. **The tires** need to be replaced. + The tires 代表車子的部件 + Discontinuous Sets + Ex: John has known Bill for many years now. **They** often go hiking together. + They 指涉 John & Bill + Anaphora 往前指涉 + 最常見的指涉現象 + 前面提過的名詞,後面用代名詞表示 + Zero Anaphora 零指涉 + 指涉一個省略的代名詞 + Co-reference between named entities + 用 the White House 指涉 The US government + 借代修辭 + Co-reference between noun phrases + Ex: I stayed in Grand Hotel yesrerday. **The hotel** was ... + The hotel 指涉 Grand Hotel ### Dialogue (Ch.19) + [Reference](https://www.slideshare.net/tw_dsconf/ss-75294430) + Basic Model + NLU -> DM -> NLG -> Loop + Language Understanding (LU) + Dialogue Management (DM) + State Tracking + 這部份也要負責確認人沒有講清楚的部份 + Natural Language Generation (NLG) + Dialogue vs. Monologue + Dialogue + Turn-Talking + 確認誰要說話 + Grounding + 達成共識 + Detecting & Repairing Misunderstanding + Initiative & Confirmation Strategies + 人類常常在講一些不合語意的話 + 口語化、哈哈笑之類的 + Utterances + 講話被中斷 + 可以用語句間的暫停、語氣聲調來解決 + Turn Talking + 誰該講 + 何時該講 + 如何判斷講話的人 + 放棄這個回合 + Holding the floor + 可被中斷的 + 如何判斷我必須講話 + Simple Turn-Talking Rule + Ch.19 P.8 + Turn Taking Scripts + Greeting/Greeting + Question/Answer + Compliment/Downplayer + 稱讚/感謝之類的 + Request/Grant or Not + 明顯的沉默是不好的 + Initiative + System Initiative + 總是讓系統起頭 + 穩定 + 但是不友善 + Mixed Initiative + 比較多是這種 + User 講多少算多少 + 沒講到的系統再問 + User Initiative + Grounding + 參與者雙方是否 Establish common ground + 瞭解我們是否具有共同的背景知識 + NLG + Template-Based NLG + 透過設計 Pattern 來產生文句 + 也可以透過 ML 來學習句型 + Evaluation + 能不能完成任務 + 花費多少時間完成任務 + 花費多少成本建構系統 ## **Homework 4 WordNet** + Wu & Palmer Similarity + $Sim_{wp} = \frac{2N}{N1+N2}$ + 計算兩個詞之間的相似度最高的那個 + 可以使用 NLTK + 只要算名詞的語意就好 ## Final Project + 幫某個已知的系統加上某個 NLP 技術替它增加一個新的 Feature + 常見的 NLP 技術 + 斷詞、詞頻統計 + 抽取關鍵詞 + 翻譯 + 意見探勘 + 情緒偵測 + 光學文字辨識、字幕 + 語音辨識與合成 + 文句生成 + FAQ系統、問答系統、閱讀測驗 + 專有名詞辨識 + 資訊擷取 + 自動摘要 + 文章相似度比對、資訊含量的比對 + NE 關聯性、Ontology + 不同的專有名詞之間的關聯性為何 + 找出所有的關聯性之後就能建立一個 Ontology + 例如: + 學校有個學術單位叫電資學院 + 學校有個行政單位叫做教務處 + 文句蘊含 + 告訴我兩個句子 $t_1, t_2$ + $t_1$ 成立的時候 $t_2$ 成不成立 + Paraphrase 換句話說 + 美國反對北韓發展核武 + 白宮不支持金正恩擁有核武 + 報告五項 + 哪些已經有惹 + 哪些沒有der + 提供四個新功能 + 或者提供五個新功能 ## Additional + Linguistic + Lexical (Word) + Syntactic (Syntax) + Semantic (Semantics) + Pragmatic (Pragmatics 語用) + Ambiguity 歧義性 + Ex: 土地公有政策略有感覺 + Surface information + Character 字元 + Letter 字母 + Word 詞 + Matching + String Matching + Pattern Matching + Lexical Level (Word) + Terminology + Lexicon 辭典、詞條 + Word + Inflection(變形、單複數、三態變化、比較級) + Lemmatization:還原成原形 + Lemma:原形 + Stemming: + taking -> tak + takes -> tak + teeth -> teeth + earlier -> earli + Word segmentation 斷詞 + Morphological analysis(還原日文動詞變化) + Tokenization + Token, Term, Word, String + Syntactic Level (Syntax) + Part-of-Speech 詞性標記 + POS Tagger + Phrase 詞組、Sentence 句子 + Syntax 語法、Grammar 文法 + Syntactic Label 語法角色(主詞、受詞) + Parsing 語法剖析 + Parsing Tree, Syntax Tree 語法樹 + Structural + Bracket Tree + Head 中心語 如果是人名就取姓 + Modifier 修飾語 + Dependency Tree 語法相依樹 + Dependency Relation + Semantic Level + Resource + WordNet + 中文 WordNet + 同義詞詞林(擴展版) + 廣義知網 E-Hownet + Synonyms 同義詞 + Hyponym 下義詞、狹義詞 + Hypernym 上義詞、廣義詞 + Progmatic Level + Context 上下文 + Contextual Information + Content 內容,主角的 + Ellipsis 省略現象 + Co-reference 同指涉 + Anaphora 代名詞指涉 + Experiment & Evaluation + Training + Tuning + Testing + Dataset + Machine Learning + Classifier 分類器 + Features 特徵 + Object + Classes + N-Fold Cross-Validation + Evaluate System Performance + Accuracy + Precision + Recall + F-Measure + Utterance 對話中的句子,不一定是完整或者語法完備的句子