丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

基于 Python 的自動文本提取:抽象法和生成法的比較

本文作者: AI研習(xí)社-譯站 2018-10-15 11:34
導(dǎo)語:本博客是對文本摘要的簡單介紹,可以作為當(dāng)前該領(lǐng)域的實踐總結(jié)。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標題 :Text Summarization in Python: Extractive vs. Abstractive techniques revisited

翻譯 | 田棟文、二十六       整理 | 凡江

原文鏈接:https://rare-technologies.com/text-summarization-in-python-extractive-vs-abstractive-techniques-revisited/


本博客是對文本摘要的簡單介紹,可以作為當(dāng)前該領(lǐng)域的實踐總結(jié)。它描述了我們(一個RaRe 孵化計劃中由三名學(xué)生組成的團隊)是如何在該領(lǐng)域中對現(xiàn)有算法和Python工具進行了實驗。

我們將現(xiàn)有的 提取方法(Extractive)(如LexRank,LSA,Luhn和Gensim現(xiàn)有的TextRank摘要模塊)與含有51個文章摘要對的Opinosis數(shù)據(jù)集進行比較。我們還嘗試使用Tensorflow的文本摘要算法進行抽象技術(shù)(Abstractive),但由于其極高的硬件需求(7000 GPU小時,$ 30k云信用額),因此無法獲得良好的結(jié)果。


  為什么要文字摘要?

隨著推送通知和文章摘要獲得越來越多的需求,為長文本生成智能和準確的摘要已經(jīng)成為流行的研究和行業(yè)問題。

文本摘要有兩種基本方法:提取法和抽象法。前者從原始文本中提取單詞和單詞短語來創(chuàng)建摘要。后者學(xué)習(xí)內(nèi)部語言表示以生成更像人類的摘要,來解釋原始文本的意圖。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

文本摘要有兩種基本方法:提取和抽象。


  提取文本摘要

首先,簡單描述當(dāng)前已經(jīng)存在的一些流行的文本摘要算法和實現(xiàn):


Gensim中的文本摘要

gensim.summarization模塊實現(xiàn)了TextRank,這是一種Mihalcea等人的論文中基于加權(quán)圖的無監(jiān)督算法。它也被另一個孵化器學(xué)生Olavur Mortensen添加到博客 - 看看他在此博客上之前的一篇文章。它建立在Google用于排名網(wǎng)頁的流行PageRank算法的基礎(chǔ)之上。TextRank的工作原理如下:

  1. 預(yù)處理文本:刪除停止詞并補足剩余的單詞。

  2. 創(chuàng)建把句子作為頂點的圖。

  3. 通過邊緣將每個句子連接到每個其他句子。邊緣的重量是兩個句子的相似程度。

  4. 在圖表上運行PageRank算法。

  5. 選擇具有最高PageRank分數(shù)的頂點(句子)

在原始TextRank中,兩個句子之間的邊的權(quán)重是出現(xiàn)在兩個句子中的單詞的百分比。Gensim的TextRank使用Okapi BM25函數(shù)來查看句子的相似程度。它是Barrios等人的一篇論文的改進。


PyTeaser

PyTeaser是Scala項目TextTeaser的Python實現(xiàn),它是一種用于提取文本摘要的啟發(fā)式方法。

TextTeaser將分數(shù)與每個句子相關(guān)聯(lián)。該分數(shù)是從該句子中提取的特征的線性組合。TextTeaser中的特征如下:

titleFeature:文檔和句子標題共有的單詞數(shù)。

sentenceLength:TextTeaser的作者定義了一個常量“理想”(值為20),它表示摘要的理想長度,以表示字數(shù)。 sentenceLength計算為距此值的標準化距離。

sentencePosition:規(guī)范化的句子數(shù)(句子列表中的位置)。

keywordFrequency:詞袋模型中的術(shù)語頻率(刪除停用詞后)。

有關(guān)摘要的句子特征的更多信息,請參閱Jagadeesh等人的基于句子提取的單文檔摘要。


PyTextRank

PyTextRank是原始TextRank算法的python實現(xiàn),具有一些增強功能,例如使用詞形結(jié)構(gòu)而不是詞干,結(jié)合詞性標注和命名實體解析,從文章中提取關(guān)鍵短語并基于它們提取摘要句子。除了文章的摘要,PyTextRank還從文章中提取了有意義的關(guān)鍵短語。PyTextRank分四個階段工作,每個階段將輸出提供給下一個:

  1. 在第一階段,對文檔中的每個句子執(zhí)行詞性標注和詞形還原。

  2. 在第二階段,關(guān)鍵短語與其計數(shù)一起被提取,并被標準化。

  3. 通過近似句子和關(guān)鍵短語之間的jaccard距離來計算每個句子的分數(shù)。

  4. 根據(jù)最重要的句子和關(guān)鍵短語總結(jié)文檔。


Luhn的算法

該算法[ PDF ] 于1958年發(fā)布,通過考慮文檔中經(jīng)常出現(xiàn)的“重要的”單詞以及由于非重要單詞與這些單詞之間的線性距離,對摘要提取的句子進行排名。


LexRank

LexRank是一種類似于TextRank的無監(jiān)督圖形方法。LexRank使用IDF修改的余弦作為兩個句子之間的相似性度量。該相似度用作兩個句子之間的圖形邊緣的權(quán)重。LexRank還采用了智能的后處理步驟,確保為摘要選擇的頂級句子彼此不太相似。

更多關(guān)于LexRank與TextRank的比較可以在這里找到。


文本摘要中的潛在語義分析(LSA)

LSA的工作原理是將數(shù)據(jù)投影到較低維空間而不會有任何重要信息丟失。解釋該空間分解操作的一種方式是奇異向量可以捕獲并表示在語料庫中重復(fù)出現(xiàn)的單詞組合模式。奇異值的大小表示模式在文檔中的重要性。

如果奇異向量和奇異值之類的術(shù)語似乎不熟悉,我們建議這個教程,其中涵蓋了LSA的理論,如果你是初學(xué)者,其中有python的實現(xiàn)教程可以幫助到您(對于熟練的人,為了強大而快速的實現(xiàn),使用gensim中的LSA)。


  如何評估文本摘要質(zhì)量?

ROUGE-N指標

對于LexRank,Luhn和LSA方法,我們使用Sumy  摘要庫來實現(xiàn)這些算法。我們使用ROUGE-1指標來比較所討論的技術(shù)。

Rouge-N是模型和黃金摘要(gold summary)之間的單詞N-gram度量。

具體而言,它是在模型和黃金摘要中出現(xiàn)的N-gram短語的計數(shù)與在黃金摘要中出現(xiàn)的所有N-gram短語的計數(shù)的比率。

解釋它的另一種方法是作為召回值來衡量模型摘要中出現(xiàn)的黃金摘要中有多少N-gram。

通常對于摘要評估,只使用ROUGE-1和ROUGE-2(有時候ROUGE-3,如果我們有很長的黃金摘要和模型)指標,理由是當(dāng)我們增加N時,我們增加了需要在黃金摘要和模型中完全匹配的單詞短語的N-gram的長度。

例如,考慮兩個語義相似的短語“apples bananas”和“bananas apples”。如果我們使用ROUGE-1,我們只考慮單詞,這兩個短語都是相同的。但是如果我們使用ROUGE-2,我們使用雙字短語,因此“apples bananas”成為一個與“bananas apples” 不同的單一實體,導(dǎo)致“未命中”和較低的評價分數(shù)。

例:

黃金摘要:A good diet must have apples and bananas.  
模型  Apples and bananas are must for a good diet.

如果我們使用ROUGE-1,則得分為7/8 = 0.875。

對于ROUGE-2,它是4/7 = ~0.57。

上述比率可以解釋為我們的算法從所有相關(guān)信息的集合中提取的相關(guān)信息量,這正是召回(recall)的定義,因此Rouge是基于召回的。

更多關(guān)于如何計算得分的例子都在這里中。


BLEU指標

BLEU指標是一種經(jīng)過修改的精度形式,廣泛用于機器翻譯評估。

精度是黃金和模型轉(zhuǎn)換/摘要中共同出現(xiàn)的單詞數(shù)與模型摘要中單詞數(shù)的比率。與ROUGE不同,BLEU通過采用加權(quán)平均值直接考慮可變長度短語 - 一元分詞,二元分詞,三元分詞等。

實際指標只是修改精度,以避免模型的翻譯/摘要包含重復(fù)的相關(guān)信息時的問題

例:

黃金摘要:A good diet must have apples and bananas.

模型摘要:Apples and bananas are must for a good diet.

如果我們僅考慮一元分詞的BLEU指標,即一元分詞的權(quán)重為1,所有其他N-gram權(quán)重為0,我們的BLEU比率計算為7/9 = 0.778。

分別對于一元分詞和二元分詞的權(quán)重[0.6,0.4],該比率變?yōu)?.6 *(7/9)+ 0.4 *(4/8)= 0.667。


具有修正N-gram精度的 BLEU

修改的N-gram精度的關(guān)鍵是,一旦在模型摘要中識別出參考短語/單詞,就應(yīng)該將其視為耗盡。這個想法解決了模型摘要中重復(fù)/過度生成的單詞的問題。

通過首先找到單個/短語在任何單個引用中出現(xiàn)的最大次數(shù)來計算修改的N-gram精度。此計數(shù)成為該單詞/短語的最大引用計數(shù)。然后,我們通過其最大引用計數(shù)剪切每個模型詞/短語的總計數(shù),在模型轉(zhuǎn)換/摘要中添加每個單詞的剪切計數(shù),并將總和除以模型轉(zhuǎn)換/摘要中的單詞/短語的總數(shù)。

關(guān)于BLEU論文的鏈接(見上文)在其修改的N-gram精度上有很好的例子。

一句話總結(jié):ROUGE和BLEU得分越高,摘要越好。


數(shù)據(jù)集

使用51篇文章的Opinosis數(shù)據(jù)集(Opinosis指一種基于圖形的方法,針對高度冗余的意見進行抽象總結(jié))進行比較。 每篇文章都是與產(chǎn)品的功能相關(guān),如iPod的電池壽命等。這些文章是購買該產(chǎn)品客戶的評論的集合。 數(shù)據(jù)集中的每篇文章都有5個手動編寫的重點摘要。 通常5個重點摘要是不同的,但它們也可以是重復(fù)5次的相同文本。


模型參數(shù)

對于Gensim 的TextRank(Gensim一個python NLP庫,TextRank是python的文本處理工具,<span arial",sans-serif;color:red;background:="" white;font-style:normal'="">Gensim集成基于<span arial",sans-serif;color:red;background:="" white;font-style:normal'="">Textrank的文本摘要模塊),輸出總結(jié)中的單詞計數(shù)(word_count)設(shè)置為75。

對于Sumy-LSA和Sumy-Lex_rank,輸出摘要(sentence_count)中的句子數(shù)設(shè)置為2。


  結(jié)果

獲得的ROUGE-1和BLEU得分的平均值和標準差顯示在下表中。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

每個總結(jié)的ROUGE分數(shù)是在這五個(個人重要摘要)分數(shù)中的最大ROUGE分數(shù)。

對于BLEU評分,我們使用NLTK的bleu_score模塊,其中unigrams,bigrams和trigrams的權(quán)重分別為0.4,0.3,0.2。

對于具體示例,請查看Garmin 255W導(dǎo)航設(shè)備的這篇評論。 查看人工和模型生成的摘要。


  定性評估

LexRank是這兒的勝者,因為它產(chǎn)生了更好的ROUGE和BLEU得分。 不幸的是,我們發(fā)現(xiàn)它生成的總結(jié)比Gensim的TextRank和Luhn模型的總結(jié)信息量少。 此外,LexRank并不總是在ROUGE得分中擊敗TextRank 。 例如,TextRank在DUC 2002數(shù)據(jù)集上的表現(xiàn)略好于LexRank。 所以LexRank和TextRank之間的選擇取決于你的數(shù)據(jù)集,這是值得嘗試這兩者的。

從數(shù)據(jù)中推導(dǎo)的另一個結(jié)論是Gensim的Textrank優(yōu)于普通的PyTextRank,因為它在純TextRank中使用BM25函數(shù)代替了Cosine IDF函數(shù)。

該表的另一點是Luhn的算法具有較低的BLEU分數(shù)。 這是因為它提取了更長的概要,因此涵蓋了對產(chǎn)品的更多評論。 不幸的是,我們無法縮短它,因為Sumy中Luhn算法的封裝不提供更改字數(shù)限制的參數(shù)。

  抽象文本抽樣

一種神經(jīng)網(wǎng)絡(luò)方法

Google的Textsum是一種最先進的開源抽象文本概要架構(gòu)。 它可以根據(jù)前兩個句子創(chuàng)建新聞文章的頭條。

以Textsum形式的Gigaword數(shù)據(jù)集(前兩個句子,頭條)訓(xùn)練了400萬對之后,這已經(jīng)展示出了良好的結(jié)果。 在訓(xùn)練期間,它根據(jù)文章的前兩句優(yōu)化了概要的可能性。 編碼層和語言模塊是同時訓(xùn)練。 為了生成概要,它搜索所有可能概要的地方,以找到給定文章的最可能的單詞序列。

以下是用于訓(xùn)練TextSum模型以及模型生成的概要的數(shù)據(jù)示例。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

請注意“head”一詞不會出現(xiàn)在原始文本中。 該模型已生成它。 這在以上幾種的提取算法中永遠不會發(fā)生。

我們運行了谷歌提供的Tensorflow網(wǎng)絡(luò)并調(diào)整了一些超參數(shù)。 不幸的是,我們僅僅能在需要的時間內(nèi)訓(xùn)練模型10%,并獲得質(zhì)量非常低的概要。 由于這個獲得的概要沒有任何意義,我們甚至無法使用上面的ROUGE和BLEU分數(shù)。

為了比較對神經(jīng)網(wǎng)絡(luò)架構(gòu)的不同調(diào)整,我們不得不求助于使用適合訓(xùn)練集“運行平均損失”的模型的數(shù)學(xué)測量。 可以在此要點中建立模型的平均運行損耗圖。

訓(xùn)練了多少才算夠?

Tensorflow的作者建議實施培訓(xùn)數(shù)百萬個時間步驟,以成功地在現(xiàn)他們的結(jié)果。 這意味著在啟用GPU的群集上需要為期數(shù)周的培訓(xùn)時間。 谷歌自己使用10臺機器,每臺4個GPU,持續(xù)訓(xùn)練一個周。 這相當(dāng)于運行 GPU 7000個小時或3萬美元的AWS云信用。 但是在我們的處理中,我們沒有這樣的硬件資源。

此外,Google TextSum作者使用Annotated English Gigaword數(shù)據(jù)集,且數(shù)據(jù)集需要3000美元的許可證。 因此,我們使用相對較小但免費的新聞文章數(shù)據(jù)集:CNN和DailyMail來代替Annotated English Gigaword數(shù)據(jù)集。 這些320k文章被轉(zhuǎn)換成Textsum兼容格式和詞匯。 你可以通過github使用我們的代碼生成你自己的TextSum兼容的預(yù)處理CNN和DailyMail數(shù)據(jù)。

最初,使用默認參數(shù)的培訓(xùn)是在NVIDIA GTX 950M筆記本電腦上完成的,但是即使在培訓(xùn)超過48小時后算法似乎也沒有收斂。 為了加快過程并生成有意義的概要,我們切換到配備NVIDIA K520 GPU的g2.2xlarge Amazon EC2設(shè)備上。


  注意

我們不充分訓(xùn)練的TextSum模型生成的非常差的概要的一些示例。 這類似于在Pavel Surmenok的博客中訓(xùn)練TextSum的嘗試。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

某些詞語在許多概要中,然而不考慮這些詞語是否出現(xiàn)在實際文章及其在測試集中的概要中,例如, “曼徹斯特聯(lián)合”和“曼徹斯特城市”這一短語在生成的概要中重復(fù)了很多次。

另一個觀察是,最初(global_steps <50000)模型沒有生成語法正確的句子,因為我們訓(xùn)練模型的持續(xù)時間更長,生成的概要開始有意義,語法稍微變得正確。但是,生成的概要仍然與原始文章以及相應(yīng)的人為摘要完全無關(guān)。

只有在50,000個時間步之后,損失(以及概要的語義質(zhì)量)才有明顯的改善。在接近一天訓(xùn)練了100,000個時間步長之后,我們觀察了質(zhì)量 - 在這里我們使用我們的主觀理解來判斷所述質(zhì)量 – 概要總體上有所改善。即便如此,摘要顯然不符合標準??紤]到培訓(xùn)時間,這是可以預(yù)期的。該模型的作者聲稱,如果用戶愿意在所需時間和計算方面進行權(quán)衡,則可以獲得更好的結(jié)果。


  總結(jié)

對于提取技術(shù),我們的測量告訴我們:LexRank的表現(xiàn)稍優(yōu)于Gensim的TextRank,但同時我們也觀察到TextRank能夠提供更高質(zhì)量的概要。 我們認為這個使用的數(shù)據(jù)集會影響獲得的總結(jié)的質(zhì)量。 一個好的做法是運行兩種算法并使用其中一個能夠提供更令人滿意的概要的算法。 未來的方向是將Gensim的TextRank實現(xiàn)與Paco Nathan的PyTextRank進行比較。

由于缺乏GPU資源和許多優(yōu)化參數(shù),我們結(jié)束了對抽象概括的研究,在這一點上我們無法絕對推斷該模型可以用作當(dāng)前提取實現(xiàn)的替代方案。當(dāng)然,人們總是可以嘗試在幾百萬(更多)時間步長內(nèi)訓(xùn)練模型并調(diào)整一些參數(shù),以查看結(jié)果在CNN-Dailymail數(shù)據(jù)集或其他數(shù)據(jù)集上是否變的更好。

想要繼續(xù)查看該篇文章更多代碼、鏈接和參考文獻?雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

戳鏈接:

http://www.gair.link/page/TextTranslation/1069


基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

基于 Python 的自動文本提?。撼橄蠓ê蜕煞ǖ谋容^

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學(xué)習(xí)知識的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說