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

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

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

一些中文NLP領(lǐng)域,構(gòu)建語料的經(jīng)驗和技巧

lviY_AI_shequ ? 來源:數(shù)據(jù)科學(xué)雜談 ? 2020-05-12 09:57 ? 次閱讀

記得寫畢業(yè)論文那會兒,經(jīng)常為語料發(fā)愁。由于大多數(shù) NLP 問題都是有監(jiān)督問題,很多時候我們往往缺的不是算法,而是標(biāo)注好的語料。這在中文語料上更是明顯。今天就和大家分享一些中文 NLP 領(lǐng)域,構(gòu)建語料的經(jīng)驗和技巧,雖然未必看了此文就能徹底解決語料的問題,但是或多或少會有些啟發(fā)。

首先分享幾個常見的語料獲取渠道

國內(nèi)外NLP領(lǐng)域的會議評測數(shù)據(jù)

相關(guān)研究機(jī)構(gòu)、實驗室、論文公開的數(shù)據(jù)集

國內(nèi)外數(shù)據(jù)科學(xué)競賽平臺,kaggle,天池,科賽,CCF等

互聯(lián)網(wǎng)企業(yè)自己舉辦的比賽,如百度,搜狐,知乎,騰訊這些企業(yè)都是土豪,通常會花費巨額的資金標(biāo)注語料

Github 很多模型里面會自帶部分語料

雖然通過這些途徑,能夠搜集到不少的NLP語料,但這些“現(xiàn)成”的語料往往與我們需要解決的 NLP 問題不太一致,因此我們還得想辦法去變一些語料出來。

通過API或開源模型標(biāo)注語料

比如我們需要訓(xùn)練一個命名實體識別模型,就可以借助 bosonnlp 或者 hanlp、foolnltk 上去標(biāo)注一些語料。這些API和模型有的時候只提供了模型的預(yù)測結(jié)果,沒有提供訓(xùn)練的語料,但是我們可以拿這些別人訓(xùn)練好的模型去構(gòu)造語料。

知識蒸餾

我們可以將別人訓(xùn)練的模型看做是Teacher, 然后用API標(biāo)注的語料自己訓(xùn)練的模型看做是Student, 雖然結(jié)果不能達(dá)到和原來模型一致的效果,但是也不至于差太多,這種方式在初期能夠幫助我們快速的推進(jìn)項目,看到項目的效果后,后期再想辦法優(yōu)化迭代

通過搜索引擎收集標(biāo)注數(shù)據(jù)

假設(shè)我們需要做一個NER模型,其中一類實體是人名,可能我們想到的是從網(wǎng)上下載一批新聞,然后標(biāo)出其中的人名,但是,這樣做有一個問題,一篇幾千字的新聞往往只有幾個人名,而我們只需要出現(xiàn)了人名的那部分句子,并不需要其他部分。如果直接在整篇文本上標(biāo)注效率十分低。其實,我們可以轉(zhuǎn)換一下思路,找一份中文人名詞庫,然后放到百度中搜索,百度摘要返回的大部分結(jié)果基本是我們想要的語料,通過爬蟲把摘要爬下來,自己再過濾下就好啦。這樣的做法相當(dāng)于,借助于一些過濾和排序算法,幫助我們快速找到待標(biāo)注的語料。

二次加工已有語料

有的時候,一些語料和我們的需要解決的任務(wù)相似,但又完全不一樣,這時候我們可以嘗試?yán)闷渌蝿?wù)的語料來構(gòu)建出想要的語料。就拿百度2019信息抽取比賽來說吧,該比賽的任務(wù)是從

"text": "《逐風(fēng)行》是百度文學(xué)旗下縱橫中文網(wǎng)簽約作家清水秋風(fēng)創(chuàng)作的一部東方玄幻小說,小說已于2014-04-28正式發(fā)布"

這樣的句子中抽出實體和關(guān)系三元組

"spo_list": [{"predicate": "連載網(wǎng)站", "object_type": "網(wǎng)站", "subject_type": "網(wǎng)絡(luò)小說", "object": "縱橫中文網(wǎng)", "subject": "逐風(fēng)行"}, {"predicate": "作者", "object_type": "人物", "subject_type": "圖書作品", "object": "清水秋風(fēng)", "subject": "逐風(fēng)行"}]screenshot-lic2019-ccf-org-cn-kg-1574584084691

百度總共提供了大概17萬的標(biāo)注數(shù)據(jù),而且數(shù)據(jù)標(biāo)注質(zhì)量頗高。訓(xùn)練數(shù)據(jù)被標(biāo)注為以下格式:

{"text": "《逐風(fēng)行》是百度文學(xué)旗下縱橫中文網(wǎng)簽約作家清水秋風(fēng)創(chuàng)作的一部東方玄幻小說,小說已于2014-04-28正式發(fā)布", "spo_list": [{"predicate": "連載網(wǎng)站", "object_type": "網(wǎng)站", "subject_type": "網(wǎng)絡(luò)小說", "object": "縱橫中文網(wǎng)", "subject": "逐風(fēng)行"}, {"predicate": "作者", "object_type": "人物", "subject_type": "圖書作品", "object": "清水秋風(fēng)", "subject": "逐風(fēng)行"}]

由該數(shù)據(jù)我們可以構(gòu)造什么數(shù)據(jù)呢?

命名實體識別語料

由于語料中的每個實體都標(biāo)注了實體類別,所以可以通過實體類別,構(gòu)造出命名實體識別任務(wù)的語料,這17萬數(shù)據(jù)集,提供了國家、城市、影視作品、人物、地點、企業(yè)、圖書等10幾個類別的實體,這些語料加上人名日報、msra、bosonnlp 公開的NER語料,我們就可以擴(kuò)充一個更大的NER語料集;

開放關(guān)系抽取語料

雖然該數(shù)據(jù)集是面向封閉域關(guān)系抽取的數(shù)據(jù)集,其實改造一下,也能用于句子級別的開放域關(guān)系抽取任務(wù)中,比如我們可以構(gòu)建一個基于序列標(biāo)注的關(guān)系和實體聯(lián)合抽取模型,簡單的說就是給定(S,P,O)三元組和text,從中抽取一個代表關(guān)系的動賓短語或名詞性短語來。比如從《逐風(fēng)行》是百度文學(xué)旗下縱橫中文網(wǎng)簽約作家清水秋風(fēng)創(chuàng)作的一部東方玄幻小說,小說已于2014-04-28正式發(fā)這句話抽?。ㄇ逅镲L(fēng),創(chuàng)作,《逐風(fēng)行》)這樣的關(guān)系三元組。當(dāng)然,要改造成適合開放關(guān)系抽取的語料,還有一些工作需要做。比如原來語料中的S和O是我們要抽取的內(nèi)容,而P卻不是,因此,我們可能需要進(jìn)行二次標(biāo)注或者再構(gòu)建一個模型去預(yù)測出P。

很多公開的語料都可以采用類似的做法,這里就拋磚引玉一下,不一一介紹了。

標(biāo)注工具

工欲善其事,必先利其器 ,標(biāo)注工具能夠大大提高標(biāo)注效率,標(biāo)注工具通過提供方便的快捷鍵和交互方式,讓我們在相同時間,標(biāo)注更多的數(shù)據(jù)。同時,還可以在標(biāo)注工具中嵌入一些AI輔助標(biāo)注的能力,實現(xiàn)機(jī)器自動標(biāo)注,而我們只需要修改和刪除小部分的錯誤標(biāo)注樣本,進(jìn)一步提高效率。

主動學(xué)習(xí)標(biāo)注

機(jī)器學(xué)習(xí)任務(wù)中,由于數(shù)據(jù)標(biāo)注代價高昂,如果能夠從任務(wù)出發(fā),通過對任務(wù)的理解來制定標(biāo)準(zhǔn),挑選最重要的樣本,使其最有助于模型的學(xué)習(xí)過程,將大大減少標(biāo)注的成本, 主動學(xué)習(xí)就是解決這個問題的。關(guān)于主動學(xué)習(xí)背后的理論細(xì)節(jié),感興趣可以自行谷歌,這里舉一個通俗易懂的例子簡要解釋一下。

可以

還記得支持向量機(jī)中的“支持向量”嗎?當(dāng)我們在分類的時候,并不是所有的點對于分割線的位置都是起決定性作用的。在離超平面特別遠(yuǎn)的區(qū)域,哪怕你增加10000個樣本點,對于分割線的位置,也是沒有作用的,因為分割線是由幾個關(guān)鍵點決定的(圖上三個),這幾個關(guān)鍵點支撐起了一個分割超平面,所以這些關(guān)鍵點,就是支持向量。借鑒大數(shù)據(jù)標(biāo)注任務(wù)上,如果能夠準(zhǔn)確的標(biāo)出那些“重要”的樣本,就有可能實現(xiàn)“事半功倍”的效果。

隨機(jī)標(biāo)注的結(jié)果可能是上圖中的b, 準(zhǔn)確率大約為70%。而右圖就是主動學(xué)習(xí)方法找到的標(biāo)注點,因為這些點幾乎構(gòu)成了完美分界線的邊界,所以使用與中圖同樣的樣本數(shù),但它能夠取得90%左右的準(zhǔn)確率!

弱監(jiān)督的數(shù)據(jù)標(biāo)注

監(jiān)督學(xué)習(xí)就是我們有一批高置信的標(biāo)注數(shù)據(jù),通過model來擬合效果。弱監(jiān)督學(xué)習(xí),就是我們很難獲取足夠量的高置信的標(biāo)注數(shù)據(jù),所以弱監(jiān)督學(xué)習(xí)就是來解決這個問題。

這里為大家介紹一個斯坦福的研究者開源的弱監(jiān)督學(xué)習(xí)通用框架 Snorkel ,由這種方法生成的標(biāo)簽可用于訓(xùn)練任意模型。已經(jīng)有人將Snorkel用于處理圖像數(shù)據(jù)、自然語言監(jiān)督、處理半結(jié)構(gòu)化數(shù)據(jù)、自動生成訓(xùn)練集等具體用途。

Snorkel 集成了多種知識來源作為弱監(jiān)督,我們只需要在基于MapReduce模板的pipeline中編寫標(biāo)記函數(shù),每個標(biāo)記函數(shù)都接受一個數(shù)據(jù)點生成的概率標(biāo)簽,并選擇返回None(無標(biāo)簽)或輸出標(biāo)簽。在編寫標(biāo)記函數(shù)的時候,我們可以利用一切可以利用知識來標(biāo)記我們的數(shù)據(jù),這些知識可能包括,人工規(guī)則、知識圖譜、已有的模型、統(tǒng)計信息、網(wǎng)頁等。

如上圖所示,假設(shè)我們在做NER任務(wù),需要標(biāo)注人名,可以用來構(gòu)建標(biāo)記函數(shù)的知識有:

文本是否在人名詞庫中

jieba、hanlp等NLP工具包給出的pos tag

文本是否是知識圖譜中的人物實體

基于以上知識,我們就可以寫出多個標(biāo)記函數(shù)了。當(dāng)然,通過 Snorkel 標(biāo)注的數(shù)據(jù)是有噪聲的,甚至很多標(biāo)記函數(shù)給出的結(jié)果互相沖突。這些我們完全不用擔(dān)心,因為Snorkel已經(jīng)提供了解決這些問題的方法。

拿出項目的效果,向公司申請資源

最后的最后,我們可以想好算法的落地場景和價值,講好故事,向公司和老板的爭取資源!

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

    關(guān)注

    66

    文章

    8357

    瀏覽量

    132330
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    466

    瀏覽量

    16365
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    486

    瀏覽量

    21993

原文標(biāo)題:一文詳解NLP語料構(gòu)建技巧

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    分享一些常見的電路

    理解模電和數(shù)電的電路原理對于初學(xué)者來說可能比較困難,但通過一些生動的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見的電路,以動態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?68次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅(qū)動器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動器應(yīng)用的一些指南和技巧.pdf》資料免費下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    nlp自然語言處理框架有哪些

    許多優(yōu)秀的框架和工具,這些框架和工具為研究人員和開發(fā)者提供了強大的支持。以下是一些主要的NLP框架和工具的介紹: NLTK(Natural Language Toolkit) NLTK是Python編程
    的頭像 發(fā)表于 07-09 10:28 ?469次閱讀

    nlp自然語言處理模型怎么做

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領(lǐng)域個重要分支,它涉及到計算機(jī)對人類語言的理解和生成。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,NLP
    的頭像 發(fā)表于 07-05 09:59 ?503次閱讀

    nlp自然語言處理模型有哪些

    自然語言處理(Natural Language Processing,NLP)是計算機(jī)科學(xué)和人工智能領(lǐng)域個重要分支,旨在使計算機(jī)能夠理解、解釋和生成人類語言。以下是對NLP
    的頭像 發(fā)表于 07-05 09:57 ?585次閱讀

    nlp自然語言處理的應(yīng)用有哪些

    的應(yīng)用。以下是一些NLP的主要應(yīng)用領(lǐng)域,以及它們在各個領(lǐng)域的具體應(yīng)用。 機(jī)器翻譯 機(jī)器翻譯是NLP
    的頭像 發(fā)表于 07-05 09:55 ?2389次閱讀

    深度學(xué)習(xí)與nlp的區(qū)別在哪

    深度學(xué)習(xí)和自然語言處理(NLP)是計算機(jī)科學(xué)領(lǐng)域中兩個非常重要的研究方向。它們之間既有聯(lián)系,也有區(qū)別。本文將介紹深度學(xué)習(xí)與NLP的區(qū)別。 深度學(xué)習(xí)簡介 深度學(xué)習(xí)是種基于人工神經(jīng)網(wǎng)絡(luò)的
    的頭像 發(fā)表于 07-05 09:47 ?763次閱讀

    NLP技術(shù)在人工智能領(lǐng)域的重要性

    智能的橋梁,其重要性日益凸顯。本文將從NLP的定義、發(fā)展歷程、核心技術(shù)、應(yīng)用領(lǐng)域以及對人工智能領(lǐng)域的深遠(yuǎn)影響等多個維度,深入探討NLP技術(shù)在人工智能
    的頭像 發(fā)表于 07-04 16:03 ?402次閱讀

    什么是自然語言處理 (NLP)

    自然語言處理(Natural Language Processing, NLP)是人工智能領(lǐng)域中的個重要分支,它專注于構(gòu)建能夠理解和生成人類語言的計算機(jī)系統(tǒng)。
    的頭像 發(fā)表于 07-02 18:16 ?989次閱讀

    細(xì)談SolidWorks教育版的一些基礎(chǔ)知識

    SolidWorks教育版是款廣泛應(yīng)用于工程設(shè)計和教育領(lǐng)域的三維建模軟件。它具備直觀易用的操作界面和強大的設(shè)計功能,為學(xué)生提供了個學(xué)習(xí)和實踐的平臺。在本文中,我們將詳細(xì)探討SolidWorks教育版的
    的頭像 發(fā)表于 04-01 14:35 ?307次閱讀

    關(guān)于智能門禁設(shè)備做CCC認(rèn)證申請的一些經(jīng)驗分享

    CCC認(rèn)證申請的一些經(jīng)驗分享。1.了解CCC認(rèn)證要求:首先,您需要詳細(xì)了解CCC認(rèn)證的規(guī)定和要求,包括適用標(biāo)準(zhǔn)、測試項目、申請流程等內(nèi)容。CCC認(rèn)證涉及到產(chǎn)品的安
    的頭像 發(fā)表于 03-07 17:10 ?448次閱讀
    關(guān)于智能門禁設(shè)備做CCC認(rèn)證申請的<b class='flag-5'>一些</b><b class='flag-5'>經(jīng)驗</b>分享

    NLP領(lǐng)域的語言偏置問題分析

    摘要進(jìn)行全面的統(tǒng)計分析,發(fā)現(xiàn)不同語言背景的作者在寫作中的詞匯、形態(tài)、句法和連貫性方面有明顯的差異,這表明NLP領(lǐng)域存在語言偏置的可能性。因此,我們提出了系列建議,以幫助學(xué)術(shù)期刊和會議的出版社改進(jìn)他們對論文作者的指南和資源,以增
    的頭像 發(fā)表于 01-03 11:00 ?411次閱讀
    <b class='flag-5'>NLP</b><b class='flag-5'>領(lǐng)域</b>的語言偏置問題分析

    對于大模型RAG技術(shù)的一些思考

    大模型或者句向量在訓(xùn)練時,使用的語料都是較為通用的語料。這導(dǎo)致了這些模型,對于垂直領(lǐng)域的知識識別是有缺陷的。它們沒有辦法理解企業(yè)內(nèi)部的一些專用術(shù)語,縮寫所表示的具體含義。這樣極大地影響
    的頭像 發(fā)表于 12-07 09:41 ?1068次閱讀
    對于大模型RAG技術(shù)的<b class='flag-5'>一些</b>思考

    我們?yōu)槭裁葱枰私?b class='flag-5'>一些先進(jìn)封裝?

    我們?yōu)槭裁葱枰私?b class='flag-5'>一些先進(jìn)封裝?
    的頭像 發(fā)表于 11-23 16:32 ?540次閱讀
    我們?yōu)槭裁葱枰私?b class='flag-5'>一些</b>先進(jìn)封裝?

    分享一些SystemVerilog的coding guideline

    本文分享一些SystemVerilog的coding guideline。
    的頭像 發(fā)表于 11-22 09:17 ?665次閱讀
    分享<b class='flag-5'>一些</b>SystemVerilog的coding  guideline