# 論文筆記--Sentiment Analysis Is a Big Suitcase
### **NLP前處理可以簡單劃分為三層:**
## **Syntactics Layer (句法層)**
用意在對文本進行前處理,以便應對非正式語法,並使得句子結構明確
- **Microtext Normalization (微文本正規化)**
- 包含縮寫、首字母縮寫字、及表情符號等等,統稱為"microtext"
- 對於使用正規語言的NLP來說需要先將這類文字轉為一般用語
- 通常這些詞語是依照縮寫或者發音關係而產生
- 越來越多人使用[非監督式學習](https://www.aclweb.org/anthology/W16-3916.pdf)
- **Sentence Boundary Disambiguation (句子邊界消歧義)**
- 將文本解構為句子,但如果句子邊界模糊會很難處理,ex: 夾雜表情符號的語句
- 可以藉由進行Microtext Normalization來提升SBD的準確度
- [有方法](https://www.aclweb.org/anthology/A97-1004.pdf)使用最大熵學習來製作斷句分類器,將斷句偵測當作消歧義任務
- **Part-of-Speech Tagging (詞性標記)**
- 在每個詞標註上詞性
- 詞性標記其中一個特性是相鄰標記擁有強烈相依,可以透過特徵工程對此模組化
- [有一簡化特徵工程的方法](https://www.aclweb.org/anthology/Y18-1061.pdf):串聯單字嵌入,並設計單字等級特徵,使用雙向LSTM來任意塑造更廣泛的上下文
- **Text Chunking (文字分塊)**
- 也可稱作 shallow parsing(淺層語法分析),除了POS tagging還對句子增加結構
- 將句子分割為表現語法單元的不重複單字組,而不去嘗試理解他們內部結構和關係,ex: “[**NP** European Commission] [**VP** will probably launch] [**NP** a legal case] [**PP** against] [**NP** Poland].”
- 比起完全語法分析,它用的淺層文字分析技巧用的更多,所以也比較簡單、強大、資源密集低。而這些區塊不只明確,也不去依賴語法形式的選擇
- 分塊的特性也讓文字間重要的基本關係更好被察覺,比方說學術名詞和基本語法角色
- 常見方法包含基於規則或是機器學習等,比方說[基於transformation的學習](https://www.aclweb.org/anthology/W95-0107.pdf)
- **Lemmatization (詞型還原)**
- 將單字還原成基本型態的工作,換句話說就是去除詞綴(日文aka辭書語)
- 與所謂stemming (詞幹提取)不同的是,它不會把單字的名詞、動詞、形容詞等等所產生的種種變體都還原為同一個單字,而且不會去除POS標記。這對保留語義上是很重要的方式。
- [近期方式](https://pdfs.semanticscholar.org/060c/e6591fc3b95cb7a89643f0d9ae88a9a5ad43.pdf?_ga=2.72803027.1788826018.1606814226-141575482.1606545410)使用深度學習來還原詞型
## **Semantics layer (語義層)**
將從句法層得到的文本進行解構,然後抽取概念、分析參考(專有名詞、代名詞),並過濾中性內容以留下具情緒的詞語
- **Word Sense Disambiguation (詞義消岐)**
- 解決一詞多義的問題
- 可配合POS tagging來避免詞性誤導,ex: train在當動詞或名詞的差異
- [有一方法](https://www.aclweb.org/anthology/W02-1006.pdf)使用監督式學習和各式各樣的知識來源來進行詞義消歧
- **Concept Extraction (概念萃取)**
- 文本語義分析的關鍵,概念可以是一個單字或數個單字,重點在於不能被拆開,免得錯誤解讀
- 有統計學方式跟語言學兩種主要方式
- 較早期的方式是利用詞語頻率和詞語位置來計算權重,利用POS和文字分塊來萃取有用的N元語法
- N元語法: 建立在n-1階馬可夫模型上的一種概率語法,依據語句中n個語詞之同現概率的統計資料,來推斷句子的結構關係。([取自國家教育研究院](http://terms.naer.edu.tw/detail/1283111/))
- [最近的方式](https://www.aclweb.org/anthology/C16-1251.pdf)則是利用階層式分群法(hierarchical clustering)和降維來自動找到概念上的原始詞語
- ex: eat, slurp(咕嚕咕嚕地喝), munch(用力咀嚼)都會被整合為ingest(攝取、嚥下)
- **Named Entity Recognition (命名實體識別)**
- 又稱作專有名詞識別,是資訊萃取的子任務,識別文本中具有特殊意義的名詞,對回指分辨和方面萃取來說極為重要
- CoNLL 2003將這個工作的分類劃分為四:人、地、組織、和其他
- 首先要偵測名詞,通常會簡化為小問題,再按這些名詞所指的實體進行分類
- 早期方式是使用領域專用字典,[近期有一方法使用嵌入標籤](https://ww.sentic.net/label-embedding-for-zero-shot-named-entity-typing.pdf)
- 還有一項NLP子任務稱為時序標記,比NER本身要難,因為時間敘述可以簡短、多次重複、以及使用多種敘述
- **Anaphora Resolution (回指分辨)**
- 『「照應」(亦譯作「回指」)是代詞的其中一個重要功能,是指代詞指稱句子中其他名詞詞組(稱為該代詞的「 先行詞」Antecedent)的功能。』 [來源](http://chowkafat.net/Lingpassage2.html)
- 可應用在機器翻譯、總結、和問答中
- 是在實行主觀偵測和方面萃取之前,辨識出文本中代名詞的關鍵
- 最廣為人知的回指便是代名詞、形容詞照應,及"one"回指(用one作代詞)
- 分辨回指需要遵守的限制:
- 數量,以區分單數引用或複數引用
- 性別,以區分男性、女性、中性
- 語意一致性,假設先行詞子句和包含回指的句子語意上一致
- 早期方式聚焦在解析樹、語言模型、POS標註、和詞資料庫,[近期則使用基因演算法](http://rgcl.wlv.ac.uk/papers/ciclingAR19.pdf)
- **Subjectivity Detection (主觀偵測)**
- 去除事實、中性內容,換句話說就是不含「意見」的成分
- 增加情緒辨識系統準確度的關鍵,通常會最佳化正負面內容的二分任務
- 早期方法使用公認的一般主觀線索(general subjectivity clues)在無註解文本中生成訓練資料
- 代名詞、情態、形容詞、基數、和副詞都對情緒辨識有影響
- 有些NLP的經驗法則會自動辨認出與主觀語言統計相關的形容詞、動詞、和n元語法
- **BUT**對於很少出現的詞彙可能不能正常應對,因此必須建立廣泛且全面的主觀偵測系統
- [近期有新的框架](https://sentic.net/bayesian-elm-for-subjectivity-detection.pdf)利用貝式網路和模糊遞迴神經網路,用少量時間和資源的方式過濾中性內容
## **Pragmatics layer (語用層)**
目標在從句子結構以及從句法和語義層取得的語義中萃取意思,將隱喻或暗示等含意提取出來
- **Personality Recognition (人格識別)**
- 在推薦系統中,推薦給使用者的產品與服務必須是被其他相似性格的人給予正面評價的,其中Big Five(五大人格特質)最被接受
- Linguistic Inquiry and Word Count(語言查詢和字數統計)資料集和諸如成像性等特徵進行自動偵測人格特質
- [近期論文使用深度學習方法](https://sentic.net/deep-learning-based-personality-detection.pdf),針對Big Five測驗中的意識流來得知人格類型。基於一種新穎的文檔表現技術,對每種特質個別訓練相同架構的二元分類器。分類器作為特別設計的CNN被使用,從文本萃取出的特徵會直接被放入內部層。第一層會對個別句子進行處理,再集合為文件向量
- **Sarcasm Detection (諷刺檢測)**
- 諷刺的對象可以是發件人、收件人、或者第三方,且諷刺這件事可能會完全顛覆文本的意思
- 計算的文獻上還沒有很多對此的研究,而至今的大多嘲諷檢測被視為文本分類問題
- 諷刺是可以以微妙或者含蓄的方式表達,因此需要很好的理解能力,但正規的文本標籤是不能勝任的
- [一理論框架](https://www.aaai.org/Papers/Symposia/Spring/2004/SS-04-07/SS04-07-020.pdf)讓情感詞改變了情感表達的效價
- [近期方法](https://sentic.net/sarcasm-detection-with-deep-convolutional-neural-networks.pdf)使用預訓練的CNN模型來萃取情感、情緒和人格特質
- **Metaphor Understanding (隱喻理解)**
- 對方面萃取和極性偵測來說是必須的,對沒被偵測出來的隱喻來說,它的主旨可能會被認定為無關,並因此降低分類器的準確度
- 早期僅使用手動規範和隱喻理解的知識基礎,但面對可擴展性的問題
- 有些方法試著利用概念上的隱喻映射或選擇性優先等方式增進,但都需要該領域很好的理解以及足夠的數據,因此受限於昂貴成本以及系統限制
- [近期方法](https://www.aclweb.org/anthology/W14-2303.pdf)使用統計來偵測隱喻,且此方法不需要情感或隱喻的知識
- **Aspect Extraction (方面萃取)**
- aspect也可理解為opinion target(意見目標),是文本中對於一目標所傳達的感想,主旨為找到文本所做的評論極性
- 早期方式用的是以統計觀察為基礎的語言學規則、對名詞片語和產品類別間的相互資訊進行計算、或主題模型等方式
- [近期使用了七層CNN](https://sentic.net/convolutional-mkl-based-multimodal-sentiment-analysis.pdf),將意見語句中每個文字標記為方面或非方面,並混用符合特定方面的語言模式
- **Polarity Detection(極性偵測)**
- 最受歡迎的情感分析任務,將文字分類為正極或負極
- [近期方法](https://www.gelbukh.com/CV/Publications/2015/Sentiment%20Data%20Flow%20Analysis%20by%20Means%20of%20Dynamic%20Linguistic%20Patterns.pdf)使用CNN或LSTM或混合架構等等來增進語言學、知識表現、和機器學習達成更好理解句子的概念,讓情感基於相依性,從一個概念流轉到另一個概念
###### tags: `論文`