自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Manning大神牽頭,斯坦福開源Python版NLP庫Stanza:涵蓋66種語言

新聞 開源
對(duì)于斯坦福 NLP 庫,我們一定不會(huì)陌生,但是這一庫主要基于 Java。近日,Christopher Manning 所在的斯坦福 NLP 組開源了 Python 版的工具包——Stanza,讓 Python 生態(tài)系統(tǒng)又增添了一員 NLP 大將。

 對(duì)于斯坦福 NLP 庫,我們一定不會(huì)陌生,但是這一庫主要基于 Java。近日,Christopher Manning 所在的斯坦福 NLP 組開源了 Python 版的工具包——Stanza,讓 Python 生態(tài)系統(tǒng)又增添了一員 NLP 大將。

我們都知道斯坦福 NLP 組的開源工具——這是一個(gè)包含了各種 NLP 工具的代碼庫。近日,他們公開了 Python 版本的工具,名為 Stanza。該庫有 60 多種語言的模型,可進(jìn)行命名實(shí)體識(shí)別等 NLP 任務(wù)。一經(jīng)開源,便引起了社區(qū)的熱議。李飛飛就在推特上點(diǎn)贊了這個(gè)項(xiàng)目。

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

目前,該項(xiàng)目可直接從 pip 進(jìn)行安裝。

項(xiàng)目地址:https://github.com/stanfordnlp/stanza

現(xiàn)有模型和支持的 NLP 任務(wù)

Stanza 包含了 60 多種語言模型,在 Universal Dependencies v2.5 數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練。這些模型包括簡(jiǎn)體、繁體、古文中文,英語、法語、西班牙語、德語、日語、韓語、阿拉伯語等,甚至還有北薩米語等不太常見的語言。

除了語言模型外,Stanza 還支持了數(shù)十種語言的敏敏實(shí)體識(shí)別模型。完整列表如下:

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

據(jù) Stanza 的論文介紹,Stanza 涵蓋了多個(gè)自然語言處理任務(wù),如分詞、詞性標(biāo)注、依存句法分析、命名實(shí)體識(shí)別等。此外,它還提供了 Pyhton 界面,用來和我們熟悉的 Stanford CoreNLP 庫進(jìn)行交互,從而擴(kuò)展了已有的功能。

另外值得注意的是,Stanza 是完全基于神經(jīng)網(wǎng)絡(luò) pipeline 的。研究者在 112 個(gè)數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練,但使用的是同一個(gè)模型架構(gòu)。他們發(fā)現(xiàn),同樣一個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)可以泛化得很好。網(wǎng)絡(luò)在所有語言上的性能都很好。整個(gè)神經(jīng)網(wǎng)絡(luò) pipeline 都是通過 PyTorch 實(shí)現(xiàn)的。

運(yùn)行 Stanza

神經(jīng)網(wǎng)絡(luò) pipeline 入門

要運(yùn)行首個(gè) Stanza pipeline,只需要在 python 解釋器 z 中進(jìn)行操作:

  1. >>> import stanza  
  2. >>> stanza.download('en') # This downloads the English models for the neural pipeline# IMPORTANT: The above line prompts you before downloading, which doesn't work well in a Jupyter notebook.# To avoid a prompt when using notebooks, instead use: >>> stanza.download('en', force=True)  
  3. >>> nlp = stanza.Pipeline() # This sets up a default neural pipeline in English  
  4. >>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")  
  5. >>> doc.sentences[0].print_dependencies()  

而最后一條指令將輸出當(dāng)時(shí)輸入字符串中第一個(gè)句子中的詞(或是 Stanza 中表示的 Document),以及在該句的 Universal Dependencies parse(其「head」部分)中控制該詞的索引,以及詞之前的依賴關(guān)系。輸出如下:

  1. ('Barack''4''nsubj:pass'
  2. ('Obama''1''flat'
  3. ('was''4''aux:pass'
  4. ('born''0''root'
  5. ('in''6''case'
  6. ('Hawaii''4''obl'
  7. ('.''4''punct'

入門指南里會(huì)有更多詳細(xì)信息。

訪問 Java Stanford Core NLP 軟件

除了神經(jīng) Pipeline,該軟件包還包括一個(gè)官方包,用于使用 Python 代碼訪問 Java Stanford CoreNLP 軟件。

初始設(shè)置:

  • 下載 Stanford CoreNLP 以及想要使用的語言模型;
  • 將模型放入分配的文件夾中;
  • 通過設(shè)置 CORENLP_HOME 環(huán)境變量(如在*nix 中):export CORENLP_HOME=/path/to/stanford-corenlp-full-2018-10-05 告訴 Python 代碼 Stanford CoreNLP 所在的位置。

文檔中會(huì)有全面的示例,展示如何通過 Stanza 使用 CoreNLP,并從中獲取注釋。

訓(xùn)練 Neural Pipeline 模型

當(dāng)前為所用的 Universal Dependencies 庫 V2.5 提供模型,并為幾種廣泛使用的語言提供 NER 模型。

批量處理最大化 Pipeline 速度

為了最大程度地提供速度方面的性能,必須針對(duì)成批的文檔運(yùn)行 Pipeline。每一次單在一個(gè)句子上運(yùn)行一個(gè) for 循環(huán)將 fei'c 非常慢,目前解決方法是將文檔連在一起,每個(gè)文檔見用空行(及兩個(gè)換行符nn)進(jìn)行分割。分詞器將在句子中斷時(shí)去識(shí)別空白行。

訓(xùn)練自己的 neural pipelines

該庫中所有神經(jīng)模塊都可以使用自己的數(shù)據(jù)進(jìn)行訓(xùn)練。如 Tokenizer、multi-word token(MWT)擴(kuò)展器、POS/特征標(biāo)記器等。目前,不支持通過 pipeline 進(jìn)行模型訓(xùn)練,因此需要克隆 git 存儲(chǔ)庫并從源代碼中運(yùn)行訓(xùn)練。

以下為訓(xùn)練神經(jīng) pipeline 的示例,可以看到項(xiàng)目中提供了各種 bash 腳本來簡(jiǎn)化 scripts 目錄中的訓(xùn)練過程。訓(xùn)練模型運(yùn)行以下指令:

  1. bash scripts/run_${module}.sh ${corpus} ${other_args} 

其中 ${module} 是 tokenize, mwt, pos, lemma,depparse 之一,是主體的全名; ${corpus} 是訓(xùn)練腳本所允許的其他參數(shù)。

例如,可以使用以下指令在 UD_English-EWT 語料庫上訓(xùn)練時(shí)批量處理大小為 32,而終止率為 0.33:

  1. bash scripts/run_tokenize.sh UD_English-EWT --batch_size 32 --dropout 0.33 

注意對(duì)于 dependency parser, 還需要在訓(xùn)練/開發(fā)數(shù)據(jù)中為使用的 POS 標(biāo)簽類型指定 gold|predicted:

  1. bash scripts/run_depparse.sh UD_English-EWT gold 

如果使用了 predicted,訓(xùn)練后的標(biāo)記器模型會(huì)首先在訓(xùn)練/開發(fā)數(shù)據(jù)上運(yùn)行以便生成預(yù)測(cè)的標(biāo)記。

 默認(rèn)情況下,模型文件將在訓(xùn)練期間保存到 save_models 目錄(也可以使用 save_dir 參數(shù)進(jìn)行更改)。

架構(gòu)和與現(xiàn)有庫的對(duì)比

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

Stanza 的論文提供了整個(gè)代碼庫的架構(gòu)??梢钥吹?,它以原始文本為輸入,能夠直接輸出結(jié)構(gòu)化的結(jié)果。

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

tanza 的神經(jīng)網(wǎng)絡(luò)部分架構(gòu)。除了神經(jīng)網(wǎng)絡(luò) pipeline 以外,Stanza 也有一個(gè) Python 客戶端界面,和 Java 版的 Stanford CoreNLP 進(jìn)行交互。

于此同時(shí),論文還將 Stanza 和現(xiàn)有的 NLP 工具,如 spaCy 等進(jìn)行了對(duì)比??梢钥吹?,Stanza 是目前涵蓋語言數(shù)量最多,達(dá)到 SOTA 且完全基于神經(jīng)網(wǎng)絡(luò)框架的庫。

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

和現(xiàn)有 NLP 庫的對(duì)比。

最后,研究者還將 Stanza 上 NLP 任務(wù)的性能和現(xiàn)有的基線進(jìn)行對(duì)比,發(fā)現(xiàn) Stanza 大部分情況下都超過了 SOTA。

Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言

和已有基線性能的對(duì)比??梢钥吹?,Stanza 在多個(gè)語言多個(gè)任務(wù)中都實(shí)現(xiàn)了 SOTA。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2021-04-02 15:02:42

開源技術(shù) 工具

2024-05-06 08:00:00

AI模型

2023-09-03 12:57:39

神經(jīng)網(wǎng)絡(luò)AI

2023-07-03 13:23:47

OpenChatOpenLLMChatGPT

2024-04-24 09:47:36

2024-06-03 14:19:00

AI訓(xùn)練

2009-05-19 09:06:41

Apple斯坦福iPhone

2013-01-31 09:45:14

斯坦福超級(jí)電腦百萬內(nèi)核

2012-03-21 21:38:27

蘋果

2019-12-16 14:33:01

AI人工智能斯坦福

2018-08-13 21:19:07

Weld開源數(shù)據(jù)

2023-10-05 12:31:14

AI數(shù)據(jù)

2024-09-26 10:23:46

2025-01-17 10:26:19

模型開發(fā)ChatGPT

2023-03-15 10:26:00

模型開源

2022-10-08 12:38:23

模型開源

2023-08-10 14:01:08

開源虛擬

2024-07-22 08:00:00

機(jī)器人虛擬

2019-07-04 16:37:50

編程C++開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)