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