自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

達(dá)觀數(shù)據(jù):NLP概述和文本自動分類算法詳解

企業(yè)動態(tài) 算法
自然語言處理一直是人工智能領(lǐng)域的重要話題,更是2018年的熱度話題,為了在海量文本中及時準(zhǔn)確地獲得有效信息,文本分類技術(shù)獲得廣泛關(guān)注,也給大家?guī)砹烁鄳?yīng)用和想象的空間。本文根據(jù)達(dá)觀數(shù)據(jù)聯(lián)合創(chuàng)始人張健的直播內(nèi)容《NLP概述及文本自動分類算法詳解》整理而成。

自然語言處理一直是人工智能領(lǐng)域的重要話題,更是2018年的熱度話題,為了在海量文本中及時準(zhǔn)確地獲得有效信息,文本分類技術(shù)獲得廣泛關(guān)注,也給大家?guī)砹烁鄳?yīng)用和想象的空間。本文根據(jù)達(dá)觀數(shù)據(jù)聯(lián)合創(chuàng)始人張健的直播內(nèi)容《NLP概述及文本自動分類算法詳解》整理而成。

一、NLP概述

1.文本挖掘任務(wù)類型的劃分

文本挖掘任務(wù)大致分為四個類型:類別到序列、序列到類別、同步的(每個輸入位置都要產(chǎn)生輸出)序列到序列、異步的序列到序列。

同步的序列到序列的例子包括中文分詞,命名實體識別和詞性標(biāo)注。一部的序列到序列包括機(jī)器翻譯和自動摘要。序列到類別的例子包括文本分類和情感分析。類別(對象)到序列的例子包括文本生成和形象描述。

2.文本挖掘系統(tǒng)整體方案

達(dá)觀數(shù)據(jù)一直專注于文本語義,文本挖掘系統(tǒng)整體方案包含了NLP處理的各個環(huán)節(jié),從處理的文本粒度上來分,可以分為篇章級應(yīng)用、短串級應(yīng)用和詞匯級應(yīng)用。

篇章級應(yīng)用有六個方面,已經(jīng)有成熟的產(chǎn)品支持企業(yè)在不同方面的文本挖掘需求:

垃圾評論:精準(zhǔn)識別廣告、不文明用語及低質(zhì)量文本。

黃反識別:準(zhǔn)確定位文本中所含涉黃、涉政及反動內(nèi)容。

標(biāo)簽提取:提取文本中的核心詞語生成標(biāo)簽。

文章分類:依據(jù)預(yù)設(shè)分類體系對文本進(jìn)行自動歸類。

情感分析:準(zhǔn)確分析用戶透過文本表達(dá)出的情感傾向。

文章主題模型:抽取出文章的隱含主題。

為了實現(xiàn)這些頂層應(yīng)用,達(dá)觀數(shù)據(jù)掌握從詞語短串分析層面的分析技術(shù),開發(fā)了包括中文分詞、專名識別、語義分析和詞串分析等模塊。

達(dá)觀數(shù)據(jù)文本挖掘架構(gòu)圖

3.序列標(biāo)注應(yīng)用:中文分詞

同步的序列到序列,其實就是序列標(biāo)注問題,應(yīng)該說是自然語言處理中最常見的問題。序列標(biāo)注的應(yīng)用包括中文分詞、命名實體識別和詞性標(biāo)注等。序列標(biāo)注問題的輸入是一個觀測序列,輸出的是一個標(biāo)記序列或狀態(tài)序列。

舉中文分詞為例,處理“結(jié)合成分子”的觀測序列,輸出“結(jié)合/成/分子”的分詞標(biāo)記序列。針對中文分詞的這個應(yīng)用,有多種處理方法,包括基于詞典的方法、隱馬爾可夫模型 (HMM)、最大熵模型、條件隨機(jī)場(CRF)、深度學(xué)習(xí)模型(雙向LSTM等)和一些無監(jiān)督學(xué)習(xí)的方法(基于凝聚度與自由度)。

4.序列標(biāo)注應(yīng)用:NER

命名實體識別:Named Entity Recognition,簡稱NER,又稱作“專名識別”,是指識別文本中具有特定意義的實體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等。通常包括實體邊界識別和確定實體類別。

對于命名實體識別,采取不同的標(biāo)記方式,常見的標(biāo)簽方式包括IO、BIO、BMEWO和BMEWO+。其中一些標(biāo)簽含義是:

B:begin

I:一個詞的后續(xù)成分

M:中間

E:結(jié)束

W:單個詞作為實體

大部分情況下,標(biāo)簽體系越復(fù)雜準(zhǔn)確度也越高,但相應(yīng)的訓(xùn)練時間也會增加。因此需要根據(jù)實際情況選擇合適的標(biāo)簽體系。通常我們實際應(yīng)用過程中,最難解決的還是標(biāo)注問題。所以在做命名實體識別時,要考慮人工成本問題。

5.英文處理

在NLP領(lǐng)域,中文和英文的處理在大的方面都是相通的,不過在細(xì)節(jié)方面會有所差別。其中一個方面,就是中文需要解決分詞的問題,而英文天然的就沒有這個煩惱;另外一個方面,英文處理會面臨詞形還原和詞根提取的問題,英文中會有時態(tài)變換(made==>make),單復(fù)數(shù)變換(cats==>cat),詞根提取(arabic==>arab)。

在處理上面的問題過程中,不得不提到的一個工具是WordNet。WordNet是一個由普林斯頓大學(xué)認(rèn)識科學(xué)實驗室在心理學(xué)教授喬治·A·米勒的指導(dǎo)下建立和維護(hù)的英語字典。在WordNet中,名詞、動詞、形容詞和副詞各自被組織成一個同義詞的網(wǎng)絡(luò),每個同義詞集合都代表一個基本的語義概念,并且這些集合之間也由各種關(guān)系連接。我們可以通過WordNet來獲取同義詞和上位詞。

6.詞嵌入

在處理文本過程中,我們需要將文本轉(zhuǎn)化成數(shù)字可表示的方式。詞向量要做的事就是將語言數(shù)學(xué)化表示。詞向量有兩種實現(xiàn)方式:One-hot 表示,即通過向量中的一維0/1值來表示某個詞;詞嵌入,將詞轉(zhuǎn)變?yōu)楣潭ňS數(shù)的向量。

word2vec 是使用淺層和雙層神經(jīng)網(wǎng)絡(luò)產(chǎn)生生詞向量的模型,產(chǎn)生的詞嵌入實際上是語言模型的一個副產(chǎn)品,網(wǎng)絡(luò)以詞表現(xiàn),并且需猜測相鄰位置的輸入詞。word2vec中詞向量的訓(xùn)練方式有兩種,cbow(continuous bags of word)和skip-gram。cbow和skip-gram的區(qū)別在于,cbow是通過輸入單詞的上下文(周圍的詞的向量和)來預(yù)測中間的單詞,而skip-gram是輸入中間的單詞來預(yù)測它周圍的詞。

7.文檔建模

要使計算機(jī)能夠高效地處理真實文本,就必須找到一種理想的形式化表示方法,這個過程就是文檔建模。文檔建模一方面要能夠真實地反映文檔的內(nèi)容,另一方面又要對不同文檔具有區(qū)分能力。文檔建模比較通用的方法包括布爾模型、向量空間模型(VSM)和概率模型。其中最為廣泛使用的是向量空間模型。

二、文本分類的關(guān)鍵技術(shù)與重要方法

1.利用機(jī)器學(xué)習(xí)進(jìn)行模型訓(xùn)練

文本分類的流程包括訓(xùn)練、文本語義、文本特征處理、訓(xùn)練模型、模型評估和輸出模型等幾個主要環(huán)節(jié)。其中介紹一下一些主要的概念。

文檔建模:概率模型,布爾模型,VSM;

文本語義:分詞,命名實體識別,詞性標(biāo)注等;

文本特征處理:特征降維,包括使用評估函數(shù)(TF-IDF,互信息方法,期望交叉熵,QEMI,統(tǒng)計量方法,遺傳算法等);特征向量權(quán)值計算;

樣本分類訓(xùn)練:樸素貝葉斯分類器,SVM,神經(jīng)網(wǎng)絡(luò)算法,決策樹,Ensemble算法等;

模型評估:召回率,正確率,F(xiàn)-測度值;

輸出模型。

2.向量空間模型

向量空間模型是常用來處理文本挖掘的文檔建模方法。VSM概念非常直觀——把對文本內(nèi)容的處理簡化為向量空間中的向量運算,并且它以空間上的相似度表達(dá)語義的相似度,直觀易懂。

當(dāng)文檔被表示為文檔空間的向量時,就可以通過計算向量之間的相似性來度量文檔間的相似性。它的一些實現(xiàn)方式包括:

1)N-gram模型:基于一定的語料庫,可以利用N-Gram來預(yù)計或者評估一個句子是否合理;

2)TF-IDF模型:若某個詞在一篇文檔中出現(xiàn)頻率TF高,卻在其他文章中很少出現(xiàn),則認(rèn)為此詞具有很好的類別區(qū)分能力;

3)Paragraph Vector模型:其實是word vector的一種擴(kuò)展。Gensim中的Doc2Vec 以及Facebook開源的Fasttext工具也是采取了這么一種思路,它們將文本的詞向量進(jìn)行相加/求平均的結(jié)果作為Paragraph Vector。

3.文本特征提取算法

目前大多數(shù)中文文本分類系統(tǒng)都采用詞作為特征項,作為特征項的詞稱作特征詞。這些特征詞作為文檔的中間表示形式,用來實現(xiàn)文檔與文檔、文檔與用戶目標(biāo)之間的相似度計算 。如果把所有的詞都作為特征項,那么特征向量的維數(shù)將過于巨大。有效的特征提取算法,不僅能降低運算復(fù)雜度,還能提高分類的效率和精度。

文本特征提取的算法包含下面三個方面:

1)從原始特征中挑選出一些最具代表文本信息的特征,例如詞頻、TF-IDF方法;

2)基于數(shù)學(xué)方法找出對分類信息貢獻(xiàn)比較大的特征,主要例子包括互信息法、信息增益、期望交叉熵和統(tǒng)計量方法;

3)以特征量分析多元統(tǒng)計分布,例如主成分分析(PCA)。

4.文本權(quán)重計算方法

特征權(quán)重用于衡量某個特征項在文檔表示中的重要程度或區(qū)分能力的強(qiáng)弱。選擇合適的權(quán)重計算方法,對文本分類系統(tǒng)的分類效果能有較大的提升作用。

特征權(quán)重的計算方法包括:

1)TF-IDF;

2)詞性;

3)標(biāo)題;

4)位置;

5)句法結(jié)構(gòu);

6)專業(yè)詞庫;

7)信息熵;

8)文檔、詞語長度;

9)詞語間關(guān)聯(lián);

10)詞語直徑;

11)詞語分布偏差。

其中提幾點,詞語直徑是指詞語在文本中首次出現(xiàn)的位置和末次出現(xiàn)的位置之間的距離。詞語分布偏差所考慮的是詞語在文章中的統(tǒng)計分布。在整篇文章中分布均勻的詞語通常是重要的詞匯。

5.分類器設(shè)計

由于文本分類本身是一個分類問題,所以一般的模式分類方法都可以用于文本分類應(yīng)用中。

常用分類算法的思路包括下面四種:

1)樸素貝葉斯分類器:利用特征項和類別的聯(lián)合概率來估計文本的類別概率;

2)支持向量機(jī)分類器:在向量空間中找到一個決策平面,這個平面能夠最好的切割兩個分類的數(shù)據(jù)點,主要用于解決二分類問題;

3)KNN方法:在訓(xùn)練集中找到離它最近的k個臨近文本,并根據(jù)這些文本的分類來給測試文檔分類;

4)決策樹方法:將文本處理過程看作是一個等級分層且分解完成的復(fù)雜任務(wù)。

6.分類算法融合

聚合多個分類器,提高分類準(zhǔn)確率稱為Ensemble方法。

利用不同分類器的優(yōu)勢,取長補(bǔ)短,最后綜合多個分類器的結(jié)果。Ensemble可設(shè)定目標(biāo)函數(shù)(組合多個分類器),通過訓(xùn)練得到多個分類器的組合參數(shù)(并非簡單的累加或者多數(shù))。

我們這里提到的ensemble可能跟通常說的ensemble learning有區(qū)別。主要應(yīng)該是指stacking。

Stacking是指訓(xùn)練一個模型用于組合其他各個模型。即首先我們先訓(xùn)練多個不同的模型,然后再以之前訓(xùn)練的各個模型的輸出為輸入來訓(xùn)練一個模型,以得到一個最終的輸出。在處理ensemble方法的時候,需要注意幾個點?;A(chǔ)模型之間的相關(guān)性要盡可能的小,并且它們的性能表現(xiàn)不能差距太大。

多個模型分類結(jié)果如果差別不大,那么疊加效果也不明顯;或者如果單個模型的效果距離其他模型比較差,也是會對整體效果拖后腿。

三、文本分類在深度學(xué)習(xí)中的應(yīng)用

1.CNN文本分類

采取CNN方法進(jìn)行文本分類,相比傳統(tǒng)方法會在一些方面有優(yōu)勢。

基于詞袋模型的文本分類方法,沒有考慮到詞的順序。

基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)來做文本分類,可以利用到詞的順序包含的信息。如圖展示了比較基礎(chǔ)的一個用CNN進(jìn)行文本分類的網(wǎng)絡(luò)結(jié)構(gòu)。CNN模型把原始文本作為輸入,不需要太多的人工特征。CNN模型的一個實現(xiàn),共分四層:

第一層是詞向量層,doc中的每個詞,都將其映射到詞向量空間,假設(shè)詞向量為k維,則n個詞映射后,相當(dāng)于生成一張n*k維的圖像;

第二層是卷積層,多個濾波器作用于詞向量層,不同濾波器生成不同的feature map;

第三層是pooling層,取每個feature map的最大值,這樣操作可以處理變長文檔,因為第三層輸出只依賴于濾波器的個數(shù);

第四層是一個全連接的softmax層,輸出是每個類目的概率,中間一般加個dropout,防止過擬合。

有關(guān)CNN的方法一般都圍繞這個基礎(chǔ)模型進(jìn)行,再加上不同層的創(chuàng)新。

比如第一個模型在輸入層換成RNN,去獲得文本通過RNN處理之后的輸出作為卷積層的輸入。比如說第二個是在pooling層使用了動態(tài)kmax pooling,來解決樣本集合文本長度變化較大的問題。比如說第三種是極深網(wǎng)絡(luò),在卷積層做多層卷積,以獲得長距離的依賴信息。

CNN能夠提取不同長度范圍的特征,網(wǎng)絡(luò)的層數(shù)越多,意味著能夠提取到不同范圍的特征越豐富。不過CNN層數(shù)太多會有梯度彌散、梯度爆炸或者退化等一系列問題。

為了解決這些問題,極深網(wǎng)絡(luò)就通過shortcut連接。殘差網(wǎng)絡(luò)其實是由多種路徑組合的一個網(wǎng)絡(luò),殘差網(wǎng)絡(luò)其實是很多并行子網(wǎng)絡(luò)的組合,有些點評評殘差網(wǎng)絡(luò)就說它其實相當(dāng)于一個Ensembling。

2.RNN與LSTM文本分類

CNN有個問題是卷積時候是固定 filter_size ,就是無法建模更長的序列信息,雖然這個可以通過多次卷積獲得不同范圍的特征,不過要付出增加網(wǎng)絡(luò)深度的代價。

RNN的出現(xiàn)是解決變長序列信息建模的問題,它會將每一步中產(chǎn)生的信息都傳遞到下一步中。

首先我們在輸入層之上,套上一層雙向LSTM層,LSTM是RNN的改進(jìn)模型,相比RNN,能夠更有效地處理句子中單詞間的長距離影響;而雙向LSTM就是在隱層同時有一個正向LSTM和反向LSTM,正向LSTM捕獲了上文的特征信息,而反向LSTM捕獲了下文的特征信息,這樣相對單向LSTM來說能夠捕獲更多的特征信息,所以通常情況下雙向LSTM表現(xiàn)比單向LSTM或者單向RNN要好。

 

如何從物理意義上來理解求平均呢?這其實可以理解為在這一層,兩個句子中每個單詞都對最終分類結(jié)果進(jìn)行投票,因為每個BLSTM的輸出可以理解為這個輸入單詞看到了所有上文和所有下文(包含兩個句子)后作出的兩者是否語義相同的判斷,而通過Mean Pooling層投出自己寶貴的一票。

3.Attention Model與seq2seq

注意力模型Attention Model是傳統(tǒng)自編碼器的一個升級版本。傳統(tǒng)RNN的Encoder-Decoder模型,它的缺點是不管之前的context有多長,包含多少信息量,最終都要被壓縮成固定的vector,而且各個維度收到每個輸入維度的影響都是一致的。為了解決這個問題,它的idea其實是賦予不同位置的context不同的權(quán)重,越大的權(quán)重表示對應(yīng)位置的context更加重要。

現(xiàn)實中,舉一個翻譯問題:jack ma dances very well 翻譯成中文是馬云跳舞很好。其中,馬云應(yīng)該是和jack ma關(guān)聯(lián)的。

Attention Model是當(dāng)前的研究熱點,它廣泛應(yīng)用于文本生成、機(jī)器翻譯和語言模型等方面。

4.Hierarchical Attention Network

下面介紹層次化注意力網(wǎng)絡(luò)。

詞編碼層是首先把詞轉(zhuǎn)化成詞向量,然后用雙向的GRU層,可以將正向和反向的上下文信息結(jié)合起來,獲得隱藏層輸出。第二層是word attention層。attention機(jī)制的目的是要把一個句子中,對句子的含義最重要,貢獻(xiàn)最大的詞語找出來。

為了衡量單詞的重要性,我們用u_it和一個隨機(jī)初始化的上下文向量u_w的相似度來表示,然后經(jīng)過softmax操作獲得了一個歸一化的attention權(quán)重矩陣a_it,代表句子i中第t個詞的權(quán)重。結(jié)合詞的權(quán)重,句子向量s_i看作組成這些句子的詞向量的加權(quán)求和。

第三層是句子編碼層,也是通過雙向GRU層,可以將正向和反向的上下文信息結(jié)合起來,獲得隱藏層輸出。

到了第四層是句子的注意力層,同詞的注意力層差不多,也是提出了一個句子級別的上下文向量u_s,來衡量句子在文中的重要性。輸出也是結(jié)合句子的權(quán)重,全文的向量表示看做是句子向量的加權(quán)求和。

到了最后,有了全文的向量表示,我們就直接通過全連接softmax來進(jìn)行分類。

四、案例介紹

1.新聞分類

新聞分類是最常見的一種分類。其處理方法包括:

1)定制行業(yè)專業(yè)語料,定期更新語料知識庫,構(gòu)建行業(yè)垂直語義模型。

2)計算term權(quán)重,考慮到位置特征,網(wǎng)頁特征,以及結(jié)合離線統(tǒng)計結(jié)果獲取到核心的關(guān)鍵詞。

3)使用主題模型進(jìn)行語義擴(kuò)展

4)監(jiān)督與半監(jiān)督方式的文本分類

2.垃圾廣告黃反識別

垃圾廣告過濾作為文本分類的一個場景有其特殊之處,那就是它作為一種防攻擊手段,會經(jīng)常面臨攻擊用戶采取許多變換手段來繞過檢查。

處理這些變換手段有多重方法:

一是對變形詞進(jìn)行識別還原,包括要處理間雜特殊符號,同音、簡繁變換,和偏旁拆分、形近變換。

二是通過語言模型識別干擾文本,如果識別出文本是段不通順的“胡言亂語”,那么它很可能是一段用于規(guī)避關(guān)鍵字審查的垃圾文本。

三是通過計算主題和評論的相關(guān)度匹配來鑒別。

四是基于多種表達(dá)特征的分類器模型識別來提高分類的泛化能力。

3.情感分析

情感分析的處理辦法包括:

1)基于詞典的情感分析,主要是線設(shè)置情感詞典,然后基于規(guī)則匹配(情感詞對應(yīng)的權(quán)重進(jìn)行加權(quán))來識別樣本是否是正負(fù)面。

2)基于機(jī)器學(xué)習(xí)的情感分析,主要是采取詞袋模型作為基礎(chǔ)特征,并且將復(fù)雜的情感處理規(guī)則命中的結(jié)果作為一維或者多維特征,以一種更為“柔性”的方法融合到情感分析中,擴(kuò)充我們的詞袋模型。

3)使用DNN模型來進(jìn)行文本分類,解決傳統(tǒng)詞袋模型難以處理長距離依賴的缺點。

4.NLP其他應(yīng)用

NLP在達(dá)觀的其他一些應(yīng)用包括:

1)標(biāo)簽抽取;

2)觀點挖掘;

3)應(yīng)用于推薦系統(tǒng);

4)應(yīng)用于搜索引擎。

標(biāo)簽抽取有多種方式:基于聚類的方法實現(xiàn)。此外,現(xiàn)在一些深度學(xué)習(xí)的算法,通過有監(jiān)督的手段實現(xiàn)標(biāo)簽抽取功能。

就觀點挖掘而言,舉例:床很破,睡得不好。我抽取的觀點是“床破”,其中涉及到語法句法分析,將有關(guān)聯(lián)成本提取出來。

搜索及推薦,使用到NLP的地方也很多,如搜索引擎處理用戶查詢的糾錯,就用到信道噪聲模型實行糾錯處理。

最后,給喜愛NLP的朋友推薦一個賽事活動,也是達(dá)觀數(shù)據(jù)主辦的“達(dá)觀杯”文本智能處理挑戰(zhàn)賽,此次比賽以文本自動分類為賽題,如果對上文講到的算法有想練習(xí)或者想深入實踐,可拿比賽來練習(xí)充實一下,目前賽事已有近1400人參賽。點擊閱讀原文可了解比賽詳情,本周四7月26日晚還為大家準(zhǔn)備了深度學(xué)習(xí)與文本智能處理的分享直播,感興趣可掃碼入群了解詳情。

【本文為51CTO專欄作者“達(dá)觀數(shù)據(jù)”的原創(chuàng)稿件,轉(zhuǎn)載可通過51CTO專欄獲取聯(lián)系】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2018-08-08 16:08:45

深度學(xué)習(xí)機(jī)器學(xué)習(xí)NLP

2020-06-30 17:27:06

RPA應(yīng)用

2017-05-10 16:01:39

推薦系統(tǒng)算法實踐

2017-11-20 16:43:40

高斯混合模型算法K-means

2010-04-20 13:36:17

負(fù)載平衡

2017-08-01 16:44:33

機(jī)器學(xué)習(xí)算法文本挖掘

2018-02-07 16:38:27

算法自然語言文本

2017-05-04 09:01:45

達(dá)觀數(shù)據(jù)Docker部署

2019-02-18 09:00:00

TextRank算法自然語言處理Python

2017-07-03 15:22:51

達(dá)觀數(shù)據(jù)技術(shù)研究

2013-08-19 15:55:20

.Net

2017-04-27 18:09:26

item embedd推薦系統(tǒng)算法

2018-01-24 09:27:30

文本分類工具fastText

2017-04-28 09:18:39

webpackWeb搭建

2015-10-09 10:59:26

算法分類

2015-10-30 16:09:23

分類算法總結(jié)

2022-10-09 08:00:00

機(jī)器學(xué)習(xí)文本分類算法

2011-09-16 14:55:07

WLAN干擾無線干擾WLAN

2022-09-29 23:53:06

機(jī)器學(xué)習(xí)遷移學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2023-04-02 13:48:24

軟件測試NLP自動化測試
點贊
收藏

51CTO技術(shù)棧公眾號