譯者 | 陳峻
審校 | 孫淑娟
Python是一種強(qiáng)大的面向?qū)ο蟮木幊蹋╫bject-oriented programming,OOP)語(yǔ)言,在人工智能領(lǐng)域有著廣泛的用途。正是鑒于其實(shí)用性,以Google為首的大型科技公司,已經(jīng)對(duì)其開(kāi)發(fā)了Tensorflow等代碼庫(kù),幫助人們利用強(qiáng)大的機(jī)器學(xué)習(xí)算法與模型,來(lái)實(shí)現(xiàn)各種應(yīng)用目的,其中不乏各種“手語(yǔ)”解析器、摩托車頭盔檢測(cè)器、以及各種物品識(shí)別器。
而NLP(natural language processing,自然語(yǔ)言處理)是所有與理解和操縱自然語(yǔ)言相關(guān)的人工智能活動(dòng)的總稱。在Python中,就有一種被稱為Transformers的機(jī)器學(xué)習(xí)模型,可被用于獲取文本,并將文本分解為不同的組件,進(jìn)而識(shí)別出其中的重要部分。接下來(lái),我們就來(lái)討論一下作為深度學(xué)習(xí)模型的Transformer,是如何解析文本的。
一、如何使用Transformer庫(kù)在Python中解析文本?
在開(kāi)始之前,先需要擁有一個(gè)Google帳戶。為了省去在自己的計(jì)算機(jī)上安裝Python、其依賴項(xiàng)、以及IDE(integrated development environment,集成開(kāi)發(fā)環(huán)境)的麻煩,我們使用免費(fèi)的云服務(wù)環(huán)境-Google Colab筆記本,以便與不同的人使用Python進(jìn)行協(xié)作。同時(shí),由于AI代碼庫(kù)本身體量較大,并且具有較多的依賴項(xiàng),因此云端環(huán)境的使用,可以有效地節(jié)省它們對(duì)于硬盤空間的占用。
1.安裝所需的庫(kù)
首先,我們需要安裝如下四個(gè)代碼庫(kù)。打開(kāi)Colab筆記本,并在第一個(gè)代碼單元格中輸入以下內(nèi)容:
!pip install transformers
!pip install torch
!pip install sentencepiece
!pip install newspaper3k
在繼續(xù)之前,讓我們稍微了解一下這些命令。如你所知:
- “Transformers”是可被用于解析文本的深度學(xué)習(xí)模型。
- “Torch”提供了深度學(xué)習(xí)的算法。
- “Sentencepeice”可被用于“標(biāo)記化”(組件分解)文本。
- “Newspaper3k”是一個(gè)網(wǎng)絡(luò)抓取庫(kù),可用于從互聯(lián)網(wǎng)導(dǎo)入文章(文字內(nèi)容)。
此時(shí),你的屏幕會(huì)顯示如下內(nèi)容:
2.導(dǎo)入文章
為了導(dǎo)入文章,你必須提供其對(duì)應(yīng)的URL。接著,你需要輸入如下命令,來(lái)下載并解析文章,以便我們稍后對(duì)其進(jìn)行進(jìn)一步的標(biāo)記。
在完成后,我們將進(jìn)入第3步。
3.標(biāo)記文章
我們需要從轉(zhuǎn)換庫(kù)中,導(dǎo)入自動(dòng)分詞器,然后使用T5模型(T5是一種機(jī)器學(xué)習(xí)模型),可用于文本到文本(text-to-text)的轉(zhuǎn)換(在此我們可用于解析),進(jìn)而生成解析的文本。下圖展示了需要為此效果輸入的代碼。
4.解析文章
為了解析這篇文章,你需要?jiǎng)?chuàng)建一個(gè)特定的函數(shù)。此函數(shù)能夠接受已標(biāo)記的文章,并且單獨(dú)解析每個(gè)句子。然后,在輸出之前,它會(huì)將各個(gè)句子重新連接到一起。
下圖展示了已解析文本的輸出:
你可以手動(dòng)將其復(fù)制到文本文件中,以增強(qiáng)可讀性。
這便是使用NLP庫(kù)解析Python中文本的一種方式。不過(guò),這是一種相當(dāng)復(fù)雜且繁瑣的方式,尤其是對(duì)于那些不熟悉AI和Python的人來(lái)說(shuō),更是如此。此時(shí),你一定會(huì)想到,是否有一些在線解析工具,來(lái)達(dá)到該目的呢?
二、可用于在線解析的免費(fèi)工具
1.Prepostseo
Prepostseo提供了可用于各種目的且非常實(shí)用的解析工具。由于可以被免費(fèi)使用,因此你無(wú)需注冊(cè)任何類型的帳戶,即可流暢地開(kāi)始使用它。
使用該工具時(shí),你可以免費(fèi)地采用如下三種模式:
- 簡(jiǎn)單模式
- 高級(jí)模式
- 流暢模式
其中,在簡(jiǎn)單模式下,該工具只會(huì)進(jìn)行一些簡(jiǎn)單的同義化,即:多個(gè)詞會(huì)被一些同義詞所代替。
而高級(jí)模式改變的不僅僅是單詞和解析的結(jié)果。如果你不喜歡其默認(rèn)給出的結(jié)果,則可以查看它的可修改之處,并用其他的同義詞替換它。
流利模式不僅會(huì)改變單詞,而且會(huì)改變短語(yǔ)、句子結(jié)構(gòu)、以及語(yǔ)氣。但是,它并不提供編輯輸出的選項(xiàng)。
可見(jiàn),流暢模式和高級(jí)模式是更為有效的模式。若想導(dǎo)入定制的內(nèi)容,你可以上傳待解析的文檔,或者直接將文本復(fù)制粘貼到輸入字段中,并在解析過(guò)程完成后,再下載其輸出。
該工具的唯一缺點(diǎn)是會(huì)有廣告在其網(wǎng)頁(yè)上。
2.Linguix
Linguix是另一個(gè)無(wú)需注冊(cè)即可使用的免費(fèi)解析器。由于其網(wǎng)頁(yè)上并沒(méi)有任何廣告,因此它對(duì)于用戶來(lái)說(shuō)十分友好。
雖然Linguix沒(méi)能提供多種模式,但是當(dāng)你在解析一個(gè)句子時(shí),會(huì)得到多個(gè)建議,而非僅僅一條。鑒于所有建議都有可能對(duì)給定的文本產(chǎn)生不同更改,你可以選擇其中最適合的一個(gè)。
該工具的操作方法比較簡(jiǎn)單,你只需要在輸入框中寫(xiě)入待解析的文本,然后以突出顯示的方式選擇它,便可逐句獲得相應(yīng)的彈出建議。
該工具的唯一缺點(diǎn)是:你一次只能解析五個(gè)句子。
3.Paraphraser
Paraphraser.io也是一個(gè)擁有許多內(nèi)容優(yōu)化工具的在線工具包。顧名思義,它主要針對(duì)的是解析領(lǐng)域。
該工具同樣無(wú)需注冊(cè)便可被免費(fèi)使用。不過(guò),與前面提到的Prepostseo類似,你在使用過(guò)程中,也可能會(huì)被其廣告所困擾。目前,它提供了兩種免費(fèi)模式:標(biāo)準(zhǔn)模式和流暢模式。其中,標(biāo)準(zhǔn)模式只會(huì)使用同義詞去替換部分單詞,并保持整體句子的結(jié)構(gòu)不變。而流利模式除了會(huì)替換單詞和短語(yǔ),還會(huì)改變句子的結(jié)構(gòu),進(jìn)而讓文本更具有可讀性。
除了廣告,該工具的另一個(gè)缺點(diǎn)是:你一次性最多只能解析500個(gè)單詞。
三、小結(jié)
綜上所述,在使用NLP庫(kù)解析Python中的文本時(shí),我們完全可以利用人工智能和深度學(xué)習(xí)的各種模型,來(lái)實(shí)現(xiàn)轉(zhuǎn)換。你既可以使用Google Colab的強(qiáng)大云服務(wù)功能,使用Transformer庫(kù)來(lái)完成此類繁重的任務(wù);又可以選用各種在線解析工具的各種模式,以不同的方式重寫(xiě)文本。而且,此類工具大多是免費(fèi)且無(wú)需注冊(cè)。
原文鏈接:https://dzone.com/articles/how-to-paraphrase-text-in-python-using-nlp-librari
譯者介紹
陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對(duì)內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。