日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

史上最详尽的NLP预处理模型汇总

發(fā)布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 史上最详尽的NLP预处理模型汇总 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

文章發(fā)布于公號【數(shù)智物語】 (ID:decision_engine),關(guān)注公號不錯過每一篇干貨。

?

?

?

轉(zhuǎn)自 | 磐創(chuàng)AI(公眾號ID:xunixs)

作者 | AI小昕

?

編者按:近年來,自然語言處理(NLP)的應用程序已經(jīng)無處不在。NLP使用率的快速增長主要歸功于通過預訓練模型實現(xiàn)的遷移學習概念,遷移學習本質(zhì)上是在一個數(shù)據(jù)集上訓練模型,然后使該模型能夠適應在不同的數(shù)據(jù)集上執(zhí)行不同的NLP操作。這一突破使得每個人都能輕松地開啟NLP任務,尤其是那些沒有時間和資源從頭開始構(gòu)建NLP模型的人。所以,使用預訓練模型處理NLP任務是目前非常熱門的研究方向,本文將重點介紹八個預訓練的NLP模型以及每個模型的相關(guān)資源。

?

01為什么要使用預訓練模型?

?

先前的研究者已經(jīng)為我們設計了一個基準模型,我們可以很方便地在自己的NLP數(shù)據(jù)集上使用該預訓練模型,而不是從頭開始構(gòu)建模型來解決類似的NLP問題。此外,使用這些最先進的預訓練模型,可以幫助我們節(jié)省大量的時間和計算資源。

?

02預訓練模型的分類

?

根據(jù)預訓練模型的應用,我們可以將其分為三類:

?

Multi-Purpose NLP Models

ULMFiT

Transformer

Google’s BERT

Transformer-XL

OpenAI’s GPT-2

?

Word Embeddings

ELMo

Flair

?

Other Pretrained Models

StanfordNLP

?

下面我們來一一看下這三個分類:

?

03

多用途NLP模型(Multi-Purpose NLP Models)

?

多用途模型是NLP領(lǐng)域的熱門話題。這些模型為我們所關(guān)注的NLP應用提供了動力——機器翻譯、問答系統(tǒng)、聊天機器人、情感分析等。這些多用途NLP模型的核心是語言建模的概念。簡單來說,語言模型的目的是預測序列中的下一個單詞或字符。我們接下來會通過以下五個預處理模型來理解這一概念,我們已經(jīng)為每個模型提供了研究論文和項目鏈接。

?

01ULMFiT

【項目地址:https://github.com/fastai/fastai/tree/master/courses/dl2/imdb_scripts】

?

ULMFiT是由JeremyHoward和DeepMind的Sebastian Ruder三位科學家提出并設計的。在文本分類任務方面,ULMFiT要優(yōu)于許多最先進的技術(shù),這個方法涉及到將一個在wikitex103數(shù)據(jù)集上訓練的預處理語言模型微調(diào)為一個新的數(shù)據(jù)集,使其不會忘記它以前學到的東西。另一方面,ULMFiT需要很少的例子就能產(chǎn)生這些令人印象深刻的結(jié)果,這使得它更容易讓人理解和實現(xiàn)。

?

?

此外,如果我們想了解更多的關(guān)于ULMFiT的信息,請參閱:

?

Tutorial on Text Classification (NLP)using ULMFiT and fastai Library in Python

【https://www.analyticsvidhya.com/blog/2018/11/tutorial-text-classification-ulmfit-fastai-library/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

Pretrained models for ULMFiT

【https://www.paperswithcode.com/paper/universal-language-model-fine-tuning-for-text】

?

Research Paper

【https://arxiv.org/abs/1801.06146[1]】

?

02Transformer

【項目地址:https://github.com/tensorflow/models/tree/master/official/transformer】

?

Transformer結(jié)構(gòu)是近幾年來NLP主要發(fā)展的核心。它在2017年由谷歌推出。當時,循環(huán)神經(jīng)網(wǎng)絡(RNN)被用于語言任務,如機器翻譯和問答系統(tǒng)等。而這種Transformer結(jié)構(gòu)要優(yōu)于RNN和CNN,且訓練模型所需的計算資源也減少了。我們可以參考以下的比較:

?

?

谷歌官方解釋說:“transformer應用了一種自我關(guān)注機制,它可以直接模擬句子中所有單詞之間的關(guān)系,而不用考慮它們的位置如何。”它使用了固定大小的上下文(也就是前面的單詞)來實現(xiàn)這一點。例如:She found the shells on the bank of the river。transformer模型可以一步理解“bank”在這里指的是海岸,而不是金融機構(gòu)。

?

通過以下資料可以學習更多有關(guān)Transformer的資源:

?

1. Google’sofficial blog post

【https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html】

?

2.?Pretrained models for Transformer

【https://www.paperswithcode.com/paper/attention-is-all-you-need】

?

3. Research Paper

【https://arxiv.org/abs/1706.03762】

?

03Google’s BERT

【項目地址:https://github.com/google-research/bert】

?

自谷歌發(fā)布結(jié)果以來,Bert框架就掀起了一股波瀾,并且還開放了源代碼背后的代碼。Bert也許不能標志著一個新的NLP時代,但毫無疑問,Bert是一個非常有用的框架,可以很好的適用于各種NLP任務。

?

?

BERT是雙向編碼器的縮寫,它考慮單詞兩側(cè)的上下文。以前的方法都是一次性考慮一個詞的一側(cè),左側(cè)或是右側(cè)。這種雙向性的方法可以有助于模型更好地理解使用單詞的上下文。此外,BERT還可以進行多任務學習,即可以同時執(zhí)行不同的NLP任務。

?

BERT是第一個用于預訓練NLP模型的無監(jiān)督方法、深度雙向系統(tǒng),但它只能使用純文本語料庫進行訓練。在發(fā)布時,BERT正在為11項自然語言處理任務生成最新的結(jié)果,可以支持用戶在短短幾個小時內(nèi)(在單個GPU上)使用BERT訓練自己的NLP模型(如:問答系統(tǒng))。

?

更多關(guān)于Google’s BERT的學習資料:

?

1. Google’sofficial blog post

【https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html】

?

2. Pretrained models for BERT

【https://www.paperswithcode.com/paper/bert-pre-training-of-deep-bidirectional#code】

?

3. Research Paper

【https://arxiv.org/pdf/1810.04805.pdf】

?

04Google’s Transformer-XL

【項目地址:https://github.com/kimiyoung/transformer-xl】

從長遠來看谷歌發(fā)布的這一版本的Transformer模型可能是NLP中一個非常重要的版本。想象一下,當你正在讀書時,突然出現(xiàn)一個單詞或句子,而這個單詞和句子在書的開頭已經(jīng)提到過來。也許我們有時可以回想起來它是什么,但計算機很難建立這種長期的依賴關(guān)系模型。正如我們上邊降到的Transformers可以很容易的做到這一點,但它是用固定長度的上下文實現(xiàn)的,也就導致了這種方式最大的缺點是沒有太多的靈活性。

?

Transformer-XL很好的彌補了這個差距,它由谷歌人工智能團隊研發(fā)的一種新型的NLP架構(gòu),可以幫助計算機理解超出固定長度限制的上下文。此外,Transformer-XL比一般的Transformers速度要快1800倍。

?

Transformer-XL在和各種語言建模的對比上,取得了不錯的結(jié)果。下圖是和其中一種模型在各類數(shù)據(jù)上的對比結(jié)果:

?

?

有關(guān)Transformer-XL的更多學習資源:

?

1. Google’s official blog post

【https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html】

?

2. Pretrained models forTransformer-XL

【https://www.paperswithcode.com/paper/transformer-xl-attentive-language-models】

?

3. Research Paper

【https://arxiv.org/abs/1901.02860】

?

05OpenAI’s GPT-2

【項目地址:https://github.com/openai/gpt-2】

?

這算是一個比較有爭議的項目,因為一些人覺得GPT-2的發(fā)布是OpenAI的一個營銷噱頭。不過,我們至少要嘗試一下OpenAI發(fā)布的代碼,這是很重要的。

?

先交代一個背景:OpenAI在2月份的時候?qū)懥艘黄┪?/p>

【鏈接為:https://openai.com/blog/better-language-models/】,聲稱他們設計了一個名為GPT-2的NLP模型,這個模型非常好,以至于他們擔心惡意使用而沒有發(fā)布完整版本的費用。這件事一下子引起了社會各界的關(guān)注。

?

GPT-2經(jīng)過訓練,可以預測40GB互聯(lián)網(wǎng)文本數(shù)據(jù)中的下一個詞。這個模型其實也是一個基于transformer訓練的模型,它訓練了一個800萬網(wǎng)頁的數(shù)據(jù)集。他們在自己的網(wǎng)站上發(fā)布的結(jié)果令人震驚:這個模型能夠根據(jù)我們輸入的幾個句子編織出一個完全清晰的故事。查看此示例:

?

?

這個結(jié)果讓人很難以置信。后來,開發(fā)人員已經(jīng)發(fā)布了一個小得多的GPT-2版本供研究人員和工程師測試。 原始模型有15億個參數(shù),開源樣本模型有1.17億個。

?

有關(guān)GPT-2的更多學習資源:

?

1. OpenAI’sofficial blog post

【https://openai.com/blog/better-language-models/】

?

2. Pretrained models for GPT-2

【https://github.com/openai/gpt-2】

?

3. Research paper

【https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf】

?

04詞嵌入向量模型(Word Embeddings)

?

我們使用的大多數(shù)機器學習和深度學習算法都無法直接處理字符串和純文本。這些技術(shù)要求我們在文本數(shù)據(jù)執(zhí)行任何任務(如回歸或分類)之前將其轉(zhuǎn)換為數(shù)字。簡單來說,Word Embeddings是將文本塊轉(zhuǎn)換為用于執(zhí)行NLP任務的數(shù)字。Word Embeddings格式通常嘗試使用字典將單詞映射到向量。

?

在本節(jié)中,我們將介紹兩個最先進的NLP單詞嵌入。我還提供了項目鏈接,這樣您就可以實際了解每個主題。

?

01ELMO

【項目地址:https://github.com/allenai/allennlp/blob/master/tutorials/how_to/elmo.md】

?

ELMo是語言模型嵌入(Embeddings from Language Models)的縮寫,在構(gòu)建NLP模型的環(huán)境中非常有用。具體來看,ELMo是一種在向量和Embeddings中表示單詞的新方法,這些ELMo Embeddings有助于我們在多個NLP任務上獲得最棒的結(jié)果,如下所示:

?

?

讓我們來了解一下ELMo的工作原理: 回想一下我們之前討論過的雙向語言模型,從中我們可以得到啟示,ELMo單詞向量是在雙層雙向語言模型(biLM)之上計算的, 這個biLM模型有兩層堆疊在一起,每層都有2次傳遞(前傳和后傳)。而ELMo單詞表示考慮用于計算單詞Emebeddings的完整輸入句子。

?

有關(guān)ELMo的更多學習資源:

?

?1.?Step-by-Step NLP Guide to Learn ELMo for ExtractingFeatures from Text

【https://www.analyticsvidhya.com/blog/2019/03/learn-to-use-elmo-to-extract-features-from-text/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

2. GitHub repository for pretrained models

【https://github.com/allenai/allennlp/blob/master/tutorials/how_to/elmo.md】

?

3. Research Paper

【https://arxiv.org/pdf/1802.05365.pdf】

?

02FLair

【項目地址:https://www.datalearner.com/blog/1051553314593568】

?

Flair不完全是一個Word Embeddings,而是一個Word Embeddings的組合。我們可以將Flair稱為NLP庫,它結(jié)合了諸如GloVe,BERT,ELMo等WordEmbeddings的內(nèi)容。由Zalando Research的優(yōu)秀人員開發(fā)并開源了代碼Flair。

?

?

此外,該團隊已經(jīng)為以下NLP任務發(fā)布了幾個預訓練模型:

1. Name-Entity Recognition (NER)

2. Parts-of-Speech Tagging (PoS)

3. Text Classification

4. Training Custom Models

?

下表格展示了其效果:

?

?

有關(guān)Flair更多的學習資源:

?

1. Introductionto Flair for NLP: A Simple yet Powerful State-of-the-Art NLP Library

【https://www.analyticsvidhya.com/blog/2019/02/flair-nlp-library-python/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

2. Pretrainedmodels for Flair

【https://github.com/zalandoresearch/flair】

?

05其它預訓練模型(Other Pretrained Models)

?

01Stanford NLP

【項目地址:https://github.com/stanfordnlp/stanfordnlp】

該作者聲明 作者聲稱StanfordNLP支持超過53種語言,真正開辟了很多在非英語語言中應用NLP技術(shù)的可能性。如:印度語、中文和日語。這對于NLP往非英語領(lǐng)域的拓展有極大的幫助。

?

?

StanfordNLP是由一系列經(jīng)過預先訓練的NLP模型組成的集合。這些模型不僅經(jīng)過實驗室的測試,還被作者用于2017年和2018年康奈爾大學的競賽。在StanfordNLP中打包的所有預訓練的NLP模型都是基于PyTorch構(gòu)建的,我們可以在自己的注釋數(shù)據(jù)上進行訓練和評估。

?

此外,我們還應該關(guān)注StanfordNLP的兩個主要原因是:

?

1. 用于執(zhí)行文本分析的完整神經(jīng)網(wǎng)絡pipeline,包括:

符號化(Tokenization)

Multi-word token (MWT)擴展

詞形還原

詞性標注(POS)和形態(tài)特征標記

依賴性解析(Dependency Parsing)

?

2. 一個穩(wěn)定的官方維護的CoreNLP Python接口

?

下面為大家提供更多的關(guān)于STanfordNLP的學習資源:

?

1. Introduction to StanfordNLP: An IncredibleState-of-the-Art NLP Library for 53 Languages (with Python code)

【https://www.analyticsvidhya.com/blog/2019/02/stanfordnlp-nlp-library-python/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

2. Pretrained models for StanfordNLP

【https://github.com/stanfordnlp/stanfordnlp】

?

【總結(jié)】:本文為大家詳細總結(jié)、概述了八個NLP的預處理模型。但現(xiàn)有的預處理模型不僅有這些,我們可以訪問:https://paperswithcode.com/,學習更多的NLP預處理模型。

?

此外,以下是學習NLP的一些有用資源:

?

1. Natural Language Processing using Python course

【https://courses.analyticsvidhya.com/courses/natural-language-processing-nlp?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

2. Certified Program: NLP for Beginners

【https://courses.analyticsvidhya.com/bundles/nlp-combo?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

3. Collection of articles on Natural Language Processing(NLP)

【https://www.analyticsvidhya.com/blog/category/nlp/?utm_source=blog&utm_medium=top-pretrained-models-nlp-article】

?

推薦閱讀:

?

?

?

星標我,每天多一點智慧

?

轉(zhuǎn)載于:https://www.cnblogs.com/shuzhiwuyu/p/10730305.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的史上最详尽的NLP预处理模型汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。