<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          (三)RASA NLU語言模型

          共 1965字,需瀏覽 4分鐘

           ·

          2021-09-11 20:13


          作者簡(jiǎn)介




          原文:https://zhuanlan.zhihu.com/p/331791105

          轉(zhuǎn)載者:楊夕

          面筋地址:https://github.com/km1994/NLP-Interview-Notes

          個(gè)人筆記:https://github.com/km1994/nlp_paper_study


          什么時(shí)候要用語言模型?我們前面講過,RASA整體就是pipeline結(jié)構(gòu),NLU,DST,DPL一系列處理下來,執(zhí)行一個(gè)動(dòng)作。而NLU模塊也是一個(gè)可細(xì)分pipeline結(jié)構(gòu),過程是Tokenize->Featurize->NER Extract->Intent Classify。熟悉Word2Vec的知友知道,如果要獲取句子的word2vec特征,首先要有個(gè)分詞器,然后要有個(gè)word2vec模型。同理,如果Rasa NLU里面引用預(yù)訓(xùn)練的語言模型,那就需要提前加載,如果Tokenize使用空格分詞或者結(jié)巴分詞,特征向量使用One-hot編碼或者CountVectorsFeaturizer編碼,那就不在需要語言模型了。

          RASA里面的語言模型有:

          • MITIENLP

          mitie 基于dlib庫開發(fā),dlib是一個(gè)c++高性能機(jī)器學(xué)習(xí)庫。所以對(duì)性能有要求的信息抽取場(chǎng)景,可以考慮使用mitie。mitie現(xiàn)有的資料比較少,github最近更新也是五六年前了。
          從mitie代碼中看到它的NER使用structural_sequence_labeling_trainer.實(shí)現(xiàn)的細(xì)節(jié)見
          https://www.aaai.org/Papers/ICML/2003/ICML03-004.pdf
          文中指出,MITIE的NER是HMM 和SVM相結(jié)合做的。相比單純的HMM,這種方法是基于最大margin 標(biāo)準(zhǔn)。這相比純CRF或者最大熵的HMM有很多優(yōu)勢(shì):
          1)可以通過核函數(shù)學(xué)習(xí)非線性的判斷關(guān)系
          2)可以處理overlapping features.

          但畢竟是基于傳統(tǒng)機(jī)器學(xué)習(xí)的方式,相對(duì)于BERT這種海量語料預(yù)訓(xùn)練模型來說,效果還是稍差一點(diǎn),這個(gè)可以使用RASA的NLU評(píng)估工具跑分試一下[NLU pipelines評(píng)估]。但MITIE有無可比擬的速度優(yōu)勢(shì),在算力敏感的情況下自己權(quán)衡選擇,RASA已經(jīng)不做官方推薦了。

          使用前先下載mitie模型
          github.com/mit-nlp/MITI

          RASA配置使用MITIENLP

                  pipeline:            - name: "MitieNLP"              model: "data/total_word_feature_extractor.dat"

          另外,MITIE沒有預(yù)訓(xùn)練的中文模型,如果想開發(fā)中文機(jī)器人,需要自己訓(xùn)練語言模型。具體參考用Rasa NLU構(gòu)建自己的中文NLU系統(tǒng)。

          • SpaCyNLP

          spaCy是一個(gè)用Python和Cython編寫的高級(jí)自然語言處理的庫。它跟蹤最新的研究成果,并將其應(yīng)用到實(shí)際產(chǎn)品。spaCy帶有預(yù)訓(xùn)練的統(tǒng)計(jì)模型和單詞向量,目前支持60多種語言。它用于標(biāo)記任務(wù),解析任務(wù)和命名實(shí)體識(shí)別任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)模型,在非??焖俚那闆r下,達(dá)到比較好的效果,并且易于在產(chǎn)品中集成應(yīng)用。在github上接近18k的stars,并且更新比較活躍。最新發(fā)布的spaCy3.0也集成了Transformer相關(guān)模型。

          使用spaCy時(shí),文本字符串的第一步是將其傳遞給NLP對(duì)象。NLP對(duì)象本質(zhì)上是由幾個(gè)文本預(yù)處理操作組成的管道,輸入文本字符串通過管道后,最終輸出文檔,完成各種功能。

          上圖示意了這個(gè)過程,在nlp對(duì)象中,要引入預(yù)訓(xùn)練spacy的語言模型。

          spacy的中文模型的下載地址:

          https://github.com/explosion/spacy-models

          也可以在命令行中輸入:

          python -m spacy download zh_core_web_sm

          RASA中模型加載方式

          pipeline:
          - name: "SpacyNLP"
          model: "zh_core_web_sm"

          下表顯示了SpaCy在各個(gè)任務(wù)中的得分

          以前還有一個(gè)HFTransformersNLP,里面主要包含一些BERT,GTP等比較新的Transformer模型,現(xiàn)在已經(jīng)在LanguageModelFeaturizer中實(shí)現(xiàn)了,不在需要在pipeline里面配置HFTransformersNLP語言模型。



          瀏覽 105
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  毛片中文字幕 | 国产熟妇久久77777 | 性交拳交在线 | 骚逼操逼 | 日韩亚洲欧美中文字幕组 |