RM新时代网站-首页

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

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

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

如何開始使用PyTorch進(jìn)行自然語言處理

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

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

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

PyTorch 可以用于 NLP 嗎?

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

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

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

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

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

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

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

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

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

1. torch.nn.RNN

我們要看的前三個(gè)類都是多層類(multi-layer classes),這意味著它們可以表示雙向遞歸神經(jīng)網(wǎng)絡(luò)。簡單來說,它允許深度學(xué)習(xí)程序從過去的狀態(tài)中學(xué)習(xí),并隨著計(jì)算繼續(xù)運(yùn)行和處理從新的 / 未來的狀態(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),從名字就能看出這個(gè)類能提供什么。這是 PyTorch 提供的最簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)類,剛開始進(jìn)行自然語言處理時(shí)可以考慮用它。

2. torch.nn.LSTM

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

在使用 PyTorch 進(jìn)行自然語言處理時(shí),torch.nn.LSTM 是一個(gè)比較常用的類,因?yàn)樗粌H可以理解手寫或打字輸入數(shù)據(jù),而且還可以識別語音和其他聲音。

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

3. torch.nn.GRU

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

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

4. torch.nn.RNNCell

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

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

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

5. torch.nn.LSTMCell

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

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

6. torch.nn.GRUCell

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

可以說,這個(gè) PyTorch 類更受初學(xué)者歡迎,因?yàn)樗鼭摿ψ畲?,達(dá)到最佳效果的要求又最低。

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

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

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

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

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

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

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

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

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

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

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

審核編輯:劉清

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

    關(guān)注

    1791

    文章

    47183

    瀏覽量

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

    關(guān)注

    1

    文章

    618

    瀏覽量

    13552
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    13200

原文標(biāo)題:如何入門PyTorch自然語言處理?

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

收藏 人收藏

    評論

    相關(guān)推薦

    python自然語言

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

    【推薦體驗(yàn)】騰訊云自然語言處理

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

    自然語言處理語言模型

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

    自然語言處理的詞性標(biāo)注方法

    自然語言處理——78 詞性標(biāo)注方法
    發(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 ?5697次閱讀
    RNN在<b class='flag-5'>自然語言</b><b class='flag-5'>處理</b>中的應(yīng)用

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

    自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jì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>常用方法舉例說明

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

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程16.4之自然語言推理和數(shù)據(jù)集.pdf》資料免費(fèi)下載
    發(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èi)下載
    發(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èi)下載
    發(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ù),它是研究自然語言與計(jì)算機(jī)之間的交互和通信的一門學(xué)科。自然語言
    發(fā)表于 08-23 17:31 ?1553次閱讀
    RM新时代网站-首页