問個NLP領域問題。問題原話是這樣的,"To what extent would syntactic parsing be useful in an opinion extraction system and an information retrieval system?"
題幹裡的opinion extraction system,information retrieval system是如何通過syntactic parsing實現的?求NLP大神講解各自的細節和領域。
這個問題要怎麼回答合適?
回複內容:
謝邀。這裡面有兩個問題:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上對這兩個任務有協助(原題)。
由於我自己主要還是做句法分析本身,暫時很少做上層應用,所以簡單談談我對應用的理解,拋磚引玉。
1. 在opinion extraction/IR中如何使用句法分析。
舉幾個例子吧。
比如在opinion extraction中我們常常要抽取評價對象(aspect):
例:“知乎的內容品質很好”
這裡 “很好” 形容的是 “內容品質”。通過依存句法分析,就可以抽取出對應的搭配。如:
(順手插個廣告,分析結果來自我們實驗室的語言云:(順手插個廣告,分析結果來自我們實驗室的語言云:線上示範 | 語言云(語言技術平台雲 LTP-Cloud)
)
再說說IR,以百度框計算為例。對於以下兩個query:
Query 1: 謝霆鋒的兒子是誰?
Query 2: 謝霆鋒是誰的兒子?
這兩個Query的bag-of-words完全一致,如果不考慮其文法結構,很難直接給使用者返回正確的結果。類似的例子還有很多。在這種情況下,通過句法分析,我們就能夠知道使用者詢問的真正對象是什麼。
推而廣之,對Query進行更general的需求分析大都離不開描述對象的提取,很多時候句法結構非常關鍵,更是下一步語義分析的前提。
2. 句法分析在多大程度上對這兩個任務有協助(原題)。
原問題很好,可以擴充出很多思考。在煉丹紀到來之前,也許我們可以給一個非常樂觀的回答,比如60%。但是現如今,我們需要思慮再三。主要原因在於,RNN/LSTM等強大的時序模型(sequential modeling)能夠在一定程度上刻畫句子的隱含文法結構。儘管我們暫時無法提供一個清晰的解釋,但是它在很多任務上的確表現出非常promising的效能。
推薦一下車萬翔老師前段時間寫的一個簡單的survey:哈工大車萬翔:自然語言處理中的深度學習模型是否依賴於樹結構?
文中的一個效能對比能夠說明問題:Tree-LSTM是基於句法結構之上的LSTM,Bi-LSTM則是簡單的雙向(left<->right)LSTM。在很多任務上,Bi-LSTM都表現得比Tree-LSTM更好。
但是,這並不說明句法結構是沒有用的,詳細分析請參考上面提到的survey。
需要提及的是,句法分析目前的效能是防礙其實際應用的一個關鍵因素,尤其是在open-domain上。目前在英文WSJ上的parsing效能最高能夠做到94%,但是一旦跨領域,效能甚至跌到80%以下,是達不到實際應用標準的。而中文上parsing效能則更低。
剛入手nlp不久,主要做的是文本情感分析方向,但並沒有用句法分析做過研究,看到題主的問題,和所有答主的回答,並在近幾日查閱了一些相關文獻,針對題主所提問題做了整理,也對現有回答進行一些補充。
歡迎大家一起討論^_^。
句法分析在opinionextraction(意見提取)中的應用:
1. Whatto do
首先對研究目標進行分析。
opinion extraction要解決的主要問題就是判斷一句話或一段評論所蘊含的情感。如果僅以情感傾向性的判斷作為唯一目標,那麼就是一個分類問題,分類的結果可以為正向、負向、中性三類,或者加入強度,進行更細粒度的劃分。當然,雖然情感傾向性的判斷是一個值得研究的方向,但opinionextraction能挖掘出來的資訊並不僅限於此。
上述的挖掘內容的差異,實際上引出了opinionextraction研究方向的兩個大類。一個是sentiment classification,就是以情感傾向性判斷的高正確率為目標的研究;另一個是sentimentrelated information extraction,更多地關注於對情感文本的組成元素進行分析。什麼是組成元素?就是一段評論中,評論者,評論的主體,能體現評論者情感的情感詞等等元素。
舉個例子(取自[1])
I highly recommend the Canon SD500 to anybodylooking for a compact camerathat can take good pictures.
粗體字表示評論主體,斜體字劃線字表示情感詞
對於sentimentclassification問題,對於上述資料,能夠判斷出它蘊含的情感是正向的,就夠了。
而對於sentimentrelated information extraction問題,對於上述資料,要能夠判斷出Canon SD500的效能不錯,如果有效能的分類,還應該將其分類到如“拍照效能”的類別中。
2.Howto do and why is Syntactic Parsing important
說完要解決的問題,接下來說解決問題的方法,並分析句法分析在其中的關鍵作用
上面對opinionextraction的研究方向進行了一個分類。下面要說的是,句法分析在其中的應用。
句法分析對第一類問題的意義不大,這也是答主沒有看到過用句法分析所做研究的原因。因為對於第一類問題,用統計的方法更為高效,效果也比較好。只需要對測試文本進行分詞(英文的話根據空格分詞就可以了),由文本中出現的所有詞的情感傾向,對該文本的情感傾向進行預測就可以了。當然這是大致思路,若要提升準確率,還可以對文本的領域進行判斷等等。
而在第二類問題中,句法分析的作用就大大的了。因為第一類問題可以將所有詞平等看待,只需要根據標定資料,判斷一個詞在正向和負向評論中出現的機率。而要想知道一句話中哪個是評論的主題,哪個是修飾它的詞,則必須要對語言規則有足夠的設定,名詞和形容詞是存在本質差別的。另一方面,因為一句話中可能存在從句,所以可能形容詞和其修飾的名詞主體相距甚遠,如果沒有對句法規則有足夠的判斷,結果可能一塌糊塗。
關於句法分析,已有答主給出了很清晰的例子,在這裡就不在贅述。在這裡給出一個由規則進行情感詞提取的例子(取自[2])
標誌注釋:
M: modifier,修飾詞
NP: noun phrase,名詞短語
S: subject,主語
P: predicate,謂語
O: object 賓語
f: feature 被評價的主體
這還不是全部的規則,由此也可以看出由句法結構來進行opinionextraction是麻煩而且準確率難以達到很高水準的,因為很難對所有的情況指定精確的規則。因此如何進行句法分析,在opinionextraction中也是一項研究內容。
句法分析在informationretrieval中的應用:
1.whatto do
答主之前沒有接觸過informationretrieval,通過這段時間的調研,認為其解決的主要問題即為通過給定的查詢輸入,在一定範圍內檢索到相關的資訊。一個重要的應用就是問答系統(questionanswering systems)。
2.Howto do and why is Syntactic Parsing important
因為要通過對輸入查詢的分析,找到某一資料集(比如互連網)中與查詢相關內容的資訊,比如與查詢語句相關的一段話,或針對所提問題直接給出一個簡短的回答。
文獻[6]將問答系統的任務大致分為三步,個人認為有參考意義:
(1)locatingthe relevant documents 定位相關文檔
(2)retrievingpassages that may contain the answer 在文檔中找到可能包含答案的段落
(3)pinpointingthe exact answer from candidate passages 在備選段落中精確定位,找到答案
由上可以看出,在進行informationretrieval時,並非一步得到答案,而是不斷縮小範圍的。這就需要每一步都沒有太大偏差,比如第(2)步,連可能包含答案的段落都找錯了,那肯定不會找到正確的答案了。
因為查詢實際上可以看為匹配操作,所以對輸入語句的匹配和分析就會對查詢結果起到決定性影響。下面用一個例子來進行說明(取自[7])
Q: What did George Washington call his house?
傳統的方法,會在資料庫(搜尋範圍)中對包含關鍵詞的文檔/段落進行匹配,毫無疑問,這個問題中的關鍵詞是標綠的GeorgeWashington 和 house。於是找到了以下關鍵詞:
確實找到了一些相關的詞語,但一個很大的問題就是,這樣直接對關鍵詞進行匹配,而不分析關鍵詞之間的關係,就無法找到同時包含多個關鍵詞的答案。也就是說,匹配出的詞語僅與一個或少量關鍵詞有關。但在問題中問的是GeorgeWashington的house,所以只匹配George Washington或之匹配house都是很難得到精確答案的。
這是用句法分析,分析關鍵詞之間的相關關係後,得到的相關結果。雖然有多個詞語上面的結果相近,但後者會將與兩個關鍵詞都相關的結果排名提前,如”George’sWashington’s house, Mount Vernon.”這一搜尋結果,其出現次數很少,在傳統方法中,會被排到比較靠後的位置,但明顯其與兩個關鍵詞同時相關,因此在句法分析的方法中,它會被排到很靠前的位置。
在文獻[7]中還有更詳細的舉例說明,即如何通過句法分析建立parsingtree,對查詢語句和搜尋結果進行文法序列(因為每句話的詞語之間存在相關關係,所以其可以看成是一個文法序列)的匹配,選擇匹配得分高的結果作為答案。具體說明細節較多,就不在這裡贅述了。
總結
上面說了句法分析如何解決opinionextraction和information retrieval的問題,有些瑣碎。個人認為,總體來說,因為自然語言的詞語詞之間存在相關性,因此通過句法分析能夠比僅用統計的方法挖掘出更多的資訊量,當然統計的方法也可以在某些維度挖掘出句法分析所得不到的資訊,所以這麼說更準確一些:句法分析能夠更直接地通過文法結構的規則約束篩選出對我們有用的結果,以這種方法來提升方法得準確性。
因為是看到題主的問題後於近期做了一些調研,回答可能有不完善之處,但答案中所舉例子、所述理論均有文獻依據,歡迎大家一起探討^_^。
參考文獻及pdf連結
Opinion extraction部分
[1] Wu Y, Zhang Q, Huang X, et al. Phrase dependency parsing for opinionmining[C]//Proceedings of the 2009 Conference on Empirical Methods in NaturalLanguage Processing: Volume 3-Volume 3. Association for ComputationalLinguistics, 2009: 1533-1541.
連結:http://www.aclweb.org/anthology/D/D09/D09-1159.pdf
[2] Popescu A M,Etzioni O. Extracting product features and opinions from reviews[M]//Naturallanguage processing and text mining. Springer London, 2007: 9-28.
連結: http://www.aclweb.org/old_anthology/H/H05/H05-1.pdf#page=375
[3] Poria S, Cambria E, Ku L W, et al. A rule-based approach to aspectextraction from product reviews[C]//Proceedings of the Second Workshop onNatural Language Processing for Social Media (SocialNLP). 2014: 28-37.
連結:http://www.anthology.aclweb.org/W/W14/W14-59.pdf#page=38
[4] Choi Y, Breck E, Cardie C. Joint extraction of entities andrelations for opinion recognition[C]//Proceedings of the 2006 Conference onEmpirical Methods in Natural Language Processing. Association for ComputationalLinguistics, 2006: 431-439.
連結:http://www.aclweb.org/anthology/W/W06/W06-16.pdf#page=453
[5] Dave K, Lawrence S, Pennock D M. Mining the peanut gallery: Opinionextraction and semantic classification of product reviews[C]//Proceedings ofthe 12th international conference on World Wide Web. ACM, 2003: 519-528.
連結:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.13.2424&rep=rep1&type=pdf
Information extraction部分
[6] Cui H, Sun R, Li K, et al. Question answering passage retrievalusing dependency relations[C]//Proceedings of the 28th annual international ACMSIGIR conference on Research and development in information retrieval. ACM,2005: 400-407.
連結:http://www.comp.nus.edu.sg/~kanmy/papers/f66-cui.pdf
[7] Sun R, Ong C H, Chua T S. Mining dependency relations for queryexpansion in passage retrieval[C]//Proceedings of the 29th annual internationalACM SIGIR conference on Research and development in information retrieval. ACM,2006: 382-389.
連結:http://lms.comp.nus.edu.sg/sites/default/files/publication-attachments/sigir06-sunrenxu.pdf
[8] Carpineto C, Romano G. A survey of automatic query expansion ininformation retrieval[J]. ACM Computing Surveys (CSUR), 2012, 44(1): 1.
連結:
https://www.researchgate.net/profile/Claudio_Carpineto/publication/220566113_A_Survey_of_Automatic_Query_Expansion_in_Information_Retrieval/links/00b7d515aa3ac40767000000.pdf
【非常高興看到大家喜歡並贊同我們的回答。應許多知友的建議,最近我們開通了同名公眾號:PhDer,也會定期更新我們的文章,如果您不想錯過我們的每篇回答,歡迎掃碼關注~ 】
我也來答一下好了,雖然沒人邀_(:3」∠)
Jiwei Li 在今年ACL上發了一篇“When Are Tree Structures Necessary for Deep Learning of Representations?”,大概就是
tree structure vs. sequence (recursive vs. recurrent)。
他用四個任務說明這個問題:
- sentiment classification at the sentence level and phrase level
- matching questions to answer-phrases
- discourse parsing
- semantic relation classification
每個任務都設計了基於tree的rnn和基於sequence的rnn,同時都用LSTM加強了。具體每個任務的結果就不說了。最終結論是
除了任務4(semantic relation classification)上tree有明顯的優勢,其他任務都是bi-LSTM on sequence比較好。
具體結論有以下幾點:
- 較長文本用tree比較好(如果語料充分)
- bi-LSTM可以彌補sequence和tree之間的gap
- 可以把長文本分成短文本(用標點),再分層的使用sequence model
我個人覺得用bi-lstm和tree-recurssive比是不太公平的,因為每個詞看到的context都不一樣,如果把
樹也做成bidirectional的,結果應該還會上升,比如這個global belief RNN~
我是相信樹的有效性的,或許只是我們沒有提出我是相信樹的有效性的,或許只是我們沒有提出
更好的模型罷了 我本人是做文本情感分析的,經常用到句法依存分析,算是對這些有些瞭解,暫且發表一下個人的觀點,不對之處希望指出,大家共同學習,共同進步。
1.句法依存的介紹
依存分析主要是為了分析句子中各成分之間的相互關係。大致目標:識別句法成分(主謂賓等)、確定句法關係(SBV、VOB、ATT、ADV等)。
依存分析的實現主要包括基於圖的方法和基於狀態轉移的方法。基於圖的方法利用全句的依存關係訓練,使用最大產生樹演算法解析,具有全域性,但他有個致命缺點--不到搜尋結束,不會產生中間解析結果,因此無法把中間結果用於後續解析。基於狀態轉移的方法利用每一步的轉移訓練,逐步搜尋局部最優解析直至解析完畢,這種方法有點貪心演算法的意思(個人感覺)和局部性,這個演算法的好處是可以利用中間結果對後續進行解析。這兩種方法可以說是對立又互補的關係,也有不少人把他們融合,據說產生了比任何一個單獨方法都要好的效果。
2.句法依存的意義
2.1 文本理解
“謝霆鋒的兒子是誰?”和“謝霆鋒是誰的兒子?”這倆問題完全不一樣,但是如果用傳統的搜尋肯定導致搜尋結果幾乎一致(因為基本就是關鍵字匹配),但是如果加入句法依存分析的話結果就會完全不一樣。
2.2語義消歧(這個用處就很多了,最常見的可以用與query改寫)
比如“去醫院看癌症病人”,“看”在這裡可以是“治療”的意思也可以是“看望”的意思,所以容易歧義。如果你引入句法依存完全就會確定為“看望”了,因為看的賓語是“病人”。
2.3主幹抽取
“給我推薦一家能夠聽到古典音樂的餐廳”這句通過句法分析就可以輕而易舉擷取主幹。
2.4摘要抽取
具體類似,不再多說。
2.5情感分析
一般因為領域問題(我家音響聲音很大VS我家洗衣機聲音很大)和反諷問題(你牛逼你上啊),目前情感分析大多基於規則而不是基於統計,基於規則的一般用句法分析確定和驗證一些情感詞、主觀詞的句法結構,然後判定句子的情感傾向、抽取情感tag等。
2.6機器翻譯
最簡單的一種方法:通過句法分析把句子結構確定下來,然後逐個詞翻譯,再根據句法結構整理和修改翻譯結果。
2.7唯一答案搜尋(問答系統)
比如使用者搜“陳道明身高”、“陳道明年齡”,如果加入句法依存分析就會直接給出搜尋結果。
類似的應用還有,不再一一列舉。除此之外句法依存分析還是語義角色標註的基礎。類似的應用還有,不再一一列舉。除此之外句法依存分析還是語義角色標註的基礎。
3.什麼時候需要句法依存分析
a.對於複雜問題但訓練資料比較少
b.語義依賴的距離比較遠(那幫傻乎乎的女性小粉絲在網路上抨擊我)
具體參考車老師的這個文章:哈工大車萬翔:自然語言處理中的深度學習模型是否依賴於樹結構?
4.句法分析怎麼用
簡單介紹一個在主觀句抽取中的應用吧,基本處理(分詞、詞性標註等)-->match aspect-->match aspect-verb-->match 情感詞-->match 泛情感詞-->粒度解析(合并結果、重新詞性標註等,比如(給v 力n -->給力a)-->句法依存分析-->驗證主觀詞句法結構(比如情感動詞必須得有主語和賓語等)-->句式匹配(多種句式,不同句式位置和命中規則不一樣)-->句式過濾(多種句式,不同句式過濾的位置和過濾規則不一樣)-->整句句法分析-->整句過濾-->輸出主觀句。基於規則才會用到句法opinion extraction system這說法很學術,我不知道中文怎麼表達。
information retrieval system指的就搜尋引擎。
首先,基於文本相關性來搜尋,在NLP情境下,核心關鍵詞的得分容易被一些廢話稀釋。雖然可以用stopwords來解決,但句法分析提取本體的做法會精準得多。
然後,更重要的是,咱們搞搜尋上層應用的,除了文本相關性之外,很多時候會做一些基於特定規則的特殊處理。這一塊很大程度是基於自身的業務,所以國內LTP也好、ICTCLAS也好,並沒有給出做句法分析的通解。
例如一個視頻搜尋,發現query裡有“new”或者“hot”,可能就要在搜尋時加上時間相關的特殊規則。這些規則的制定,就是對業務的理解結合句法分析完成的。
視頻搜尋這例子不太好,因為設個關鍵詞也能解決,不需要用到句法分析這種牛刀。如果搜“我要訂個明天從廣州飛北京的機票”,就一定要用句法分析了。首先要判定這個是買機票業務,然後抽取出句中的時間地點,然後填入對應的業務介面當中,最後呈現給使用者。
其痛點在於如何抽象化和運行效率問題,還有業務和工程方面無數你想到的想不到的坑。
關於“To what extent would syntactic parsing be useful”,
這個應該對題主有協助:
https://open.weixin.qq.com/zh_CN/htmledition/res/assets/smart_lang_protocol.pdf
基本上,停滯不前。