0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何開始使用PyTorch進行自然語言處理

智能計算芯世界 ? 來源:Exxact官方博客 ? 作者:Exxact博客 ? 2022-07-07 10:01 ? 次閱讀

隨著人工智能深度學(xué)習(xí)程序在未來幾年的蓬勃發(fā)展,自然語言處理(NLP)將日益普及,而且必要性也與日俱增。PyTorch 自然語言處理是實現(xiàn)這些程序的不錯選擇。

在本文中,我們將解決一些剛開始潛心研究自然語言處理時可能遇到的淺顯的問題,不過我們也會探討更深層次的問題,并給出恰當?shù)牟襟E,讓你可以著手開發(fā)自己的 NLP 程序。

PyTorch 可以用于 NLP 嗎?

首先,NLP 是一門應(yīng)用科學(xué)。它是工程學(xué)的一個分支,融合了人工智能、計算語言學(xué)和計算機科學(xué),旨在“理解”自然語言(即口語和書面語言)。

其次,NLP 并不是指機器學(xué)習(xí)或深度學(xué)習(xí)。相反,要教給這些人工智能程序如何處理自然語言,利用其他系統(tǒng)來處理輸入到這些程序中的內(nèi)容。

一些人工智能程序被稱為 NLP 程序只是因為這樣簡單,但嚴格來說,情況并非如此。在經(jīng)過適當?shù)挠?xùn)練后,它們能夠?qū)φZ言進行理解,但有一個完全不同的系統(tǒng)和過程在幫助這些程序理解自然語言。

這就是為什么用 PyTorch 進行自然語言處理會很方便。PyTorch 基于 Python 構(gòu)建,它的好處是有預(yù)先寫好的代碼(稱為類),而且都是圍繞 NLP 設(shè)計的。這使得整個過程對每個參與者來說都更簡單快捷。

有了這些 PyTorch 類,再加上 PyTorch 可以使用的其他各種 Python 庫,沒有比它更適合自然語言處理的機器學(xué)習(xí)框架了。

如何開始學(xué)習(xí)自然語言處理?

使用 PyTorch 進行自然語言處理,你需要熟悉 Python 編程。一旦你熟悉了 Python,就會開始接觸到大量其他可以用于各種深度學(xué)習(xí)項目的框架。不過,由于 PyTorch Tensors 的存在,用 PyTorch 進行自然語言處理成了最佳選擇。

簡單地說,tensors 允許你使用 GPU 進行計算,這可以大大提升使用 PyTorch 開發(fā)的 NLP 程序的速度和性能。這意味著你可以加快深度學(xué)習(xí)程序的訓(xùn)練速度,從而能夠利用 NLP 實現(xiàn)自己所期望的結(jié)果。

如上所述,PyTorch 為 NLP 及相關(guān)程序提供了不同的類,以保證它們良好運轉(zhuǎn)。我們將對其中的六個類及其使用場景進行分析,以便幫助你在一開始時做出正確的選擇。

1. torch.nn.RNN

我們要看的前三個類都是多層類(multi-layer classes),這意味著它們可以表示雙向遞歸神經(jīng)網(wǎng)絡(luò)。簡單來說,它允許深度學(xué)習(xí)程序從過去的狀態(tài)中學(xué)習(xí),并隨著計算繼續(xù)運行和處理從新的 / 未來的狀態(tài)中學(xué)習(xí)。這使得這些程序能夠?qū)W習(xí)和處理自然語言輸入,甚至理解更深層次的語言怪癖。

ee23ff2e-fd1f-11ec-ba43-dac502259ad0.png

torch.nn.RNN 多對多圖

torch.nn.RNN 表示循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurring Neural Network),從名字就能看出這個類能提供什么。這是 PyTorch 提供的最簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)類,剛開始進行自然語言處理時可以考慮用它。

2. torch.nn.LSTM

torch.nn.LSTM 也是一個多層 PyTorch 類。它具有 torch.nn.RNN 的所有優(yōu)點,但具有長短期記憶(Long Short Term Memory)。從本質(zhì)上講,這意味著使用這個類的深度學(xué)習(xí)程序可以超越一對一的數(shù)據(jù)點連接,對整個數(shù)據(jù)序列進行處理。

在使用 PyTorch 進行自然語言處理時,torch.nn.LSTM 是一個比較常用的類,因為它不僅可以理解手寫或打字輸入數(shù)據(jù),而且還可以識別語音和其他聲音。

能夠處理更復(fù)雜的數(shù)據(jù)序列,使該類成為希望充分利用自然語言處理潛力的程序的必要組件。

3. torch.nn.GRU

torch.nn.GRU 基于 RNN 和 LSTM 類構(gòu)建,引入了門控循環(huán)單元(Gated Recurrent Units)。簡而言之,這意味著 torch.nn.GRU 類程序有一個門控輸出。也就是說,它們的功能與 torch.nn.LSTM 類似,但可以簡單地忽略那些與其他預(yù)期結(jié)果或大多數(shù)數(shù)據(jù)集的結(jié)論不一致的數(shù)據(jù)集。

torch.nn.GRU 類程序也是一種使用 PyTorch 開始學(xué)習(xí) NLP 的好方法,因為它們比較簡單,但可以在比較短的時間內(nèi)產(chǎn)生與 torch.nn.LSTM 類似的結(jié)果。不過,如果程序忽略了對其學(xué)習(xí)可能很重要的數(shù)據(jù)集,在沒有密切監(jiān)控的情況下,它們的準確性可能會降低。

4. torch.nn.RNNCell

接下來的三個類是前面三個類的簡化版本,所以它們的功能都很接近,但優(yōu)點不同。這些類都是單元級類(cell-level classes),基本上一次運行一個操作,而不是同時處理多個數(shù)據(jù)集或序列。

ee4ac4a6-fd1f-11ec-ba43-dac502259ad0.png

使用 PyTorch 進行自然語言處理的輸出結(jié)果,該過程使用了分配給相應(yīng)圖片的單詞。這種方式比較慢,但只要有足夠的時間,結(jié)果會準確得多。RNNCell 程序仍然可以從過去和未來的狀態(tài)中學(xué)習(xí)。

5. torch.nn.LSTMCell

torch.nn.LSTMCell 的功能與普通的 torch.nn.LSTM 類相似,能夠處理數(shù)據(jù)集和序列,但不能同時處理多個。與 RNNCell 程序一樣,這意味著它速度比較慢,強度較低,但它可以隨著時間的推移提高精度。

這些單元級類中的每一個都與它們的前身差別不大,但如果要對這些差異進行深入研究的話,將遠遠超出本文的范圍。

6. torch.nn.GRUCell

用 PyTorch 進行自然語言處理時,最有趣的一個類是 torch.nn.GRUCell。它仍然具有門控輸出的功能,這意味著它可以忽略離群數(shù)據(jù)集,同時仍然可以從過去和未來的操作中學(xué)習(xí)。

可以說,這個 PyTorch 類更受初學(xué)者歡迎,因為它潛力最大,達到最佳效果的要求又最低。

要確保程序得到適當?shù)挠?xùn)練,主要的成本是時間和精力。

使用PyTorch 實現(xiàn)自然語言處理

關(guān)于如何開始使用 PyTorch 進行自然語言處理,還有很多東西需要介紹。在選擇了適合自己的深度學(xué)習(xí)模型的 PyTorch 類后,還有一個重要的因素需要了解,那就是如何在模型中實現(xiàn) NLP。

要想擁有一個經(jīng)過充分優(yōu)化的、可使用的自然語言處理深度學(xué)習(xí)模型,很明顯,將單詞編碼到模型中大概是最重要的過程之一。使用 PyTorch 進行自然語言處理時需要某種單詞編碼方法。

有很多方法可以讓模型處理單個字母,但創(chuàng)建 NLP 深度學(xué)習(xí)模型,關(guān)注的不是單個單詞和字母,而是這些單詞和短語的語義和語言學(xué)意義。下面是使用 PyTorch 實現(xiàn) NLP 的三種基本的詞嵌入模型:

簡單單詞編碼:訓(xùn)練模型關(guān)注序列中每個單獨的單詞,讓它們自己推導(dǎo)出相似性和差異性。這種方法最簡單,但可能很難讓模型準確理解或預(yù)測語義。

N-Gram 語言建模:該模型經(jīng)過訓(xùn)練,在學(xué)習(xí)單詞時會考慮到序列中的其他單詞。也就是說,它們可以學(xué)習(xí)單詞之間的關(guān)系以及在整個句子中的作用。

連續(xù)詞袋(CBOW):這是 N-Gram 語言建模的擴展版本。經(jīng)過訓(xùn)練的深度學(xué)習(xí)模型可以序列化每個單詞之前和之后設(shè)定數(shù)量的單詞,進而深入學(xué)習(xí)單詞與周圍單詞的關(guān)系以及它們在序列中的作用。到目前為止,這是使用 PyTorch 進行自然語言處理最常用的方法。

選好了 PyTorch 類和詞嵌入方法后,就可以開始在下一個深度學(xué)習(xí)項目中利用自然語言處理了!

自然語言處理是深度學(xué)習(xí)和人工智能領(lǐng)域最熱門的話題之一,許多行業(yè)都在尋找利用這種深度學(xué)習(xí)模型的方法,以供內(nèi)外部使用。

你是怎么想的?準備好用 PyTorch 解決自然語言處理的問題了嗎?

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1800

    文章

    48095

    瀏覽量

    242230
  • 自然語言處理
    +關(guān)注

    關(guān)注

    1

    文章

    624

    瀏覽量

    13736
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    808

    瀏覽量

    13513

原文標題:如何入門PyTorch自然語言處理?

文章出處:【微信號:AI_Architect,微信公眾號:智能計算芯世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    python自然語言

    最近,python自然語言是越來越火了,那么什么是自然語言。自然語言(Natural Language )廣納了眾多技術(shù),對自然或人類語言
    發(fā)表于 05-02 13:50

    【推薦體驗】騰訊云自然語言處理

    `相信大家對NLP自然語言處理的技術(shù)都不陌生,它是計算機科學(xué)領(lǐng)域和AI領(lǐng)域中的一個分支,它與計算機和人類之間使用自然語言進行交互密切相關(guān),而NLP的最終目標是使計算機能夠像人類一樣理解
    發(fā)表于 10-09 15:28

    自然語言處理語言模型

    自然語言處理——53 語言模型(數(shù)據(jù)平滑)
    發(fā)表于 04-16 11:11

    自然語言處理的詞性標注方法

    自然語言處理——78 詞性標注方法
    發(fā)表于 04-21 11:38

    自然語言處理筆記

    自然語言處理筆記9-哈工大 關(guān)毅
    發(fā)表于 06-04 16:34

    自然語言處理——總結(jié)、習(xí)題

    自然語言處理——79 總結(jié)、習(xí)題
    發(fā)表于 06-19 11:22

    什么是自然語言處理

    什么是自然語言處理?自然語言處理任務(wù)有哪些?自然語言處理的方法是什么?
    發(fā)表于 09-08 06:51

    RNN在自然語言處理中的應(yīng)用

    。深度學(xué)習(xí)的興起又讓人們重新開始研究循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network),并在序列問題和自然語言處理等領(lǐng)域取得很大的成功。本文將從循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)出發(fā),介紹RNN在
    發(fā)表于 11-28 11:41 ?5782次閱讀
    RNN在<b class='flag-5'>自然語言</b><b class='flag-5'>處理</b>中的應(yīng)用

    什么是自然語言處理_自然語言處理常用方法舉例說明

    自然語言處理是計算機科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言
    發(fā)表于 12-28 16:56 ?1.8w次閱讀
    什么是<b class='flag-5'>自然語言</b><b class='flag-5'>處理</b>_<b class='flag-5'>自然語言</b><b class='flag-5'>處理</b>常用方法舉例說明

    自然語言處理怎么最快入門_自然語言處理知識了解

    自然語言處理就是實現(xiàn)人機間自然語言通信,實現(xiàn)自然語言理解和自然語言生成是十分困難的,造成困難的根本原因是
    發(fā)表于 12-28 17:10 ?5354次閱讀

    采用深度學(xué)習(xí)對自然語言處理進行分類

    用深度學(xué)習(xí)對自然語言處理(NLP)進行分類
    的頭像 發(fā)表于 11-05 06:51 ?3336次閱讀

    PyTorch教程16.4之自然語言推理和數(shù)據(jù)集

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.4之自然語言推理和數(shù)據(jù)集.pdf》資料免費下載
    發(fā)表于 06-05 10:57 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.4之<b class='flag-5'>自然語言</b>推理和數(shù)據(jù)集

    PyTorch教程16.5之自然語言推理:使用注意力

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.5之自然語言推理:使用注意力.pdf》資料免費下載
    發(fā)表于 06-05 10:49 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.5之<b class='flag-5'>自然語言</b>推理:使用注意力

    PyTorch教程16.7之自然語言推理:微調(diào)BERT

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.7之自然語言推理:微調(diào)BERT.pdf》資料免費下載
    發(fā)表于 06-05 10:52 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.7之<b class='flag-5'>自然語言</b>推理:微調(diào)BERT

    自然語言處理的概念和應(yīng)用 自然語言處理屬于人工智能嗎

      自然語言處理(Natural Language Processing)是一種人工智能技術(shù),它是研究自然語言與計算機之間的交互和通信的一門學(xué)科。自然語言
    發(fā)表于 08-23 17:31 ?1862次閱讀