天天看點

如何使用NLP庫解析Python中的文本

作者:51CTO
如何使用NLP庫解析Python中的文本

譯者 | 陳峻

審校 | 孫淑娟

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”是一個網絡抓取庫,可用于從網際網路導入文章(文字内容)。

此時,你的螢幕會顯示如下内容:

如何使用NLP庫解析Python中的文本

2.導入文章

為了導入文章,你必須提供其對應的URL。接着,你需要輸入如下指令,來下載下傳并解析文章,以便我們稍後對其進行進一步的标記。

如何使用NLP庫解析Python中的文本

在完成後,我們将進入第3步。

3.标記文章

我們需要從轉換庫中,導入自動分詞器,然後使用T5模型(T5是一種機器學習模型),可用于文本到文本(text-to-text)的轉換(在此我們可用于解析),進而生成解析的文本。下圖展示了需要為此效果輸入的代碼。

如何使用NLP庫解析Python中的文本

4.解析文章

為了解析這篇文章,你需要建立一個特定的函數。此函數能夠接受已标記的文章,并且單獨解析每個句子。然後,在輸出之前,它會将各個句子重新連接配接到一起。

如何使用NLP庫解析Python中的文本

下圖展示了已解析文本的輸出:

如何使用NLP庫解析Python中的文本

你可以手動将其複制到文本檔案中,以增強可讀性。

這便是使用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項目實施經驗,善于對内外部資源與風險實施管控,專注傳播網絡與資訊安全知識與經驗。​

來源: 51CTO技術棧