aux柜機顯示代碼F1(柜機顯示f1是什么意思)
前沿拓展:
今日,Stanford NLP 團隊發布了包含 53 種語言預訓練模型的自然語言處理工具包 StanfordNLP,該工具包支持 Python 3.6 及之后版本,并基于 PyTorch,支持多種語言的完整文本分析管道,包括分詞、詞性標注、詞形歸并和依存關系解析,此外它還提供了與 CoreNLP 的 Python 接口。
以下內容介紹了 StanfordNLP 的相關論文、安裝、使用以及設置方法。
StanfordNLP 結合了斯坦福團隊參加 CoNLL 2018 Shared Task on Universal Dependency Parsing 使用的軟件包,和 Stanford CoreNLP 軟件的官方 Python 接口。StanfordNLP 不僅提供 CoreNLP 的功能,還包含一系列工具,可將文本字符串轉換為句子和單詞列表,生成單詞的基本形式、詞性和形態特征,以及適用于 70 余種語言中的句法結構。
StanfordNLP 用高度準確的神經網絡構建而成,允許使用自己的標注數據進行高效訓練和評估。這些模塊基于 PyTorch 構建。
StanfordNLP 的特征:
可以輕松設置本地 Python 實現;包含進行文本分析的完整神經網絡管道(neural network pipeline),包括分詞、多詞 token(MWT)擴展、詞形歸并(lemmatization)、詞性(POS)和形態特征標記以及依存關系解析;提供在 73 個 treebanks 上的 53 種人類語言的預訓練神經模型;官方維護的接入到 CoreNLP 的穩定 Python 接口。論文:Universal Dependency Parsing from Scratch
論文地址:https://nlp.stanford.edu/pubs/qi2018universal.pdf
依存關系解析是用于語義作用標記的各種自然語言處理系統、關系提取和機器翻譯中的重要組成部分。然而,大多數研究都已經將依賴解析單獨處理,并且在很大程度上忽略了為解析器準備相關數據的上游 NLP 組件,例如標記器和詞形化器。然而,實際上,這些上游系統仍然遠非完美。
為此,研究者構建了一個 raw-textto-CoNLL-U 管道系統,該系統執行 Shared Task 所需的所有任務。利用深度學習,該管道在每個相互關聯的任務階段中都實現了有競爭力的性能:分詞、句子和詞分割、詞性(POS)/形態特征(UFeats)標記、詞形歸并,最后是依存關系解析。
研究者表示,該工作的主要貢獻包括:
將符號統計知識與靈活、強大的神經系統相結合以提高穩健性的新方法;用于聯合 POS / UFeats 預測的 biaffine 分類器,可提高預測一致性;使用編輯分類器增強的詞形歸并工具,可提高少樣本序列上的序列到序列模型的穩健性;擴展解析器到模型線性化。該系統在 big-treebanks 上實現了競爭性的表現。在修復了一個關鍵的錯誤之后,更正后的系統在官方評估指標 LAS、MLAS 和 BLEX 上獲得了第 2 名、第 1 名和第 3 名,并且在所有指標上大幅度地優于低資源 treebank 類別的所有提交系統。
實驗結果主要結果如表 1 所示。當對所有 treebank 進行宏觀平均時,該系統幾乎可以在所有指標上實現競爭性能。此外,當僅在 big-treebanks 上進行評估時,它在多個指標上實現了最佳性能。即使不是表現最好的系統,該系統也會在這些 treebank 上的每個指標上取得競爭結果。該系統由單系統組件組成,而一些表現最佳的模型則使用集成方法。
此外,該系統的 UFeats 分類器在這些 treebank 上也非常準確。它不僅在 UFeats F1 上實現了最佳性能,而且還幫助解析器在 big-treebanks 上實現了最佳 MLAS,即使解析器在其他指標評估上沒有取得最佳性能。研究者強調了 POS 標記器/ UFeats 分類器中的一致性建模的貢獻:在兩種設置中,與 AllTags 度量標準相比,各個度量標準(UPOS、XPOS 和 UFeats)在參考系統上實現了更低的 advantage margin,表明參考系統盡管有時在每個單獨的任務上更準確,但并不像本研究中的整體系統那樣一致。
all-treebanks 和 big-treebanks 的結果之間的最大差異來自句子分割。在檢查了較小 treebank 上的結果和實現后,研究者注意到標記器中處理數據的方式對這些 treebank 的泛化產生了負面影響。這對于這些 treebank 來說是毀滅性的,因為所有下游組件都在句子水平處理單詞。
研究者解決了這個問題,并在提交時訓練了新的分詞器,其中所有超參數都與系統相同。他們進一步構建了一個非官方的評估管道,驗證了它與官方系統達到的評估結果相同,并且僅通過替換分詞器來評估整個管道。如表 1 所示,由此產生的系統(Stanford+)整體上更準確,分別在官方評估指標 LAS、MLAS 和 BLEX 上排名第 2、第 1 和第 3。在 big-treebanks 上,所有指標僅在 0.02%的 F1 內變化,因此不包括在內。然而,在 small treebanks 上這種影響更為明顯:如表 2 所示,校正系統在所有低資源 treebank 的所有官方評估指標上都大大優于所有提交系統。
表 1:測試集上的評估結果(F1),僅適用于所有 treebank 及大型 treebank 測試集。對于所有指標上的每一組結果,研究者將其與來自參照系統的結果進行對比。參照系統是指在那個指標上當前性能最好的系統。
表 2:在低資源 treebank 測試集上的評估結果(F1)
安裝和使用設置
StanfordNLP 支持 Python 3.6 及之后版本。推薦從 PyPI 中安裝 StanfordNLP。如果已經安裝了 pip,運行以下命令:
pip install stanfordnlp這有助于解決 StanfordNLP 的所有依賴項,例如 PyTorch 1.0.0 及以上版本。
或者,你還可以從該 git repo 中安裝 StanfordNLP,這樣你可以更加靈活地基于 StanfordNLP 開發,以及訓練自己的模型。運行以下命令:
git clone git@github.com:stanfordnlp/stanfordnlp.gitcd stanfordnlp pip install -e . 運行 StanfordNLP啟動神經網絡管道
要想運行第一個 StanfordNLP pipeline,只需在 Python 交互式解釋器中進行以下步驟:
>>> import stanfordnlp>>> stanfordnlp.download('en') # This downloads the English models for the neural pipeline>>> nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English>>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")>>> doc.sentences[0].print_dependencies()最后一個命令將輸出輸入字符串中第一個句子中的單詞,以及在句子的通用依存解析中控制該單詞的單詞索引、單詞之間的依賴關系。輸出如下:
('Barack', '4', 'nsubj:pass') ('Obama', '1', 'flat') ('was', '4', 'aux:pass') ('born', '0', 'root') ('in', '6', 'case') ('Hawaii', '4', 'obl') ('.', '4', 'punct')注意:如果你遇到了 OSError: [Errno 22] Invalid argument 這樣的問題,很可能是因為 Python 的問題。推薦使用 Python 3.6.8 及之后版本和 Python 3.7.2 及之后版本。
StanfordNLP 還提供多語言 demo 腳本,展示了如何在非英語語言中使用 StanfordNLP,如繁體中文。
demo 地址:https://github.com/stanfordnlp/stanfordnlp/blob/master/demo/pipeline_demo.py
python demo/pipeline_demo.py -l zh詳見:https://stanfordnlp.github.io/stanfordnlp/installation_download.html#getting-started
訪問 Java Stanford CoreNLP Server
除了神經網絡管道,該項目還包括一個官方 wrapper,允許使用 Python 代碼訪問 Java Stanford CoreNLP Server。
初始設置如下:
下載 Stanford CoreNLP 和你想使用語言的模型。將 model jar 放在分發目錄中。在 Python 代碼中寫明 Stanford CoreNLP 的地址:export CORENLP_HOME=/path/to/stanford-corenlp-full-2018-10-05。該項目提供另一個 demo 腳本,展示如何使用 CoreNLP 客戶端以及如何從中提取不同的標注。
demo 地址:https://github.com/stanfordnlp/stanfordnlp/blob/master/demo/corenlp.py
神經網絡管道中的模型
該項目目前提供 CoNLL 2018 Shared Task 中所有 treebank 的模型。模型下載和使用說明詳見:
https://stanfordnlp.github.io/stanfordnlp/installation_download.html#models-for-human-languages。
批處理以最大化 Pipeline 速度
為了最大化速度,對文檔進行批量處理是必要的。一次僅對一個句子運行 for loop 太慢了。最好的方法是將文檔串聯到一起,每個文檔由空白行分割(即兩個換行符\n\n)。分詞器會將空白行識別為斷句。目前,研究者正在積極尋求改善多文檔處理。
訓練自己的神經網絡管道
該庫中的所有神經模塊,包括分詞器、多詞標記 (MWT) 擴展器、POS/形態特征標注器、詞形歸并和依存解析器,都可以用你自己的 CoNLL-U 格式數據來訓練。目前,該庫還不支持通過 Pipeline 接口訓練模型。因此,為了訓練你自己的模型,你要 clone 這個 git repo,然后從源代碼進行設置。
如果想詳細了解如何一步步訓練和評估自己的模型,請參考以下鏈接:https://stanfordnlp.github.io/stanfordnlp/training.html
拓展知識:
上一篇:ar 2718代碼 1l
- 帝度洗衣機武漢維修(帝度洗衣機售后電話)08-19
- 冰箱銅管腐蝕(如何預防和處理)05-06
- 酒柜可以放客廳嗎(如何選擇合適的位置)?08-29
- 佳麗彩遙控器代碼(如何設置和更改)04-27
-
GEA空調廠家售后服務電話號碼是多少(如何獲取GEA空調廠家的售后服務電話號碼
2024-08-24
-
DATAAIRE空調清洗(如何正確清洗DATAAIRE空調以保持其性能和延長使用壽命?)
2024-08-24
-
雷諾威空調24小時服務熱線電話(如何聯系雷諾威空調24小時服務熱線以解決我的
2024-08-24
-
櫻雪點火故障(解決櫻雪點火故障的實用方法與步驟)
2024-08-24
-
RC空調24小時熱線(RC空調24小時熱線:全天候客戶支持與故障排除指南)
2024-08-24