日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

万字长文详解文本抽取:从算法理论到实践

發布時間:2024/10/8 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万字长文详解文本抽取:从算法理论到实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



導讀:“達觀杯”文本智能信息抽取挑戰賽已吸引來自中、美、英、法、德等26個國家和地區的2400余名選手參賽,目前仍在火熱進行中(點擊閱讀原文進入比賽頁面,QQ群見上圖或文末二維碼)。達觀數據目前已經舉行過兩次圍繞比賽的技術直播分享,并開源了baseline模型。本文是這兩次技術直播的內容總結,包括信息抽取傳統算法和前沿算法詳解、比賽介紹,以及比賽baseline模型代碼分析和改進建議。?


在前半部分,達觀數據的聯合創始人高翔詳細講解了自然語言處理中信息抽取算法技術。在后半部分,達觀數據的工程師們分享并介紹了“達觀杯”文本信息抽取挑戰賽的baseline代碼以及改進建議。最后,針對參賽選手和其他觀眾的疑問,三位專家也一一做了解答。


作者介紹


高翔是達觀數據聯合創始人,達觀數據前端產品組、文本挖掘組總負責人;自然語言處理技術專家,負責文本閱讀類產品、搜索引擎、文本挖掘及大數據調度系統的開發工作,在自然語言處理和機器學習等技術方向有著豐富的理論與工程經驗。?


目錄


第一部分:文本信息抽取詳解

第二部分:“達觀杯”baseline代碼分享

第三部分:問題答疑


第一部分:文本信息抽取詳解


文本挖掘簡介


下面我們開始介紹一下文本挖掘。下圖中,我們可以把人工智能分為三類——圖像、文本和語音,達觀是一家專注于做文本智能處理的科技公司。文本相對于圖像和語言來說更難處理,因為文本數據需要做一些邏輯分析。圖像和語音屬于感知智能,而文本屬于認知智能,所以號稱是“人工智能的明珠”,難度很大。



自然語言處理的任務是什么?簡單來說就是讓機器知道怎么看、要么寫。我們一般把“看”叫自然語言理解(NLU),包括自動化審核、自動文本比對、信息糾錯,搜索推薦等等,它可以大幅度減輕人工的負擔。自動寫作叫自然語言生成(NLG),包括自動填表、生成摘要,文本潤色,還有大家看到的“自動生成股市”、“自動生成對聯”等等。目前我們主要還是在解決自然語言理解的問題。語言生成因為一些限制,實際落地的效果仍然有待提高的。所以我們今天主要討論自然語言理解這部分。



其實自然語言處理的歷史非常悠久,甚至出現在“AI”這個概念之前,最早叫“符號主義”。剛開始的時候人們選擇了一個很不好的場景:機器翻譯。機器翻譯是一個難度很大的任務,因為涉及了語義的理解和不同語種語法的規則。所以早期自然語言處理不是很成功。過了20-30年,到上世紀80年代開始,我們使用了語法規則,基于自然語言處理的一些基本原理,再通過人工在這些語法的規則上進行修訂,做了一些問答、翻譯和搜索方面的嘗試。

自然語言處理真正的黃金時期是從上世紀90年代開始,那時候我們搞了統計學,做了很多基于統計機器學習的算法。
從下圖中我們可以發現,統計模型的效果讓自然語言處理的應用領域更加廣泛,產生了很大進步。其實在上世紀90年代的時候,自然語言處理已經可以在很多場景表現得很不錯了,比之前的技術要先進很多。



從2006年到現在,深度學習已經開始起步。之前“神經網絡”這個概念已經有了,只是當時受限于各種各樣的算法和硬件,沒法做得很好。但現在各方面都成熟之后,大家發現深度學習是一個神器。其實深度學習最早的時候在圖像領域的應用較多,但目前自然語言處理也逐漸開始過渡到深度學習的階段。尤其是去年像BERT這樣的模型出來之后,我們發現自然語言處理的評測經常被屠榜,這說明神經網絡非常有效,但也說明數據也很重要,后文中我們會解釋數據的重要性。



我們對比一下人類和計算機之間的差異。其實我們人類短時間內閱讀理解文字的能力還不錯,但是時間久了很容易遺忘。但計算機基本不會忘,只要硬盤不壞。人腦難以長期記憶,但我們對內容的推理能力比計算機強。因此,我們可以請計算機來做一些比較細節的工作。例如文字比對,我們檢查錯誤要逐字逐句地看,非常累。計算機能做到秒看,卻很難做復雜的邏輯和推理。


此外,雖然人類閱讀速度很快,但寫作速度很慢。大家高考的時候都要留幾十分鐘來寫作。這是因為寫的時候,我們手速有限。而且在寫的過程中還要進行很多思考。寫作本質是把腦中的很多語義信息壓縮到一個點,也就是文章的主題。有了主題后我們還要再把作文展開,所以要花很多時間構思大綱、設計章節結構和文章主線,非常耗時。

我們在接受信息時能很快地理解整體,但是難以記住細節。
我們看完一個東西立刻能知道它的中心思想。例如,我們瀏覽了一個企業的信息之后,就能做出“這個企業比較靠譜,愿意投資”的判斷。但是企業收入、競爭利潤、負債這些具體數字很難全部記清楚。所以人去尋找局部信息的能力和計算機比非常慢。計算機的優點就是找這種局部信息,越細的東西它找得越快。



什么場景比較適合讓計算機去做?基于現階段的技術,現在大部分場景計算機還是無法取代人。我們可以看到,很多行業,包括法律,包括企業合同、客戶意見、產品手冊、新聞、問答資料的數據是需要我們親自來看。雖然這些行業領域不同,但做的事情都類似。審一個企業合同的時候,需要看一些關鍵的信息,如甲方、乙方,以及這些東西是否合規,總金額是否正確。在法律行業,法官判案時也要看整個案由,包括被告和原告的相關信息,案件的時間、地點等等。這些都是信息抽取,在很多應用場景下都需要信息抽取。無論我們做了什么決策,判斷是否投資,是否通過合同,如何進行法律判決,都需要先從文字中提取信息。

其實在一些比較固定的,相對簡單,不需要特別復雜的邏輯推理的場景中,機器學習算法已經可以完成信息抽取任務。
我們正努力讓計算機在這些場景落地,這不僅僅是算法的問題,也是應用的問題。這也是我們一直在思考的問題。

抽取算法概述
現在我們具體講講信息抽取的幾種最主流的算法。

什么是信息抽取?其實就是從文本中找到指定類型的實體。大家應該聽過命名實體識別(NER),其實命名實體識別只是抽取中的一種。廣義上的信息抽取,除了命名實體識別之外,還包括關系抽取、事件抽取等。其實在我看來,關系抽取和事件抽取比命名實體識別的應用層次更高級一點。因為這兩個抽取同需要做NER,只是在做NER的基礎之上,還要做一些其他的工作,來滿足場景需求。

我們先從最簡單的NER開始。
命名實體一般是指人物、地點、機構、時間等內容?,F在我們以公司抽取為例詳細說明一下。


如果從歷史的角度來說,識別公司的任務就是所謂的“符號主義”任務,簡單來說就是窮舉所有公司的名稱做詞典匹配。這樣就是一個命名實體。但是,這么做場景其實有限。為什么?因為上市公司的集合是有限的,所以直接拿公司字典可能比訓練模型更快。

但是你會發現這種場景并不常見。
比如,如果抽取所有公司(不僅限于上市公司)就不能用這種辦法,因為公司實在太多了。十年前如果你看到“餓了么”,如果沒有上下文,你不會覺得這是一個公司,但因為現在大家經常點“餓了么”,都知道這是一個公司的名字。而且,每天都有大量新公司產生,所以整體的公司是一個沒法窮盡的集合。在這種情況下,我們沒辦法用字典很好地完成絕大多數任務。


之前我們提到了上下文。那我們現在加入上下文信息,是不是可以知道某個實體是一個公司呢?最直接的方法是通過語法規則來做,例如“A是一家公司”、“B作為一家公司”等等。你會看到這樣的一些模板,然后再去分析。如果說得學術/技術一點,相當于把這個任務提煉成一個比較復雜的句法依賴和語法規則。但從代碼角度可能會比較簡單,比如把模板中間的東西摳掉,然后去做匹配,做完匹配再去做填空,填空的內容就是你要的這些公司。

但這樣做也有很大的問題,因為我們語言表述的方法太多了。
例如,“我是A公司的”,“我來自B公司”以及很多種其他不同的表述都是一個意思,我們無法窮盡所有的表述方法。甚至周星弛的電影也能增加這種做法的難度。我們以前說“我先走了”,現在會說“我走了先”、“我吃了先”,這其實跟我們傳統的語法都不太一樣,但現實生活中就有這么多表述。不過,和上面的字典類似,在特定的場合,比如一些特定領域的公文等文書文章,還是有套路或者標準寫法,也許可以用這種方法??偟膩碚f這種方法比較簡單。


更高級的是基于統計機器學習的方法,從算法上來說是用序列標注的方式來做。這種方法要求我們標注數據,例如上圖中我們標注了一句話:“達觀數據是人工智能公司”?,F在它會預測“上海的虛擬數據”中的“虛擬數據”也是一家公司。它是怎么做到的?后文會詳細介紹。這種做法就跟模板匹配完全不一樣了。在圖中,可能第一個預測“虛擬數據是人工智能公司”還有模板的性質,但后面兩個表述和前面完全不同,所以這種基于統計機器學習的方式有了一定的預測能力。

但問題是什么?
它需要兩個條件。首先是數據。大部分的機器學習都是監督學習,要做數據標注。而且我們傳統機器學習經常要做特征工程。甚至在很多任務中,一個特征工程可能要占到我們項目時間和精力的90%。我們之前參加CIKM評測并拿到冠軍的任務中,就耗費了大量時間構建特征。舉個例子,我們實際工作中完成文本分類任務的時候,僅僅把文字的長度這個特征加進去,效果一下子提升了很多。這種特征我們很難想到。特征的選擇可能有時候還有一定的邏輯推理,但有的時候就是拍腦袋。所以特征工程做好是很難的,需要很多的經驗,還需要有擴散性的思維。

此外訓練和預測需要很多計算資源。
某些機器學習(尤其是傳統的機器學習)的訓練過程中,特征有時候會特別耗費內存,可能不一定訓練得完,所以對機器有一定的限制。當然,現在做深度學習,限制可能是GPU。深度學習相對于傳統機器學習,對數據量地要求更高。因為傳統的機器學習模型的各種參數沒有深度學習這么多。


雖然深度學習的可解釋性經常被人詬病,但也有些模型實際上可以給我們一些解釋。尤其是一些基于Attention機制的模型。這里就是一個Attention分類器。圖中可以看到它能從句子級別和詞級別告訴你,對一個分類模型來說,哪句話最重要,哪個詞最重要。這些詞和句子都是有權重的。因為有Attention這樣的權重,我們就能把它拿出來做可視化。



所以整體來說還是要通過序列標注來做。上圖有一個序列標注的例子:分詞。要分詞的句子是“它來自達觀數據”。我們有一個叫Label Set,也就是標簽集。圖中我們用的是BMES這個很經典的標簽集,這個標簽集其實對應的英文Begin、Middle、End、Single,大家一看就知道是什么意思。對于分詞來說,每個字可能組成一個詞(單字成詞),也可能是一個詞的開始、的中間或結尾。

上圖還可以看到,在分詞之外,命名實體我們用另外一個標簽集。
我們做詞性分析可能用不同的標簽集??梢钥吹?#xff0c;不同的標簽集可以用來做不同的事情。所以無論是傳統的機器學習,還是深度學習,我們都是在解決一個叫做“序列標注”的問題。所以標簽集和標注方式都是基礎的、幾乎是一樣的。有什么樣不同?后文會具體討論。

傳統抽取算法介紹
其實傳統抽取算法有很多,這里會介紹一些大家比較常用,也比較好理解的模型。第一個模型叫生成式模型。生成式模型的一個代表就是隱馬爾科夫模型(HMM)。另外一個是判別式模型,代表是條件隨機場(CRF)。這兩個模型都結合了概率論還有圖論的一些內容,也都基于統計機器學習的算法。它們都能根據訓練集訓練出不同的結果。下面我們詳細介紹一下這兩個模型。

我人生第一次做序列標注任務的時候,用的就是HMM模型。
馬爾可夫這個名字一聽就像是個數學很厲害的俄國人,但其實HMM模型并不難。大家只要記住兩部分內容:兩個序列、三個矩陣。如下圖所示。我們要做的就就是把這五個部分定義好,整個模型和要解決的問題就定義清楚了。



首先是觀察序列。上圖中“他來自達觀數據”,就是我們人看得到的觀察序列,但它背后隱藏了分詞?!八笔且粋€詞,“來自”是一個詞,“達觀數據”是一個詞,這個是我們說“隱藏序列”,沒有寫到明面上,但需要我們模型預測。怎么預測?下圖畫了預測模型的示意圖。圖中,X_1、X_2、X_3就是我們說的隱藏內容,人能看到的是y_1、y_2、y_3、y_4,也就是觀察序列。但其實不同狀態是可以不停地轉換的。比如X_1到X_2之間有一條連線說明X_1和X_2之間可以通過概率a_12做轉換;X_2到X_3之間通過概率a_23做轉換。所以這個模型其實比鏈式的HMM還要更復雜一點,因為它有X_2到X_1這樣的轉換。所有的X都可以轉換到y_1、y_2、y_3、y_4這樣的觀察序列,每對轉換關系都有對應的概率。



這樣我們就把模型定義好了。我們只需要求模型的哪幾個部分呢?主要是這三個矩陣:初始狀態矩陣,發射狀態矩陣,以及狀態轉移矩陣。

第一個是初始狀態矩陣。
我們現在舉的例子都是有序列標注,例如多輪分詞。下圖是一個真實的多輪分詞模型里面的圖,這是我們自己訓練的一個模型。可以看到,初始狀態只可能是S(ingle)或B(egin),因為不可能從代表詞結尾的標記開始一個句子。所以我們要從所有的語料中統計,單字詞S和多字詞B開始的概率是多少。僅僅統計這兩個矩陣就可以,因為其他兩個標記M(iddle)和E(en)是不可能出現在句首的。圖中的概率有負數,是因為經過log和相關處理,從而可以方便后續的計算,但本質的含義還是概率。



第二個矩陣是發射狀態矩陣。什么是發射狀態矩陣?簡單來說就是我們在分詞里每個字變成任何一個標簽的概率(如下圖所示)。例如“他”這個字如果來自“他來自達觀數據”這句話,就是一個單字詞S(ingle);但如果在“他”出現在“他們”等多字詞里,標簽就是B(egin);在“關心你我他”里,“他”的標簽可能就是E(end)。所以你會在訓練語料看到“他”有不同的標簽。發射狀態矩陣就是把“他”到每一個標簽的概率集合起來。發射狀態矩陣非常重要,它說明了每一個字到不同標簽的概率。



第三個是狀態轉移矩陣。什么是狀態轉移矩陣?其實狀態轉移矩陣也是統計出來的,也就是剛才說的X_1和X_2之間的概率。我們訓練語料里面已經有了SB、BMME這樣的標簽。其實我們可以觀察到一些現象,例如S(ingle)后面不可能跟E(nd)和M(iddle)。這些就是狀態轉移矩陣描述的內容,如下圖所示。它說明E后面跟著S的概率是多少,E后面跟著B的概率又是多少等等。這些值其實都是從語料庫中訓練出來的。



下面討論兩類學習算法:一種是“監督學習”,通過極大似然估計就可以得到這些值,非常好算,簡單地說就是統計次數:統計這個標簽一共有多少,相關概率又是多少,就可以得出結果了。還有是一個非監督學習Baum-Welch,這個算法我們用得比較少,因為根據我們自己的經驗,它的整體效果會比做統計差很多。而且監督學習有個好處是因為有了訓練集和相關的數據,所以很容易去查錯。

解碼算法基本是用Viterbi來做。
當然你也可以把當前最好的狀態輸出來,找到在當前序列下能夠輸出的最大標簽,通過自己的一些解碼邏輯(比如B后面一定是M或者E,不可能是S)優化一些內容。但我們經常還是用Viterbi去做整體的解碼,取得最優路徑的概率。Viterbi解碼算法大家一定要掌握,因為后面有有不少算法與它類似。只要把Viterbi學會了,后面的很多東西就很好理解了。

HMM是我個人學的第一個模型,但是我現在基本上不用這個模型。
為什么不用?因為它的效果還是相對差一點。但它也有優點。因為做極大似然估計就是簡單的統計,速度非??臁K赃@個模型的更新可以做到秒級。你做一個數據的修改,跑一遍立刻把數據統計出來,修改矩陣以后很快就對這個模型做一個更新。所以在項目的初始階段,我們可以快速地用這個方法來做baseline或者動態的修改。尤其在實際業務中,可能客戶做了一些修改后他需要實時知道反饋,這時候可以用HMM,雖然可能不能保證有好的效果。


在實際應用中我們用的最多還是條件隨機場(CRF)。因為CRF往往效果更好。下圖說明了HMM和CRF的關系是什么,我們可以看到一個HMM是鏈式傳遞,但加上一個條件就是我們最常見的鏈式條件隨機場。通用CRF就是下圖中右下角的圖,但是我們做序列標注的話可能是最下面一行中間的這個圖,也就是鏈式的CRF。它跟上面一行的圖的區別是什么?大家可以看到下面一行圖中有好多小的黑色正方形,這就是我們說的條件。我們是如何得出條件的?下面我們就來介紹一下如何通過真實訓練得到條件。


我們先看下面這張圖。圖中nz在詞性里表示是一個“其他”類型的實體。這種類型很難歸入時間、地點、人物等常見的實體類型,比如“蘋果手機”可能就可以算是一個nz。我們把所有不太好分類的實體都歸入到nz里。在這里,標簽集還是BMES,但是加了一個“O”。標簽后面的后綴其實就是類型。剛才提到的“其他”是nz,還可以有其他類型(如地名、時間、機構等)可以用其他字符串表示,比如nr、ns、nt。定義好這套標簽集后,我們就開始定義特征函數。


下圖是我們是用CRF++、CRFPP做的特征模板。大家可以看到,圖里有U00到U08,最后還有一個字母“B”,B說明它會學習標簽間的轉移。U00到U08都是特征,U00表示第一個特征,U01是第二個特征。此外還有一個x%,它代表了前面特征的內容。

首先看第一個特征:U00: %X[-3,0]。
U00表示把我們要研究的字左邊的第三個字作為特征,向量后一個數0表示我們沒有添加人工特征。我們把這些拼接起來就是一個最終的特征。


下圖中包括了特征函數的權重(weight)。我們可以看到“U06:徑”,這表示當前的字右邊第三個字是一個“徑”字。我們會給出每個標簽的得分。可選的標簽就是BEMOS。這里的數字代表得分(不是概率),有正有負。我們最終就是要把訓練集所有的數據先通過這個特征模板變成一個特征。對于每個字,都有8個特征,第一個特征就是當前字左邊的第三個字,第二個特征是左邊第二個字,U03就是當前字本身。


所以大家可以看到CRF和HMM最大的不同。我們定義了這樣一個特征函數(或者特征模板)。我們還可以人工設置一些特征影響特征模板。比如在研究當前字時,如果用了這樣的模板,我就知道前三個字和后三個字會對當前這個字的標簽的輸出產生影響。除此之外,還可以用前一個字和當前字,或者當前字和后一個字的組合作為特征。有了這些特征,我們就要計算特征的結果。這時可以迭代訓練模型,CRF使用了L-BFGS來訓練。最終訓練出來的模型可以告訴我們每個特征值對于不同的標簽的值是多少,相當于是一個全局最優的值。

下面這張圖代表了標簽之間的轉移,這跟HMM非常像,也可以算出來。
所以CRF最終在一個全局最優的情況下達到了一個最優點。我們可以存儲這個最優點情況下每一個特征的值,用來解碼。



CRF的解碼較為簡單,我們根據當前序列的位置,根據特征的模板生成很多特征函數,直接去查我們的模型,找到其對應的特征函數權重,之后每一個特征函數權重加起來。查到這個特征函數就把相應的權重取出來,加起來,沒有查到就是0,就不用去做了,最終有一個得分,這樣每一個標簽都會有相關的得分。這個字生成的Score會有BEMOS相對應的,最終得到一個圖,我們就用Viterbi解碼,跟前面一樣就能解出來了。


為什么CRF效果好?因為我們可以定義特征模板,包括了很多上下文比較遠的特征。CRF的特征是人工選擇的,可以選擇前兩個、前三個,甚至更多,所以可以讓模型學到更多上下文,而且是遠距離的上下文,輔助我們判斷,提升整體效果。但條件隨機場需要迭代優化,根據梯度下降的方向去找最優點,所以整體速度相對較慢,算出來的模型也不會小。很多時候必須要篩選或裁剪標簽。

以上內容就是HMM和CRF這兩個傳統的算法。

基于深度學習的抽取算法
經典機器學習的很多算法需要比較強的數學功底,通過數學公式做出優美完整的論證。但現在經典機器學習算法的收益已經沒有以前大了。原因如下圖所示,圖中列出了文本挖掘領域中,經典的機器學習和深度學習的對比。



最大的區別就是紫色的框:特征工程。其實算法并不多,但特征工程五花八門,包括我們做文本處理時經常遇到的TF-IDF、互信息、信息增益、期望交叉熵等等。其實這些提取特征的方式都有一些科學依據,但很多場景下我們需要靠直覺。特征工程往往占到項目時間的90%。

而深度學習不在乎特征。
模型定好之后只管輸入,有了輸入就能輸出一個最好的結果?;静挥酶拇a的,只需要調參。如果數據小,還需要修改一下過擬合方面的東西就可以了。但是用經典機器學習做特征工程可能要改很多代碼才能做出一個非常好的特征,這就是傳統機器學習和深度學習最大的區別。

用深度學習做文本處理基本繞不開LSTM。
雖然現在有很多模型,但也采用LSTM做baseline。下面是一篇著名的介紹LSTM的文章的截圖,建議大家看一下原文。文章中最精華的就是下面四張圖,展示了LSTM的工作原理。

第一個步驟是單元狀態丟棄(如下圖)。
圖中有兩個量x_t和h_t-1。x_t就是當前的輸入,h_t-1是上一時刻的隱層的輸出。這個公式求出來一個0-1之間的值,決定要留下多少東西。(任何東西乘以0-1其實就是計算要留多少東西,乘以0什么都留不了,乘以1就都留下,乘0.8就留80%。)


第一步:單元狀態丟棄
第二步新信息的選擇。當前輸入包括上一時刻隱層的輸出和當前的輸入。這一步驟判斷應該留下來多少內容。它還是計算兩個系數,一個i_t,這也是一個0-1之間的值。第二個是C_t,表示當前cell的狀態。計算完畢后需要把這兩個系數的值保存下來。
第二步:新信息選擇
第三步是更新狀態。上面一步已經決定可以留下的新內容和老內容。這一步要決定如何組合新老內容。老內容可以乘以第一步計算出的f_t,新內容可以乘以第二步算出來的i_t,然后把新老內容相加,就是最新的狀態了。
第三步:單元狀態更新

第四步是得出最后的輸出值。Cell不會一股腦輸出,而是計算出了系數o_t和狀態相關的函數結果相乘后得出輸出。
第四步:確定輸出
以上四步定義了LSTM基本的原理。LSTM其實提出來已經很多年了,在很多場景下都經受了考驗。所以希望大家一定要把上面介紹的基礎原理了解好。

下圖顯示了基于深度學習的信息抽取技術Bi-LSTM+CRF的原理。
這個方法代表了深度學習和傳統的機器學習一個很好的結合。傳統CRF最大的問題是特征很稀疏,想做一個很好的特征要花費很多時間。我們可能會有幾套比較經典的特征,但不一定保證效果最好,特別是訓練數據發生變化以后。而詞向量和Bi-LSTM可以做很多的特征提取工作。


為什么要用Bi-LSTM而不是簡單的LSTM?舉個例子,“華為發布了新一代的麒麟處理X”這句話中,“X”一看就是處理器的“器”。因為我們都知道前文“麒麟處理”后面肯定跟著“器”。類似地,根據“X鮮和美國簽訂了新一輪的諒解備忘錄”很容易猜出X是“朝鮮”的“鮮”,這是根據后文做出的判斷。天然的語言中存在前后文的信號,都會影響當前字的選擇。Bi-LSTM可以兼顧前后文的影響,所以是從理論上來說是個很符合人類直覺的工具。

如果不用CRF,可能整體效果還不錯,但會出現很多badcase。
比如B后面出現S,S后面出現O。因為算法只考慮當前的最優輸出,沒有考慮整個序列的最優結果。而CRF是一個考慮全局的算法,也考慮到標簽間的轉移概率。所以用CRF會得到一個比較可控的結果。

總得來說,上圖介紹的Bi-LSTM+CRF方法,結合了CRF和Bi-LSTM,把“小明去達觀數據開會”這幾個字變成向量,通過中間的Bi-LSTM隱層,提取出來高維的特征,輸入CRF層,CRF最后就會給出標簽和結果。

下面我們會介紹這篇文章最重要的部分:
預訓練模型。深度學習除了不用做大量的特征工程,還可以對文本做非常好的表示。這里的例子是用Word2Vec做出詞向量,然后用TensorBoard可視化,如下圖所示。



在圖中“威?!薄ⅰ盀H坊”、“棗莊”這三個山東的城市的詞匯,被轉化成了三個低維向量,向量中的數都是浮點數,有正數也有負數。如果從空間的角度來看這三個向量,可以發現它們距離很近,說明從語義角度來看它們的含義很接近。而且我們還可以直接對這些詞向量進行計算,例如山東-威海=廣東-佛山,皇帝-皇后+女人=男人,所以詞向量是很優秀的自然語言的表征方式。

上圖用的是Word2Vec模型。
下圖還有一些其他的模型,比如Glove。這兩個模型都是靜態表示。靜態表示有天然的缺陷,例如它們很難區分“蘋果好吃”和“蘋果手機”中的兩個“蘋果”。就好像我們學技術的時候什么都想學,但因為時間是有限,所以每種技術學得都不夠深入。



所以從2018年開始,出現了很多新的預訓練模型,不少模型都用《芝麻街》里怪物的名字命名,比如ELMO、BERT和ERNIE。除此之外還有微軟的MASS,Google最新的XLNet等等。這些模型本質上都用深度學習的神經網絡做表示,雖然有的用Attention,有的用Transform,但本質差別不大。

這些模型和Word2Vec/Glove最大的區別在于它們是動態模型。
下圖是一個真實的例子。輸入“蘋果好吃”和“蘋果手機”后,用BERT對每個字建模,發現前兩個字的向量很不一樣。這說明BERT可以根據不同的上下文語境編碼每個字,或者說可以根據上下文語境對同一個字做出不同的表示。



BERT可以根據上下文,對同一個字做出不同的表示

如何選擇預訓練模型呢?我建議大家可以都嘗試一下。大部分同學都可以訓練ELMO,它的結構和LSTM很像,我們可以自己訓練一個語言模型。BERT訓練的成本就要高很多,但現在已經有一些其他的框架或語言做處理。我們自己用中文維基百科訓練BERT只用了幾天,也沒有用很多顯卡,當然我們也做了不少優化工作。可以先試著用Word2Vec看看效果,有可能效果已經很不錯。關鍵在于要找到在能力范圍內按時訓練完的模型。
抽取算法在達觀的具體實踐


下面我們分享一下在達觀的實踐中完成抽取任務的一些經驗和教訓。

首先我們要注重場景。
應用場景一般就是客戶提供的文檔,包括財務報表、基金合同等等。文檔處理的核心是自然語言處理,特別是抽取技術。我們也需要考慮實際應用,結合一些其他的工程技術,比如外部系統、分布式技術、數據庫技術等等。



第二是要解決數據不足的問題。尤其是序列標注比文本分類需要更多的標注成本,所以很可能數據量不夠。雖然目前有一些通用的數據(比如《人民日報》的數據),但針對具體的業務場景可能沒有足夠多的語料和標注數據。這時候我們就要做數據增強。數據增強是一種通用的方法,可以應用于傳統的機器學習和深度學習中。



在上圖中,我們可以看到標注數據只有三句話,黃色表示要做機構識別。怎么增加標注數據的量?我們可以直接暴力地把它們兩兩隨機組合。初聽起來可能會覺得有點不可理喻,但確實有效果。上圖中右邊的三段話中,前兩段是兩兩隨機組合,最后一段是把三句話全部混合到一起。把這些新生成的數據加入原數據起去做模型,就會發現效果的確好了很多。數據增強為什么有效?從模型的角度簡單地說,這樣可以看到更多上下文,特別是可以跨句子看到上下文,所以會有幫助。基本上寫5-10行代碼就能產生一些收益。

還有一種方法是非監督的Embeddin的學習。
下圖是我們的一個真實的例子。當時登貝萊剛轉會到巴塞羅那俱樂部。我們用標準語料去訓練,發現“登貝萊”這個名字一定會被切開,無論怎么訓練分詞都不行。潛在的解決方法之一是增加很多登貝萊相關的標注數據,但是這么做收益不足。所以我們就找了很多外部的語料做嵌入。?



如上圖所示,我們在網上找了一些登貝萊的新聞補充到《人民日報》等語料里一起訓練。在完全沒有修改,只是重新訓練了預訓練模型的情況下,“登貝萊”就成了一個詞。這說明深度學習的預訓練模型,可以非常好地捕捉到上下文,而且我們知道大部分的神經網絡的語言模型訓練是非監督學習,所以不需要很多標注數據??梢杂泻艽髷祿?。總體來說數據越多,模型會學得越準,效果越好。BERT訓練了一兩千萬的中文后,可以達到非常好的效果,我覺得這是個大力出奇跡的模型。

除了NER,還可以抽取別的內容。
例如知識圖譜就要做關系抽取。輸入一句話,“美國總統特朗普將考察蘋果公司,該公司由喬布斯創立”,怎么抽取關系?有兩種方法。一種方式是把實體抽出來,然后兩兩實體做一些分類,分到一些關系里面。另一種依靠序列標注,也就是基于聯合標注的方法。這么做的好處是不用修改標注框架。



我們總結一下本文內容。在實際工作中,到底怎么來用深度學習挖掘文本?最重要的一點是要用預訓練模型,通過非監督數據訓練向量,提升泛化能力。雖然中間步驟難以分解,但因為深度學習有端到端的能力,所以對中間步驟要求較低。而且,深度學習能克服一些傳統模型的缺點,例如LSTM的上下文依賴就比CRF強。



但是深度學習也有一些缺點,它在小數據集上的效果難以保證,很可能會過擬合或者難以收斂。例如大家看到TensorBoard經常在抖,就是有這樣的問題。而且大家現在把深度學習調參的工作叫煉丹室,你也不知道好壞就在反復調。有時候調參的工作量不亞于特征工程,特征工程至少知道在做什么,而想分析調參結果更加困難。另外深度學習對計算資源的要求更高。

所以我們最終的思考是:
第一要盡可能地收集數據、理解數據,這是所有做機器學習的同學第一步就應該做的事情。我們應該去分析數據、看數據,而不是一開始就上模型。如果不做數據清洗,好數據、亂數據、臟數據都在里面,模型是做不好的。就像教孩子一樣,如果好的壞的都教,他就不知道什么是好壞了。而且我們要分析問題的本質,選擇合適的模型。例如,對于已有數據的數據量,選先進模型有用嗎?如果沒有用,就要趕緊去收集數據。

而且在任務一開始的階段,我比較推薦大家做傳統的機器學習,因為這些模型比較現成,也比較通用。
在做了一個非常好的baseline之后,你就知道底線在哪,然后再引用深度學習。去年的達觀杯我們就發現很多參賽者一上來就在用深度學習,結果做了各種調參,效果還不如我們自己20行代碼的傳統的機器學習。所以剛開始的時候一定要讓傳統機器學習幫助你,這樣你更有信心做后面的事情。另外,這句話一定要送給大家:“數據決定效果上限,模型逼近此上限”,所以大家一定要重視數據清理,數據的分析真的比調參調模型收益更大。

如果遇到疑難雜癥,端到端技術經常會有驚喜,但不能保證每次都有驚喜。
大家在學習的過程中一定要關心最前沿的技術。

做機器學習肯定會遇到失敗和挫折,重要的是從挫折中總結規律才是最重要的,不要被同一個坑絆。
這樣的經驗很難依靠別人教會,因為所處的環境、場景、場合、數據不可能完全一致,所以需要有自己的思考。

最后,看完了這篇文章能做什么呢?
可以參加我們的“達觀杯”文本智能信息抽取挑戰賽。這是我們第三次組織“達觀杯”比賽。比賽的一等獎有30000元獎金,二等獎2支隊伍有10000元的獎金,三等獎有5000元的獎金,優勝獎還有3000元。除此之外,TOP30同學直接直通面試。



大家學習完以上基礎可以用我們介紹的內容做一些實踐。比賽的數據很有意思,文字經過了加密,每個字都做了一個隨機的映射。這么做的好處是可以更多地關注算法的本身,而不用去想如何補充數據。雖然補充數據在實際工作中很重要,但我們的比賽主要還是考察算法。

比賽數據有兩部分,一部分是有標注的數據,另外一部分是一個規模達到上百萬的非標注的數據。
比賽的關鍵就是如何利用這些非標注的數據來提升整個模型的效果。而這就是我們最終在實際生活和工作中遇到的問題:只有少量標注數據,但是有大量的未標注數據。歡迎大家在比賽中實際運用一些算法和理論。因為有時候光看別人的分享難以獲得深刻的理解,但是經過“達觀杯”這樣的比賽就能把知識掌握地更好。


截至目前,“達觀杯”文本信息智能抽取挑戰賽已吸引來自中、美、英、法、德等26個國家和地區的2400余名選手參賽,并將在8月15日進行第三場技術分享直播。
比賽頁面:Introductionbiendata.com


訪問上方鏈接進入比賽頁面,也可掃描二維碼進入賽事QQ群(807070500),獲取更多大賽詳情和技術直播安排。

第二部分:“達觀杯”baseline代碼分享


達觀數據工程師:


現在我們著重講一下basline代碼。baseline代碼可以在比賽網站的“數據”頁面(https://biendata.com/competition/datagrand/data/)下載。
在前一章中,高翔老師給大家提到過做命名實體識別的幾種方式:1)基于規則;2)基于機器學習;3)基于深度學習。因為這次達觀杯比賽的數據經過了特殊處理,所以沒法用基于規則的方法做。在這里我們介紹一下后兩種方法。
對于傳統的機器學習算法來說,特征工程是特別重要的一項,常常會占用我們特別多的時間。而且baseline提供的算法來說,設計特征模板也是一個重要的步驟,它會影響最后出來模型的整體效果。
而如果要用深度學習的方法做信息抽取,就需要比較多的機器資源,可能還需要更多的標注數據,才能在深度學習的算法上獲得較好的效果。

下面我們看一下baseline代碼。首先需要引入相關的庫:


import codecs import?os


整個代碼分成以下5個部分:


# 0 install crf++ https://taku910.github.io/crfpp/ #?1?train?data?in #?2?test?data?in #?3?crf?train #?4?crf?test #?5?submit?test


首先我們需要CRF++工具,大家可以到https://taku910.github.io/crfpp/下載工具。然后我們可以分析一下代碼:


第一步:處理訓練數據


#?step?1?train?data?in with codecs.open('train.txt','r', encoding='utf-8')as f: lines?=?f.readlines() results?=[] for?line?in?lines: features?=[] tags =[] samples = line.strip().split(' ') for?sample?in?samples: sample_list = sample[:-2].split('_') tag = sample[-1] features.extend(sample_list) tags.extend(['O']* len(sample_list))if tag =='o'else tags.extend(['B-'+tag]+['I-'+ tag]*(len(sample_list)-1)) results.append(dict({'features':?features,'tags':?tags})) train_write_list?=[] with?codecs.open('dg_train.txt','w',?encoding='utf-8')as?f_out: for?result?in?results: for?i?in?range(len(result['tags'])): train_write_list.append(result['features'][i]+'\t'+?result['tags'][i]+'\n') train_write_list.append('\n') f_out.writelines(train_write_list)


我們知道做命名識別相當于一個序列標注的問題,所以在這里我們需要把這個數據轉化成不同標簽集序列標注的樣式,這里有不同的幾種標簽集,這里我是用BIO去做的,大家也可以去嘗試其他方式。


在比賽中,我們的訓練集格式是幾列特征加上一列標簽的。我這里用了最基本的特征,就是字符本身的特征。不過比賽使用的不是字符本身,而是我們經過特殊處理之后每一個字的index,以及這個index對應的標簽。在比賽中,我們定義了a,b,c三種標簽,再通過中劃線連接,就是代碼中的['B-' + tag]和['I-' +tag]。
在這里大家也可以添加一些其他的特征。對于NLP來說,常見的特征包括詞性、詞頻、詞邊界、實體的邊界等。多加入幾個這樣的特征,可能會對效果有一些影響。
第二步:處理測試集


代碼如下:
???????#?step?2?test?data?in with?codecs.open('test.txt','r',?encoding='utf-8')as?f: lines?=?f.readlines() results?=[] for?line?in?lines: features?=[] sample_list?=?line.split('_') features.extend(sample_list) results.append(dict({'features':?features})) test_write_list?=[] with?codecs.open('dg_test.txt','w',?encoding='utf-8')as?f_out: for?result?in?results: for?i?in?range(len(result['features'])): test_write_list.append(result['features'][i]+'\n') test_write_list.append('\n') f_out.writelines(test_write_list)


預測集的處理方式和訓練集是一樣的,只有一點區別,測試集沒有最后一列標簽。這些都處理好了之后,我們就可以用我們安裝的CRF++工具去調用這個命令訓練。代碼如下:
第三步:CRF++訓練


???????#?3?crf?train crf_train?="crf_learn?-f?3?template.txt?dg_train.txt?dg_model" os.system(crf_train)


這里需要重點強調一下對模型影響比較大的特征模板(存儲在template.txt)。template.txt文件可以在本文最上方的鏈接[c4]?下載,文件內容如下:


???????#?Unigram U00:%x[-3,0] U01:%x[-2,0] U02:%x[-1,0] U03:%x[0,0] U04:%x[1,0] U05:%x[2,0] U06:%x[3,0] U07:%x[-2,0]/%x[-1,0]/%x[0,0] U08:%x[-1,0]/%x[0,0]/%x[1,0] U09:%x[0,0]/%x[1,0]/%x[2,0] U10:%x[-3,0]/%x[-2,0] U11:%x[-2,0]/%x[-1,0] U12:%x[-1,0]/%x[0,0] U13:%x[0,0]/%x[1,0] U14:%x[1,0]/%x[2,0] U15:%x[2,0]/%x[3,0]????? #?Bigram B


這里我們用了一個比較簡單的特征模板,取了離當前字最遠的前3個字和后3個字,以及它們之間的組合特征(如U07到U09這幾行)。我們可以看到這個模板其實特別簡單,一共只有16個特征。這種選擇和我們標注好的訓練集性質有關。如果研究過比賽的訓練集,就會發現數據中的實體是比較簡單的,不會涉及特別長的文本抽取,所以這里正負3已經可以取到一個比較好的特征了。我也試過用再復雜一點的模板去做,但是效果不如這個簡單的模板好。


不過,如果像之前提到的,在第一步訓練集處理的過程中加了一些其他的NLP的特征工程(比如詞性、詞頻或者詞邊界、是否是句子的結尾、是否是實體的結尾等),那么我們就需要在template文件里加入更復雜的特征。


具體來說,因為我們現在可以看U00到U06對應的都只是一個坐標,代表了當前字向前和向后的字,但是我們并沒有橫向地去取特征。如果大家加了其他的特征工程,那么在每行(如U00:%x[-3,0])后面加上這個字的其他特征,比如這個字本身及前后幾個字是否是一個停用詞,或者這一個字的前一個字是不是停用詞的特征。


除了Unigram,還可以選擇Bigram。Bigram和Unigram非常相似。但是它引入了狀態轉移函數。狀態轉移函數考慮了當前輸出標簽的前一個標簽是什么。所以它會有全局的概念。


在CRF訓練代碼crf_train = "crf_learn -f 3 template.txt dg_train.txtdg_model"中,除了template.txt外,還有其他一些參數。例如-f 3,代表Template里設定的特征函數的頻率值。如果它低于這個值的話,我是會把它刪除。這里大家可以看到我們在template.txt中只嘗試取到3個字的組合(例如文件中的U07:%x[-2,0]/%x[-1,0]/%x[0,0]),再多的都沒有了。如果大家取到4個字或者5個字的組合,這些特征是非常稀疏,對整個模型沒有很大貢獻了。所以這里我們設一個最低的值,可以把那些稀疏的特征去掉。


除了這個以外,還會有一個懲罰系數,也一定程度提高這個模型的泛化能力。
第四步:CRF++生成預測結果

??????#?4?crf?test crf_test?="crf_test?-m?dg_model?dg_test.txt?-o?dg_result.txt" os.system(crf_test)


在我們訓練好這個模型之后,就可以調用crf_test這個命令生成預測結果。
第五步:生成可提交的文件


最后一步是生成可以提交的文件,代碼如下:


???????#?5?submit?data f_write?=codecs.open('dg_submit.txt','w',?encoding='utf-8') with?codecs.open('dg_result.txt','r',?encoding='utf-8')as?f: lines?=?f.read().split('\n\n') for?line?in?lines: if?line?=='': continue tokens?=?line.split('\n') features?=[] tags?=[] for?token?in?tokens: feature_tag?=?token.split() features.append(feature_tag[0]) tags.append(feature_tag[-1]) samples?=[] i?=0 while?i?<?len(features): sample?=[] if?tags[i]=='O': sample.append(features[i]) j?=?i?+1 while?j?<?len(features)and?tags[j]=='O': sample.append(features[j]) j?+=1 samples.append('_'.join(sample)+'/o') else: if?tags[i][0]!='B': print(tags[i][0]+'error?start') j?=?i?+1 else: sample.append(features[i]) j?=?i?+1 while?j?<?len(features)and?tags[j][0]=='I'and?tags[j][-1]==?tags[i][-1]: sample.append(features[j]) j?+=1 samples.append('_'.join(sample)+'/'+tags[i][-1]) i?=?j f_write.write('??'.join(samples)+'\n')


這一步也是選手反映出現問題最多的一個步驟,因為可能大家的操作系統不同。如果用的Windows系統,split('\n\n')應該要換成split('\r\n'),然后再進行后續處理,不然是會報錯的。


除此之外,還有一些選手會反映系統總是會報各種各樣的分類錯誤和異常。我建議大家檢查換行符,保證提交的文件是3000條,不能多一行、少一行,也不能在最后一行加換行符。還有一點,雖然我們只評測a,b,c這三個類型的字段,所以/o不參與評分,但我們提交時還是要包含/o,否則也會報錯。


第三部分:問答環節


關于比賽:數據,baseline?問:比賽的訓練數據都是詞向量嗎??達觀數據工程師:不是的,由于我們數據的特殊性,我們的數據都是字符級別的。因為我們的數據已經做了脫敏處理,分詞的特征已經沒有了。?問:Baseline模型可以到多少分??達觀數據工程師:Baseline非常簡單,如果裝了CRF++工具,能夠馬上跑出來,大概能有0.85的F1。大家如果選到更好的特征模板,就能把CRF調到一個更高的分數。因為CRF本身也是很有門道的,可能需要花一些時間,不過研究一下會很有收獲。?問:比賽中提供的未標注數據有什么用?
達觀數據工程師:我的看法是用來訓練語言模型,如果你有一些別的特別酷炫的想法也可以嘗試。因為提供未標注數據的初衷,是我們看到NLP最近一年的發展,自從ELMo、BERT出現,后面還有XLNet,這些模型都是在告訴我們NLP其實也可以借鑒一下CV超大數據量預訓練模型的思路。因為在NLP領域標注的數據非常難獲取,其實NLP的數據比CV的數據更難標,但是我們有大量無監督數據,比如神奇的被翻來覆去調教了N次的維基百科,這種未監督數據量足夠大,你總能發現里面的語言學規律,這里面的規律可以用來做特征,來增強模型的泛化。特別是現在做文本相似度以及做NER等基礎任務,用了BERT以后泛化能力會提高很多,BERT現在經常被作為基礎的特征提取模型。?問:為什么我的模型分數只有 0.72??
高翔:其實就如前文所說,應該先研究一下數據,并用傳統的方法提出一些baseline模型。否則就不知道這個任務的底線,也可能會出現過擬合。我們自己內部用Python串起來十幾行代碼,就能跑到0.8+。我覺得不到0.8可能是出現了過擬合,沒有使用預訓練數據,只是使用了標注數據。所以建議先用標準模型試試,得到一個baseline,獲得一些信息,再去做一些比較復雜的模型。?比賽相關技術:調參,BERT,ELMo,LSTM和CRF?問:如何調參??高翔:這個問題特別深奧。很多情況下我們把一些同學叫“調包俠”,他們沒有很好地理解算法本質,只是在瞎調。比如我曾經遇到一個同學在LSTM里把ReLu當成激活函數。但LSTM要求輸出為0-1,而ReLu的輸出范圍是0到無窮大,所以梯度直接就爆炸了。我覺得調參有兩個重要的方面,首先是經驗的積累,這點只能靠自己;其次需要對模型和數學有一定的了解,這些不會直接告訴你如何調參,但是能給你一些靈感和方向。我也建議大家搜索一些網上的經典套路。?問:BiLSTM+CRF能用于比賽嗎?
達觀數據工程師:如果用深度模型也可以,但是我們這次比賽的數據量有點少,用深度學習模型的話很容易過擬合。目前已經有不少參賽選手反饋,用BiLSTM+CRF模型調參,不管怎樣調,結果甚至還不如CRF隨便跑一下好。這是因為我們給的訓練集只有17000條,而且并不是每一條都有標注的,所以訓練集比較少。所以大家如果要做的話,就需要嘗試用訓練語言模型的方式去做深度學習模型了。
問:BERT+BiLSTM+CRF呢?
達觀數據工程師:如果是用于我們這個比賽,我懷疑你在BERT的訓練過程中會過擬合。?問:BERT能不能把比賽數據解密??達觀數據工程師:我覺得逆向解密可能跟BERT關系不大,跟你的統計能力以及偵探小說看得多不多有關系。?問:如何使用ELMo能訓練出更好的詞向量??高翔:這個要看與什么比較。我們的實踐經驗不一定跟你相符。我們發現,ELMo訓練出來的東西的確會比Word2Vec會好,而且要好不少,但跟BERT相比還是會差一些。如果你要訓練一個不停地迭代的模型,可能花很多時間調參,但是可能沒有換掉整個模型框架的收益大。因為BERT效果的確要好很多,無論從機制還是attention思路來說,都會比簡單的LSTM這種方式做得更好。
達觀數據工程師:雖然BERT很難用于本次比賽,但我覺得ELMo也可以用在比賽里。ELMo有兩種方式,一種是自己分詞,然后再進LSTM。還有一種是直接用字向量。你其實可以跳過自己分詞,直接把每個字當成ELMo中的詞向量來訓練。比賽給出的未監督數據不可能到維基中文數據的量級。所以我個人建議是從ELMo這樣的Baseline開始,看ELMo會不會在比賽數據量規模上過擬合,如果會的話,可以把ELMo的模型復雜度自己裁剪,或者你用一些更復雜更炫酷的詞向量去拼接ELMo。?問:能否再講解一下BiLSTM+CRF?
達觀數據工程師:CRF可以做的東西,BiLSTM+CRF應該都可以做。但是這次比賽沒有給分詞的信息,所以可以用字向量來做。但是用字向量來做,一是容易過擬合(就像前文提到的數據量不是很多)。如果你們要玩這種深度學習模型,首先要面對的首要問題是過擬合,不過我們已經幫你們排除掉了最容易過擬合的事情,就是詞向量。
所以,現在只需要做字向量,而字向量的空間比詞向量少了很多。詞向量一般來說是幾萬級的,再乘以常用的200維,這樣就容易出現嚴重的過擬合。
字向量一般是千級別(比如五六千),再乘以一個100維,不過可能還是有可能會過擬合,因為我們的數據量比較少。
這次比賽做的命名實體識別,基本上給的是比較短的文本。你可以做一件很簡單的事情,就是做數據增強:隨機把2句、3句,甚至4句、5句話拼在一起。拼完以后你的實體還是在原來的位置,這樣數據量可以直接變成2倍到3倍。而現在比賽這個量級的數據做BiLSTM+CRF是一定會過擬合的。
當然,你可以有一些更神奇的操作。比如如果你懷疑過擬合主要出現在字向量層或者LSTM層的話,你可以去把字向量層的學習率調低,或者把LSTM層的學習率調低,或者加L2正則化。
另外值得一提的是,我們在比賽中給了一部分未監督語料。未監督語料量級其實也不是特別大,我前兩天在比賽群里看到有人在企圖訓練BERT,我認為這么做不是特別科學。這么小的語料訓練BERT一定是訓練不出來的。我們也有過BERT的訓練,基本上用了整個維基百科的數據。如果數據量少或者質量差的話,都會影響到BERT的訓練效果,特別是這個比賽用的數據量級會比維基百科少了太多。
語言模型從ELMo到BERT,都是數據量多大,模型能力就有多大。深度學習一定要記住這樣一件事情:數據量多大決定你要用多復雜的模型才不會過擬合。
這個問題回答有點長,但是這是一個相當廣泛的,也是一個比較實用的問題。


問:NER除了BiLSTM+CRF,還有其它方法嗎?
達觀數據工程師:BiLSTM+CRF已經是一個2015年提出來的很老的Baseline了。還有很多很酷炫的方法(比如IDCNN+CRF)也出現了挺久了。它的主要特點是性能高,在上下文關聯不是很長,而且對訓練速度要求高的情況下可以試一下。
我個人觀點,在機器學習這塊更好的思路不是唯模型論,而是一個概率編程的思路。也就是說,當你的規則很難去維護時,就說明你的數據量已經足夠去做模型了。你可以做一個很小的模型,解決一個很小的問題,然后把這些東西拼起來。?問:數據量規模和神經網絡的層數有什么關系,10萬樣本需要幾層網絡?
達觀數據工程師:這種玄學問題很難簡單地概括清楚。我覺得樣本質量比數量重要太多,有時你洗洗數據比你調一兩層模型有意義多了。
即使不考慮數據質量,相比樣本數量來說,你可以做的數據增強以及你樣本當中實際的模式也是很重要的一件事情。如果是標準的NER問題(比如抽取人名、地名、機構名這種實體),而且數據量有10萬樣本,我覺得LSTM層數差不多1-2層,最多3層就可以了。
但這是一個經驗值,如果你有足夠的時間,可以用先用BERT去微調(finetune)做一個Baseline,供其他模型參考。然后更重要的是,你怎樣去發現是否在這個數據上出現了過擬合。如果你在過擬合這個數據,很多時候并不是LSTM層數的關系。
關于隱層維度的上限,假如你說的是BiLSTM+CRF的話,它的前級特征,比如如何得到字向量和詞向量,是否有鎖定詞向量,以及數據是否有增強,比LSTM的層數重要多了。維度一般都在數百維左右。?問:能否再詳細介紹一下數據增強?
達觀數據工程師:NER的語料基本是識別一句話,比如“小姐姐某某某來到達觀數據” 和“孫楊去參加了游泳比賽”。那么現在我們有了兩條語料,你可以這兩條語料拼在一起,模型理論上還是應該給出正確結果,但是你喂給模型的語料就變成了三條。
其實模型有可能并不是在過擬合你所理解的那種模式,它其實是在記住數據中相同的東西。?問:長度過長的句子需要截斷嗎?
達觀數據工程師:這就看你怎么定義“過長”了。比如你統計下來,99%的句子都在200個字以下,你完全可以選擇在200個字截斷,或者你做了各種花式拼接以后再統計一下。如果有些特別長尾的東西,就可以在那個長度截斷。?問:深度學習和傳統的機器學習方法,哪個好?
達觀數據工程師:這個問題比較泛,深度學習和傳統機器學習方法哪個好一些?機器學習本質上是個實驗科學。我認為實驗科學的意思就是試一試哪個方法效果好,哪個方法就好。從理論上有時很難推斷出來,因為使用的數據經常千奇百怪,存在各種異常。?關于達觀數據與招聘?問:比賽排名第31能面試嗎?如何發簡歷?
高翔:如果你的成績是第31名,和第30名差了0.01,我們不在乎這種差異,可以直接來。簡歷可以發到“達觀杯”專用投遞郵箱maxinyi@datagrand.com,注明參加了“達觀杯”比賽。?問:達觀工作的氛圍如何?


達觀數據工程師:氛圍很輕松,boss是技術出身(從以往的工作經驗來看,這點很重要),但工作上又有很多挑戰,其次有很多交流學習的機會,例如每周一次的分享會,也隨時都可以和各種老司機討論問題。你可以和技術大牛們面對面切磋技藝,有更多的機會踐行人工智能領域的前沿技術。達觀技術團隊在工程和科研兩方面均實力還是比較強的。另外,公司比較務實,無級別高低之分,唯能力互相切磋;無拖沓冗長會議,皆高效工作之實。
其他的福利,水果、零食、聚餐、團建,大多互聯網公司有的也都有。另外還有年度海外游、部門團建基金、不定期各種聚餐、桌游和戶外活動。
對于NLPer來說,是一個非常好的選擇。公司正處于快速發展期,歡迎有興趣的小伙伴們加入,可以積極投遞簡歷。
問:只有CV的背景能投NLP嗎?
達觀數據工程師:我覺得可以呀,只要你是真的感興趣。

?

關于“達觀杯”


“達觀杯”大賽由國內領先的文本智能處理科技公司達觀數據主辦,面向全球范圍的學生、學者和企業研發人員,旨在通過提供業務場景、真實數據、專家指導,借助社會和學界的技術力量,進一步提升中文自然語言處理技術的研究水平,為業界選拔和培養有志于自然語言處理領域的算法研究和應用探索的青年才俊,探索更多可能、開啟無限未來。?本次“達觀杯”文本信息智能抽取挑戰賽是達觀數據舉辦的第三屆“達觀杯”算法大賽。2017年和2018年,達觀分別以“個性化推薦”和“文本分類”為主題,主辦過兩次大賽,在全國范圍內引起了很大的反響,兩次比賽吸引了海內外近萬支隊伍參賽。?本次比賽的任務是信息抽取,給定一定數量的標注語料以及海量的未標注語料,在3個字段上做信息抽取任務。截至目前,“達觀杯”文本信息智能抽取挑戰賽已吸引來自海內外2400余名選手參賽,并將在本周進行第三場賽事答疑直播和贈書活動。
比賽頁面:https://biendata.com/competition/datagrand/?source=pw2


訪問以上鏈接進入比賽頁面,可掃描下方二維碼進入賽事QQ群,獲取更多大賽詳情和技術直播安排。

??

關于達觀數據


達觀數據成立于2015年,專注于利用先進的自然語言處理、光學字符識別(OCR)、知識圖譜等技術,為大型企業和政府機構提供機器人流程自動化(RPA)、文檔智能審閱、垂直搜索、智能推薦、客戶意見洞察等智能產品,讓計算機代替人工完成業務流程自動化,大幅度提高企業效率。先后斬獲中國人工智能領域最高獎“吳文俊人工智能獎”、全球三十大最佳創業公司、中國人工智能創新企業50強等榮譽。2018年完成1.6億元B輪融資,成為語義分析人工智能細分領域獲得融資金額最多的企業。


總結

以上是生活随笔為你收集整理的万字长文详解文本抽取:从算法理论到实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品五月天 | 91麻豆.com | 亚洲精品动漫久久久久 | 久久er99热精品一区二区三区 | 在线小视频你懂的 | 国产日韩欧美精品在线观看 | 婷婷综合久久 | 欧美va天堂va视频va在线 | 久久综合狠狠综合久久激情 | 五月天九九 | 国产精品麻豆果冻传媒在线播放 | 碰超人人 | av福利在线导航 | 免费看一级黄色大全 | 三上悠亚在线免费 | 色a综合 | 免费观看一级 | 日韩精品视频免费看 | 中文字幕在线精品 | 欧美性极品xxxx做受 | 黄色成人影院 | 成人资源站| av在线成人 | 黄色国产在线观看 | 97成人在线观看视频 | 色999精品| 成人资源在线观看 | 日日爱夜夜爱 | 激情婷婷综合 | 亚洲国产视频网站 | 国产一级大片在线观看 | 天天干天天操天天入 | 在线看成人片 | 免费av在线网 | 欧美一区二区三区免费看 | 在线观看视频日韩 | 最近中文国产在线视频 | 久久久综合香蕉尹人综合网 | 丁香五月亚洲综合在线 | 国产精品一区二区 91 | 成人免费视频a | 最新av免费 | 国产高清在线免费 | 九九99| 黄色aaa级片| 国产一区二区免费在线观看 | 色婷婷免费视频 | 深夜免费福利 | 久久久久免费精品国产 | 黄色网在线免费观看 | 国产日本高清 | 久久看毛片 | 国产美女精品视频免费观看 | av大全在线看| 色婷婷色 | 国产精品久久久久久久午夜片 | 久久久久免费精品国产小说色大师 | 美女黄频视频大全 | 99久热精品 | 中文有码在线 | 亚洲高清色综合 | av成人在线看 | 中文字幕av免费 | 少妇自拍av| 亚洲一区尤物 | 天天操欧美 | 五月天六月色 | 男女免费av | 成人免费看电影 | 99久久婷婷国产综合亚洲 | 国产99久久九九精品免费 | 国产精品久久久久久久久久久久午夜 | 日韩av影视在线 | 免费观看黄 | 99热9| 久草资源免费 | 免费在线观看黄网站 | 91网在线| 久久精品久久综合 | 亚洲激情国产精品 | 91少妇精拍在线播放 | 国产亚洲欧美一区 | 视频一区二区在线观看 | 国产99久久九九精品免费 | 五月婷婷操 | 亚洲第一色 | 人人超碰人人 | 国内视频 | 欧美日韩在线视频一区二区 | 狠狠操精品 | 亚洲综合色视频在线观看 | 国产精品久久久久9999吃药 | 四虎影视www| 欧美色图亚洲图片 | 国产精品视频免费观看 | 国产日韩视频在线播放 | 丁香综合 | 亚洲精品乱码白浆高清久久久久久 | 亚洲国产精品成人综合 | 18久久久久 | 天天射天天操天天 | 麻豆视频一区 | a午夜电影| 国产高清久久久久 | 夜夜躁日日躁狠狠躁 | 最新免费av在线 | 日韩精品免费在线视频 | 丁香婷婷久久 | 亚洲午夜久久久久久久久 | 久久久精品久久日韩一区综合 | 一级黄色视屏 | 波多野结依在线观看 | 99久久99视频 | 在线观看黄色国产 | 国产精品网站一区二区三区 | 国产一级电影免费观看 | 久草久草在线 | 久草在线免费看视频 | 天天操夜夜叫 | 波多野结衣一区三区 | 国产精品一区二区av影院萌芽 | 久久99热精品这里久久精品 | 九月婷婷综合网 | 国产精品久久久久久久久久久免费 | 久草精品在线观看 | 91精品免费视频 | 国产网站在线免费观看 | 成人九九视频 | 欧美日韩国产在线 | 久久精彩免费视频 | 午夜骚影| av3级在线 | 午夜黄色 | www.av免费| 中文字幕国产视频 | 一区在线观看 | 亚洲区另类春色综合小说校园片 | 日日夜夜精品免费视频 | av一区二区三区在线播放 | 久久午夜影院 | 亚洲开心激情 | 国产精品综合av一区二区国产馆 | 天天操狠狠干 | 国产日韩高清在线 | 国产精品v欧美精品 | 亚洲精品 在线视频 | 91污污| 久久免费一级片 | 97色在线视频 | 亚洲精品资源在线观看 | 国产精品乱码一区二区视频 | 亚洲经典中文字幕 | 亚洲国产中文字幕 | 97在线观看免费高清完整版在线观看 | 国产精品免费在线 | 国产精品免费在线播放 | 国产精品久久久久久久久大全 | 成人在线免费小视频 | 亚洲精品网站在线 | 国产日韩精品一区二区三区 | 免费三级大片 | 天天综合入口 | 99久久99视频 | 美国三级黄色大片 | 天天摸日日摸人人看 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 国产精品视频在线观看 | 美女中文字幕 | 深爱激情五月综合 | 日韩精品视频在线观看网址 | 久久精品国产免费看久久精品 | 欧美精品久久久久久久久老牛影院 | 国产看片免费 | 在线精品亚洲一区二区 | 亚洲国产精品视频在线观看 | 亚洲精品中文字幕视频 | 国内精品久久久久国产 | 69视频国产 | 中文字幕乱视频 | 欧美日韩精品国产 | 国产精品21区 | 天天干天天拍 | 欧美精品一区二区三区一线天视频 | 国产精品1区2区3区在线观看 | 国产精品美女久久久久久久 | 国产一级精品在线观看 | 国产色视频一区二区三区qq号 | 成人av一区二区在线观看 | 国产成人福利片 | 免费热情视频 | www色婷婷com | 精品极品在线 | 九九热免费在线观看 | 久久综合久久综合这里只有精品 | 国产午夜精品免费一区二区三区视频 | 永久av免费在线观看 | 中文亚洲欧美日韩 | 激情综合啪 | 久久不射电影院 | 欧美一级黄色视屏 | 国产小视频你懂的 | 精品999国产| 综合天堂av久久久久久久 | 丁香婷婷综合激情 | 在线一区电影 | 五月婷婷在线视频观看 | 久久一区二区三区国产精品 | 成在人线av | 日批网站在线观看 | 亚洲国产精品一区二区久久hs | 欧美一区二区三区在线看 | 成人免费观看完整版电影 | 精品国产一区在线观看 | 欧美 亚洲 另类 激情 另类 | 亚洲激情av | 久久久久久免费 | 超碰在线观看av.com | 五月婷在线播放 | 91视频国产高清 | 99久久久久久久久久 | 欧美日韩免费观看一区=区三区 | 欧洲成人av| 手机看片99| 中文字幕视频观看 | 亚洲视频网站在线观看 | 日韩精品视频免费在线观看 | 麻豆精品国产传媒 | 国产日产av | 亚洲不卡在线 | 丁香5月婷婷 | 国产美女视频网站 | 99久久精品久久久久久动态片 | 天天做天天爱天天爽综合网 | 日韩一级网站 | 精品一区二区久久久久久久网站 | 日韩美女黄色片 | 日韩久久一区 | 在线视频亚洲 | 麻豆视频免费版 | av蜜桃在线 | 中文字幕在线观看2018 | av丁香花| 日日夜夜网 | 日韩经典一区二区三区 | 国产在线精品播放 | 色无五月 | 97视频在线观看播放 | 91麻豆精品国产自产在线游戏 | 丁香六月婷婷开心 | 在线观看国产日韩 | 在线视频观看你懂的 | 最新真实国产在线视频 | 久久九九国产精品 | 日本视频高清 | 99在线免费视频 | 最新av网址大全 | 亚洲一区精品二人人爽久久 | 天天色天天色 | 久久久国产99久久国产一 | 天天插天天狠天天透 | 亚洲另类视频 | 日韩二区在线播放 | 九九久久久久久久久激情 | 中文字幕亚洲综合久久五月天色无吗'' | 正在播放亚洲精品 | 午夜视频免费播放 | 中文字幕一区二区三区四区久久 | 成人网看片 | 天天曰天天爽 | 西西4444www大胆艺术 | 国产v在线观看 | 欧美中文字幕久久 | 精品亚洲午夜久久久久91 | 亚洲精品在线观看网站 | 国产成人精品一区二区 | 中文字幕亚洲欧美日韩2019 | 成人av电影免费在线播放 | 91精品国产高清自在线观看 | 国产免费xvideos视频入口 | 国产h片在线观看 | 久久久精品日本 | 在线国产激情视频 | 国产成人精品亚洲日本在线观看 | 婷婷丁香六月天 | 久久99偷拍视频 | 久久这里只有精品9 | 欧美二区视频 | 成 人 黄 色 片 在线播放 | 精品亚洲在线 | 不卡电影免费在线播放一区 | 国产精品视频永久免费播放 | 黄色影院在线免费观看 | 最近中文字幕第一页 | 一级黄色免费网站 | 成人黄色av免费在线观看 | 久久最新 | 国产精品专区一 | 久久久久久久久黄色 | 国产自偷自拍 | 99精品久久精品一区二区 | 久久精品国产亚洲精品 | 日韩精品一区二区免费视频 | 成人亚洲精品久久久久 | 在线国产专区 | 国产精品丝袜 | 日韩91在线 | 日本色小说视频 | 国产在线观看二区 | 欧美日韩天堂 | 91免费网址| 夜色资源站国产www在线视频 | 国产一区私人高清影院 | 18岁免费看片 | 91久久在线观看 | 久久久免费少妇 | 国产综合香蕉五月婷在线 | 国产资源在线免费观看 | 亚洲日本色 | 又紧又大又爽精品一区二区 | 四虎国产免费 | 国产精品高清免费在线观看 | 狠狠做深爱婷婷综合一区 | 色综合久久中文综合久久牛 | 99久久夜色精品国产亚洲 | 一区二区三区高清在线观看 | 精品福利国产 | 久久视频网址 | 久久成人黄色 | 久久精品视频一 | japanesefreesexvideo高潮 | 在线你懂 | 欧美日韩18 | 69精品在线观看 | 亚洲一区精品人人爽人人躁 | 婷婷射五月 | 日韩免 | 国产精品免费一区二区三区在线观看 | 国产福利一区在线观看 | 国产又黄又爽又猛视频日本 | 婷婷中文字幕综合 | 日本爽妇网 | 中文字幕观看av | 精品视频久久久 | 天天玩夜夜操 | 成人黄大片视频在线观看 | 亚洲精品麻豆 | 国产精品自产拍在线观看中文 | 欧美日韩国语 | .精品久久久麻豆国产精品 亚洲va欧美 | 亚洲精品小视频 | 久久99久久99精品中文字幕 | 欧美国产大片 | 97干com| av看片网址| 五月婷婷六月丁香激情 | 在线天堂中文在线资源网 | 一区在线播放 | 91人人揉日日捏人人看 | 五月天丁香综合 | 天天色天天色 | 激情婷婷丁香 | 91视频最新网址 | 天天操天天操天天操天天操 | 国产亚洲情侣一区二区无 | 91在线免费播放 | 男女免费视频观看 | av天天色| 亚洲成年片| 一区二区三区免费在线 | 黄色三级久久 | 精品专区| 美女视频免费一区二区 | 日韩电影在线一区 | av网址在线播放 | 久久婷亚洲五月一区天天躁 | av网站免费线看精品 | 狠狠久久婷婷 | 婷婷伊人五月 | 337p欧美 | 99精品久久只有精品 | 911免费视频 | 九九热视频在线播放 | 国产成人精品综合久久久久99 | 中文一区二区三区在线观看 | 国产一区二区电影在线观看 | 黄色一级大片在线免费看产 | 伊人成人激情 | 中文字幕 国产视频 | 婷婷丁香视频 | 97精品国产97久久久久久粉红 | 国内精品视频一区二区三区八戒 | 久久成人一区 | 国产你懂的在线 | 欧美日韩在线网站 | 日韩久久久久久 | 免费欧美高清视频 | 天天曰天天干 | 四虎国产永久在线精品 | 免费欧美精品 | 一级一片免费视频 | 在线香蕉视频 | avlulu久久精品 | 十八岁免进欧美 | 五月天com | 色中文字幕在线观看 | 精品久久久免费 | 精品特级毛片 | av一区二区三区在线观看 | 天天综合成人网 | 国产日韩欧美在线看 | 午夜精品区 | 亚洲男男gaygay无套 | 在线观看中文字幕视频 | 国产精品久久久久永久免费 | 免费国产视频 | 色婷婷国产精品一区在线观看 | 日韩在线一级 | av超碰在线 | 中文字幕欧美激情 | 成人欧美一区二区三区黑人麻豆 | 天天操天天射天天舔 | 欧美日韩国产亚洲乱码字幕 | 久久久久久久精 | 中文不卡视频 | 狠狠色丁香婷婷综合视频 | 国内毛片毛片 | 久久亚洲人 | avsex| 中文av网 | 中文字幕乱码亚洲精品一区 | 三级av网| 狠狠色丁香久久综合网 | 国语自产偷拍精品视频偷 | 国内精品久久久久久久久久清纯 | 精品一二三四在线 | 久久高视频 | 亚洲美女精品区人人人人 | 日韩在线三区 | 国产日韩在线播放 | 九九影视理伦片 | 精品一区精品二区高清 | 日韩有码中文字幕在线 | 午夜国产一区二区三区四区 | 成人亚洲精品久久久久 | 69精品视频在线观看 | 一区二区三区电影 | 草久久久久 | 在线国产激情视频 | 亚洲国内在线 | 中文字幕av有码 | 国产成人av片| 欧美在线久久 | 日韩精品在线看 | 特级西西人体444是什么意思 | 久久国内精品99久久6app | 国产一区久久久 | 在线观看亚洲精品视频 | 欧美日韩中文视频 | 亚洲成a人片77777kkkk1在线观看 | 亚洲日韩欧美一区二区在线 | 亚洲午夜av | 人人爱在线视频 | 国产精品wwwwww | 日韩有码第一页 | 天天操天天干天天爱 | 毛片网在线观看 | 久久五月天综合 | 伊人午夜视频 | 日本激情动作片免费看 | 国产精品久久久久婷婷二区次 | 在线观影网站 | 深夜免费网站 | 久久爽久久爽久久av东京爽 | 中文在线免费视频 | 天天透天天插 | 色婷婷激婷婷情综天天 | 综合久久精品 | 色综合久久久久综合体 | 日韩一二区在线观看 | 97福利视频 | 亚洲午夜精品一区二区三区电影院 | 在线 高清 中文字幕 | 久久艹精品 | 国产麻豆精品久久 | 久久在现 | 91精品国产自产在线观看永久 | 国产成人333kkk | 成人免费观看网址 | 久久久黄视频 | 激情五月av| 亚洲精品一区二区在线观看 | 久久兔费看a级 | 中文字幕观看在线 | 一区二区三区韩国免费中文网站 | 91看片黄色 | 亚洲精品在线免费看 | 日本三级不卡视频 | 一区二区中文字幕在线观看 | 热久久这里只有精品 | 日韩综合一区二区三区 | 99热99热| 欧美成人一区二区 | 亚洲精品国产拍在线 | 中文字幕在线观看视频一区 | 婷婷激情久久 | 亚洲精品456在线播放乱码 | 天天人人综合 | 丁香激情综合 | 天天操天天射天天爱 | 婷婷爱五月天 | 精品一区二区免费在线观看 | 超碰日韩在线 | 97超碰人人模人人人爽人人爱 | 69久久夜色精品国产69 | 婷婷色网站 | 日韩视频在线不卡 | 毛片网站在线观看 | 最近能播放的中文字幕 | 免费av观看 | 一区二区三区视频在线 | 国产精品观看视频 | 日韩免费高清在线观看 | 最近中文字幕免费视频 | 91视频 - 88av | 亚洲最大的av网站 | 超碰在线日本 | 国产一级在线 | 欧美在线a视频 | 欧美日韩中文在线观看 | 久久久久久久综合色一本 | 国产精品美女在线观看 | 99热亚洲精品 | 伊人色综合久久天天 | 亚洲美女视频在线观看 | 成年人黄色免费看 | 久草在线视频国产 | 久草国产视频 | 久久蜜臀一区二区三区av | 欧美va天堂va视频va在线 | 欧美日韩中文国产一区发布 | 91精品专区 | 日韩免费在线一区 | 在线小视频你懂得 | 日本三级在线观看中文字 | 国产 视频 高清 免费 | 久久国产精品系列 | 亚洲天堂毛片 | 久久精品中文视频 | 亚洲精品高清在线观看 | www.国产在线视频 | www.天天操.com | 国内精品福利视频 | 免费日韩一区二区三区 | 99在线热播精品免费 | 久草视频资源 | 久久免费在线 | 深爱开心激情 | 午夜三级在线 | 丁香六月欧美 | 久久少妇免费视频 | 成人91在线 | 国内精品久久久久久久 | 日韩高清精品免费观看 | 91福利区一区二区三区 | 精品国产成人 | 爱色av.com | 日韩在线色视频 | 日韩特黄一级欧美毛片特黄 | 亚洲伊人网在线观看 | 99人成在线观看视频 | 国内外成人在线视频 | 免费在线视频一区二区 | 青青草国产成人99久久 | 精品久久久久久亚洲综合网 | 五月天婷婷综合 | 免费在线播放黄色 | 日韩精品一区在线观看 | 91精品办公室少妇高潮对白 | 久艹在线观看视频 | 午夜男人影院 | 在线观看中文字幕第一页 | 亚洲成av人片在线观看www | 欧洲一区二区三区精品 | 免费一级日韩欧美性大片 | 91精品久久久久久久久久入口 | 欧美日韩精品电影 | 成年人国产视频 | 超碰精品在线 | 国产成人av网址 | 国产成人333kkk| 91成人网页版 | 色妞色视频一区二区三区四区 | 亚洲精品美女视频 | 日韩电影精品一区 | 91天天视频| 亚洲人成人天堂h久久 | 日日草天天草 | 五月婷婷在线综合 | 人人澡人人澡人人 | 色噜噜在线观看 | 国产福利在线免费观看 | 国模一区二区三区四区 | 国产91国语对白在线 | 在线观看第一页 | 片网址| 日本aaaa级毛片在线看 | 久久99精品国产一区二区三区 | 五月丁香 | 深夜激情影院 | 日日操天天操狠狠操 | 97超碰色| 精品国产一区二区在线 | 麻豆91网站 | www.五月婷婷 | 国产精品小视频网站 | 欧美精品久久久久久久久久 | 一级一片免费观看 | 久精品视频免费观看2 | 精品嫩模福利一区二区蜜臀 | 久久精品99国产精品酒店日本 | 四虎成人精品永久免费av | 成 人 黄 色 片 在线播放 | 免费看黄的 | 亚洲激情校园春色 | 国产精品人成电影在线观看 | 一区中文字幕在线观看 | 婷婷深爱激情 | 天天操天天综合网 | 在线免费观看视频一区二区三区 | 黄色三级免费观看 | 在线观看亚洲精品 | 国内成人综合 | 国产精品2020| 日本最新高清不卡中文字幕 | 超碰人人在线观看 | 天堂va欧美va亚洲va老司机 | 久久草在线视频国产 | 超碰97中文 | 日韩成人精品一区二区 | 在线视频精品 | 国产美女精品久久久 | a色视频| 91桃色在线播放 | 五月婷婷六月丁香在线观看 | 天天爽夜夜爽精品视频婷婷 | 亚洲永久精品国产 | 99精品在线看 | 欧美韩日精品 | 欧美精品在线观看免费 | 久久高清免费视频 | 一个色综合网站 | 久草免费色站 | 欧美亚洲专区 | 成人a毛片 | 欧美日韩高清一区 | 亚洲视频axxx | 高清不卡免费视频 | 国产一级特黄毛片在线毛片 | av大全在线看 | 久久黄色小说视频 | 日本中文字幕在线视频 | 久久精品国产亚洲精品2020 | 国产中文在线观看 | 91成人网页版 | 日本公妇在线观看 | 亚洲精品av中文字幕在线在线 | 97在线观看免费高清完整版在线观看 | 日本久久久久久科技有限公司 | 日本黄色一级电影 | 久久久久免费看 | 国产精品一区二区你懂的 | 人人干人人草 | 免费成人黄色 | 91精品国产福利 | 午夜精品电影 | 天天操夜夜叫 | 欧美性做爰猛烈叫床潮 | 99热国产在线 | 西西www4444大胆视频 | 91视频下载| 国产精品成人国产乱一区 | 500部大龄熟乱视频 欧美日本三级 | 在线а√天堂中文官网 | 天天干天天操天天射 | 伊人成人久久 | 午夜在线观看一区 | 99久久精品国产免费看不卡 | 国产在线看 | 一级黄色网址 | 国产亚洲一区二区在线观看 | 精品久久久久一区二区国产 | 国产成人福利在线 | 国产亚洲精品日韩在线tv黄 | 色婷婷激情四射 | av成人动漫在线观看 | 国产精品久久久久久爽爽爽 | 99久久免费看| 色在线视频网 | 在线成人免费 | 日本最大色倩网站www | 国产亚洲视频在线 | 成人一级免费视频 | 日日夜夜免费精品视频 | 成人作爱视频 | 久色免费视频 | 国产精品久久久久一区二区 | 午夜av激情 | 九九激情视频 | 国产精品久久久久aaaa九色 | 九九99视频 | 国产一区二区手机在线观看 | www国产亚洲精品久久网站 | 国产群p视频 | 99re国产视频 | 黄色一级影院 | 成人av高清在线 | 视频一区二区精品 | 日韩欧美视频在线 | 国产99久久久国产 | 在线观看免费版高清版 | 丝袜足交在线 | 天天色天天上天天操 | 国产精品一区久久久久 | 亚洲国产精品久久 | 国产视频一区在线 | 欧美精品久久久久久久久久白贞 | 久久精品中文字幕一区二区三区 | www.亚洲黄色 | 午夜国产在线 | 亚洲色图 校园春色 | 国产精品一区专区欧美日韩 | 天堂v中文 | 久久免费高清 | 人人干网 | 在线免费观看视频你懂的 | 一级黄色视屏 | 日韩两性视频 | 狠狠色噜噜狠狠狠狠 | 婷婷色在线视频 | 91精品国产网站 | 成人h在线播放 | 国产精品久久影院 | 最新高清无码专区 | 日日干夜夜爱 | 欧美日韩一区二区在线观看 | 久久久夜色 | 婷婷精品在线视频 | 一区二区三区在线免费观看视频 | www.五月天| 亚洲日本中文字幕在线观看 | 中文字幕a在线 | 国产综合婷婷 | 欧美日韩在线看 | 中文一区在线观看 | 91精品中文字幕 | 国产特黄色片 | 网站在线观看你们懂的 | 久久中文字幕在线视频 | 五月在线 | 亚洲综合五月 | 免费高清av在线看 | 色香天天| 亚洲一区二区三区在线看 | 色综合天天 | 91在线精品秘密一区二区 | 久久视讯 | av理论电影 | 黄色视屏在线免费观看 | 狠狠操狠狠干2017 | www.天天干| 久久手机看片 | 欧美成人h版在线观看 | 成年人视频免费在线 | 久草免费在线视频 | 97热久久免费频精品99 | 黄污网站在线 | 韩日精品视频 | 国产精品麻豆欧美日韩ww | 国产精品1区2区在线观看 | 久久久精品 一区二区三区 国产99视频在线观看 | 99精品乱码国产在线观看 | 九九涩涩av台湾日本热热 | www操操| 国产免费黄视频在线观看 | 久久久久久国产精品亚洲78 | 91视频久久| 一色屋精品视频在线观看 | 成人小视频在线 | 亚洲精品国产第一综合99久久 | 99热99| 少妇18xxxx性xxxx片 | 国产精品 中文字幕 亚洲 欧美 | 在线观看中文 | 欧美精品v国产精品v日韩精品 | 精品中文字幕在线观看 | 久久久久久久久亚洲精品 | 欧美激情综合色综合啪啪五月 | 欧美精品久久久久久久 | 日韩综合一区二区 | 免费看毛片在线 | 人人澡人人添人人爽一区二区 | 午夜av网站 | 亚洲免费视频观看 | 日韩一区视频在线 | 中文字幕在线影院 | 国产在线观看中文字幕 | 蜜臀久久99精品久久久无需会员 | 九草视频在线观看 | 婷婷五月色综合 | 免费在线播放黄色 | 丁香婷婷激情啪啪 | 亚洲精品一区二区三区在线观看 | 99久久精品免费看 | 成人黄色在线观看视频 | 五月天激情综合 | 久久精品这里热有精品 | 韩日精品中文字幕 | 国产韩国日本高清视频 | 日本夜夜草视频网站 | 国产一级片播放 | 久久99中文字幕 | а天堂中文最新一区二区三区 | 香蕉影视| 日本一区二区高清不卡 | 日夜夜精品视频 | 日韩精品在线看 | 亚洲电影自拍 | 在线观看中文字幕一区 | 丝袜精品视频 | 99精品偷拍视频一区二区三区 | 精久久久久| 在线观看亚洲视频 | 99自拍视频在线观看 | av成人在线观看 | 麻豆高清免费国产一区 | 在线观看免费日韩 | 欧美精品一区二区免费 | 日韩精品一区二区三区电影 | 在线免费观看亚洲视频 | 国产免费黄色 | 久久国产精品网站 | 色综合久久久久综合体 | 最新中文字幕视频 | 久久久国产一区二区三区四区小说 | 国产中文字幕网 | 婷婷在线网 | 亚洲欧美激情精品一区二区 | 久久综合久久综合这里只有精品 | 成人在线观看你懂的 | 中文一区二区三区在线观看 | 精品中文字幕在线观看 | 天天爽网站 | 欧美一级免费 | 欧美国产日韩激情 | 久久久色| 国产不卡免费av | 美女久久精品 | 99r在线精品 | 永久免费看av | 97热视频| 国产在线观看一区 | 中文成人字幕 | 69久久久久久久 | 久久国产精品第一页 | 日日躁夜夜躁xxxxaaaa | 精品国产a | 亚洲五月激情 | 一级国产视频 | 一级片免费观看视频 | 久久久精品一区二区 | 91网在线| 在线看免费 | 亚洲精品动漫久久久久 | 国产又粗又硬又长又爽的视频 | 国产91大片| 丝袜+亚洲+另类+欧美+变态 | 成年人视频免费在线播放 | 黄色网址国产 | 欧美性色xo影院 | 免费成人在线电影 | 黄色成人av | 日韩在线观看av | 天天激情站 | 视频一区二区在线观看 | 国产对白av | 国产淫a| 在线观看久 | 久久久久一区二区三区四区 | 成人午夜久久 | 亚洲精品久久久久中文字幕m男 | 在线黄色av电影 | 西西4444www大胆艺术 | 国产色拍拍拍拍在线精品 | 国产精品成人a免费观看 | 国产美女免费观看 | 日日爱影视 | 欧美激情第十页 | 国产精品欧美激情在线观看 | 999亚洲国产996395 | 在线成人看片 | 欧美另类xxx| 99久久精品免费看国产一区二区三区 | 日韩理论电影网 | 最近中文字幕久久 | 六月天综合网 | 中文在线免费观看 | 在线天堂8√ | 欧美大香线蕉线伊人久久 | 天天干com | 国产精品视频999 | 日本中出在线观看 | 男女啪啪网站 | 亚洲高清在线观看视频 | 中文字幕日韩免费视频 | 伊人手机在线 | 欧美成人在线免费 | 亚洲午夜久久久久久久久 | 国产福利精品视频 | 婷婷丁香六月天 | 婷婷av网| 中文字幕日韩av | 天天干com| 天天干天天干天天色 | 国产精品24小时在线观看 | 婷婷综合电影 | 2024国产在线 | 丁香五婷 | 国产伦精品一区二区三区四区视频 | 在线看国产视频 | 亚洲乱码国产乱码精品天美传媒 | 天天插天天操天天干 | 成人免费观看在线视频 | 久久久免费高清视频 | 91免费版在线 | 久热久草在线 | 亚洲黄色成人 | 色香网 | 亚洲天堂视频在线 | 免费精品在线视频 | 国产无吗一区二区三区在线欢 | 国产精品激情偷乱一区二区∴ | 日韩视频免费观看高清 | 色老板在线视频 | 一区二区精品在线视频 | 五月天婷婷在线播放 | 久久成人综合视频 | 丰满少妇麻豆av | 中文av一区二区 | 色综合夜色一区 | 亚洲午夜精品久久久 | 国产精品1区2区3区在线观看 | 五月天丁香综合 | 亚洲精品综合在线观看 | 国产精品久久久免费看 | 欧美日韩免费观看一区=区三区 | 久久亚洲成人网 | 欧美精品一二三 | 亚洲六月丁香色婷婷综合久久 | 久草视频99 | 免费v片| 3d黄动漫免费看 | 青草视频在线看 | 福利一区二区三区四区 | 波多野结衣电影一区二区 | 中文字幕一区二区三区视频 | 国产精品欧美 | 91插插插网站 | 婷婷视频在线播放 | 日韩精品视频一二三 | 精品美女在线观看 | 国产一级久久久 | 亚洲第二色 | 超碰日韩在线 | 狠狠干天天操 | 97在线超碰| 最新国产精品视频 | 国产91av视频在线观看 | 国产一级不卡视频 | 欧美激情另类 | 成人欧美亚洲 | 黄色片网站大全 | 人人澡人人草 | 国产精品初高中精品久久 | av超碰免费在线 | 国产精品久久精品 | 国产在线无 | 亚洲免费公开视频 | 免费观看国产精品 | 久久伦理电影网 | 亚洲国产精久久久久久久 | 黄色在线免费观看网址 | 夜色资源站wwwcom | 精品免费观看 | 中文字幕一区二区在线播放 | 日韩大片在线看 | 国产精品v欧美精品v日韩 | 亚洲成人av在线电影 | 日日噜噜噜噜夜夜爽亚洲精品 |