0. PaddleNLP 一鍵預(yù)測能力 Taskflow API之三大特性
功能全面
全場景支持:覆蓋NLU和NLG領(lǐng)域十一大經(jīng)典任務(wù)。
文檔級輸入:支持文檔級輸入,解決預(yù)訓(xùn)練模型對輸入文本的長度限制問題,大大節(jié)省用戶輸入長文本時的代碼開發(fā)量。
定制化訓(xùn)練:支持用戶使用自己的數(shù)據(jù)集進(jìn)行定制化訓(xùn)練,通過自定義路徑一鍵使用定制化訓(xùn)練好的模型。
簡捷易用
開箱即用,學(xué)習(xí)成本低,幾行代碼便可完成調(diào)用。
產(chǎn)業(yè)級效果
聚合眾多百度自然語言處理領(lǐng)域自研算法以及社區(qū)優(yōu)秀開源模型,模型效果領(lǐng)先。
1. 環(huán)境準(zhǔn)備
!pipinstall--upgradepaddlenlp !pipinstallpypinyin !pipinstallLAC
2. 基礎(chǔ)能力
這一章節(jié)將會學(xué)到的Taskflow技能:
利用PaddleNLP Taskflow提取句子中的語言學(xué)特征:中文分詞、詞性識別,依存關(guān)系,命名實體識別、關(guān)系抽取、事件抽取等。
2.0 信息抽取
PaddleNLP 5.16新發(fā)開放域信息抽取能力,只有你想不到的schema,沒有UIE抽取不到的結(jié)果哦!
詳情可參考:信息抽取一鍵預(yù)測能力[1]
如需定制化訓(xùn)練,全套代碼在此:傳送門[2]
2.0.1 實體抽取
frompprintimportpprint frompaddlenlpimportTaskflow schema=['時間','選手','賽事名稱']#Definetheschemaforentityextraction ie=Taskflow('information_extraction',schema=schema) pprint(ie("2月8日上午北京冬奧會自由式滑雪女子大跳臺決賽中中國選手谷愛凌以188.25分獲得金牌!"))#Betterprintresultsusingpprint
[{'時間':[{'end':6, 'probability':0.9857378532473966, 'start':0, 'text':'2月8日上午'}], '賽事名稱':[{'end':23, 'probability':0.8503082243989795, 'start':6, 'text':'北京冬奧會自由式滑雪女子大跳臺決賽'}], '選手':[{'end':31, 'probability':0.8981535684051067, 'start':28, 'text':'谷愛凌'}]}]
2.0.2 關(guān)系抽取
# schema={'歌曲名稱':['歌手','所屬專輯']}#Definetheschemaforrelationextraction ie.set_schema(schema)#Resetschema ie('《告別了》是孫耀威在專輯愛的故事里面的歌曲')
[{'歌曲名稱':[{'text':'告別了', 'start':1, 'end':4, 'probability':0.6296147448952354, 'relations':{'歌手':[{'text':'孫耀威', 'start':6, 'end':9, 'probability':0.9988380409852198}], '所屬專輯':[{'text':'愛的故事', 'start':12, 'end':16, 'probability':0.9968462078543183}]}}, {'text':'愛的故事', 'start':12, 'end':16, 'probability':0.28168534139751955, 'relations':{'歌手':[{'text':'孫耀威', 'start':6, 'end':9, 'probability':0.9951413914998}]}}]}]
2.0.3 事件抽取
schema={'地震觸發(fā)詞':['地震強度','時間','震中位置','震源深度']}#Definetheschemaforeventextraction ie.set_schema(schema)#Resetschema ie('中國地震臺網(wǎng)正式測定:5月16日06時08分在云南臨滄市鳳慶縣(北緯24.34度,東經(jīng)99.98度)發(fā)生3.5級地震,震源深度10千米。')
[{'地震觸發(fā)詞':[{'text':'地震', 'start':56, 'end':58, 'probability':0.9977425555988333, 'relations':{'地震強度':[{'text':'3.5級', 'start':52, 'end':56, 'probability':0.998080158269417}], '時間':[{'text':'5月16日06時08分', 'start':11, 'end':22, 'probability':0.9853299181377793}], '震中位置':[{'text':'云南臨滄市鳳慶縣(北緯24.34度,東經(jīng)99.98度)', 'start':23, 'end':50, 'probability':0.7874013050677604}], '震源深度':[{'text':'10千米', 'start':63, 'end':67, 'probability':0.9937973233053299}]}}]}]
2.0.4 句子級情感分類
schema='情感傾向[正向,負(fù)向]'#Definetheschemaforsentence-levelsentimentclassification ie.set_schema(schema)#Resetschema ie('這個產(chǎn)品用起來真的很流暢,我非常喜歡')
[{'情感傾向[正向,負(fù)向]':[{'text':'正向','probability':0.9990024058203417}]}]
2.0.5 評價維度、觀點抽取,對象級情感分析
schema={'評價維度':['觀點詞','情感傾向[正向,負(fù)向]']}#Definetheschemaforopinionextraction ie.set_schema(schema)#Resetschema pprint(ie("地址不錯,服務(wù)一般,設(shè)施陳舊"))#Betterprintresultsusingpprint
[{'評價維度':[{'end':2, 'probability':0.9888138676472664, 'relations':{'情感傾向[正向,負(fù)向]':[{'probability':0.998228967796706, 'text':'正向'}], '觀點詞':[{'end':4, 'probability':0.9927846479537372, 'start':2, 'text':'不錯'}]}, 'start':0, 'text':'地址'}, {'end':12, 'probability':0.9588297379365116, 'relations':{'情感傾向[正向,負(fù)向]':[{'probability':0.9949388606013692, 'text':'負(fù)向'}], '觀點詞':[{'end':14, 'probability':0.9286749937276362, 'start':12, 'text':'陳舊'}]}, 'start':10, 'text':'設(shè)施'}, {'end':7, 'probability':0.959285414999755, 'relations':{'情感傾向[正向,負(fù)向]':[{'probability':0.9952498258302498, 'text':'負(fù)向'}], '觀點詞':[{'end':9, 'probability':0.9949358587838901, 'start':7, 'text':'一般'}]}, 'start':5, 'text':'服務(wù)'}]}]
2.0.6 跨任務(wù)跨領(lǐng)域抽取
schema=['寺廟',{'丈夫':'妻子'}] ie.set_schema(schema) pprint(ie('李治即位后,讓身在感業(yè)寺的武則天續(xù)起頭發(fā),重新納入后宮。'))
[{'丈夫':[{'end':2, 'probability':0.989690572797457, 'relations':{'妻子':[{'end':16, 'probability':0.9987625986569526, 'start':13, 'text':'武則天'}]}, 'start':0, 'text':'李治'}], '寺廟':[{'end':12, 'probability':0.9888578809890554, 'start':9, 'text':'感業(yè)寺'}]}]
2.1 中文分詞
分詞作為許多NLP任務(wù)的第一道工序,如何在不同場景中『用好』、『用對』尤為重要。
Taskflow提供了多種中文分詞模式供大家選擇,我們列舉了幾種不同的場景,來示例不同使用方式。
2.1.1 文檔級輸入
支持超長文本輸入,無需擔(dān)心『文本截斷』問題
#首次調(diào)用會有模型下載的額外時間開銷 seg=Taskflow("word_segmentation") doc="蘇錦一直記得那個午后,明晃晃的光線穿過教室的窗玻璃灑到自己臉上,有種特別暖和的感覺。那陽光仿佛是能夠鉆進(jìn)人的心里,繼而延展到身體全部的毛孔中,然后以一種溫柔的霸道占據(jù)體內(nèi)各個淋巴細(xì)胞。蘇錦覺得連自己的每一個氣息里都似乎是能流竄出明亮的光。她坐著有些微醉于這份上帝恩賜的福祉當(dāng)中。是在這樣一個午后。她記住了段見城的臉。輪廓俊朗的少年。有著羈傲的眼神和清晰的聲線。怎么看這都是少女漫畫里必經(jīng)的情節(jié)。教語文的老太太此刻正兀自在講臺上口若懸河的講解著《孔雀東南飛》,畢竟是已經(jīng)年過半百的老教師,經(jīng)歷的學(xué)生多了,倒也不在乎講臺下那一張張臉上是否掛著的無精打采,昏昏欲睡的表情,按著自己的性子眉飛色舞的描繪著千年前的那段愛情傳奇。蘇錦一邊數(shù)著從老太太口里橫飛出來的唾沫星子,一邊念想著,讓理科班這群腦子里已全被物理公式填充了的家伙,去對幾千年前焦仲卿和劉蘭芝的愛情產(chǎn)生興趣未免是件太困難的事情了。老太太講到焦仲卿和劉蘭芝雙雙殉情而死之時咳嗽了一聲,提醒底下那群不知已經(jīng)神游到何方的學(xué)生們是時候為文章的主旨做筆記了。蘇錦把課文翻到最后,快速掃過大致內(nèi)容,目光卻在那句:府吏聞此事,心知長別離。徘徊庭樹下,自掛東南枝上硬生生地停了下來。思緒仿若戛然而止,被某種莫名的感懷而包圍,心中有些鈍痛,卻不知從何而來。“懦弱?!币粋€略帶鄙夷的聲音傳入蘇錦的耳,攔截住了她空白的思緒。蘇錦轉(zhuǎn)過頭,瞥見后桌的段見城。恍然間有種錯覺,這個男生好似是被光線包裹著一般。段見城淡淡說。若他是焦仲卿,定不會讓自己和深愛的女子走到這步田地,若是真走到山窮水盡的地步,定是決然赴死。何來徘徊。那清淡口氣帶著些不屑,卻是這般篤定至極。他說,平生最鄙夷懦弱的男子。蘇錦靜默的注視著這個男生。終究是沒有說出話來。蘇錦莫名其妙的做了段見城的女友是一年以后的事情。全班在KTV里唱歌,美名曰:升高三前最后的狂歡。包廂里都是擁擠的人,但蘇錦卻還是能夠感受到空調(diào)的溫度調(diào)得異常的低,她躲在冷風(fēng)吹不到的角落,捧著大杯的雪花啤酒像是喝水一樣沒有節(jié)制,她覺得心里有所郁結(jié)并且心思混亂,恍恍惚惚的注視著麥克風(fēng)被傳了一輪又一輪,聽著音像里傳出或高或低的雜亂音符,而自己卻似是置身于別處,與此間的喧囂起伏無關(guān),只覺得空蕩蕩。蘇錦記得自己與同桌曾談及過自己這種從暑假開始無法擺脫的混沌狀態(tài),同桌是一副了然于胸的模樣,義正言辭的對蘇錦說,這是高三前期綜合癥。她說,蘇錦你別太看重所謂的高三,高考和大學(xué)都只是一個過程而并非最終的意義,我們要以平常心去對待這些。蘇錦想,其實自己并非執(zhí)著什么,而是自幼便對于那些未知的一切充滿恐懼。因為無法掌控,所以感到束手無策,身不由己。仿佛有種被命運捏在手里隨意擺弄的感覺,特別難受正當(dāng)蘇錦失足于自己龐大的幻覺之時,身邊的朋友開始玩起了真心話大冒險之類的游戲。在一邊起哄的女生提議游戲從今晚沒有唱歌過的人開始,于是因為忙著在沙發(fā)上的打牌的段見城那撥人便是首先被開刷的對象,而作為聚眾賭博的頭子,段見城自然是第一個被逮到。幾個暗自對段見城有好感的姑娘早就揣摩好了問題,蘇錦被旁邊興奮過頭的女生推攘著,神志也漸漸清明起來。不知是誰直白的問出了那句:阿城,你有意中人么?KTV中的嘈雜如同頓時沉淀了一般,縱然空氣里似乎還遺留著些噪音過境的痕跡,更多的卻是一種屏氣凝神的靜。段見城沉默的捏著手中那張還沒打出去撲克牌,幾乎是在所有人的耐心倒塌的前一秒,清晰地說出了蘇錦的名字。" print("1. 輸入長度:",len(doc)) print("2. 分詞結(jié)果:",seg(doc))
1.輸入長度:1413 2.分詞結(jié)果:['蘇錦','一直','記得','那個','午后',',','明晃晃','的','光線','穿過','教室','的','窗','玻璃','灑','到','自己','臉上',',','有種','特別','暖和','的','感覺','。','那','陽光','仿佛','是','能夠','鉆進(jìn)','人','的','心里',',','繼而','延展','到','身體','全部','的','毛孔','中',',','然后','以','一種','溫柔','的','霸道','占據(jù)','體內(nèi)','各','個','淋巴細(xì)胞','。','蘇錦','覺得','連','自己','的','每一個','氣息','里','都','似乎','是','能','流竄','出',...........
2.1.2 快速模式分詞
示例如何通過快速模式分詞對數(shù)據(jù)集進(jìn)行詞頻統(tǒng)計、構(gòu)建詞表
importtime fromcollectionsimportdefaultdict frompaddlenlp.datasetsimportload_dataset frompaddlenlpimportTaskflow seg_fast=Taskflow("word_segmentation",mode="fast") #加載ChnSentiCorp數(shù)據(jù)集 train_ds,dev_ds=load_dataset("chnsenticorp",splits=["train","dev"]) texts=[] fordataintrain_ds: texts.append(data["text"]) fordataindev_ds: texts.append(data["text"]) inputs_length=len(texts) print("1. 句子數(shù)量:",inputs_length) tic_seg=time.time() #快速分詞 results=seg_fast(texts) time_diff=time.time()-tic_seg print("2. 平均速率:%.2f句/s"%(inputs_length/time_diff)) #詞頻統(tǒng)計 word_counts=defaultdict(int) forresultinresults: forwordinresult: word_counts[word]+=1 #打印頻次最高的前20個單詞及其對應(yīng)詞頻 print("3. Top 20 Words:",sorted(word_counts.items(),key=lambdad:d[1],reverse=True)[:20])
100%|██████████|1909/1909[00:00<00:00,?7614.49it/s] 1.?句子數(shù)量:?10800 Building?prefix?dict?from?the?default?dictionary?... Dumping?model?to?file?cache?/tmp/jieba.cache Loading?model?cost?0.995?seconds. Prefix?dict?has?been?built?successfully. 2.?平均速率:1429.74句/s 3.?Top?20?Words:?[(',',?59389),?('的',?41468),?('。',?23207),?('了',?15048),?('?',?11426),?('是',?10479),?(',',?9204),?('我',?9167),?('很',?6881),?('!',?6169),?('也',?5793),?('在',?5180),?('酒店',?4829),?('不',?4784),?('都',?4604),?('有',?4589),?('就',?4169),?('.',?4099),?('沒有',?3594),?('還',?3455)]
2.1.3 精確模式分詞
使用Taskflow精確模式,實體粒度分詞精度最高,語義片段完整,在知識圖譜構(gòu)建等應(yīng)用中優(yōu)勢明顯。
實體詞容易被切開,例如『陜西省高校管理體制改革實施方案』、『諾戴商務(wù)咨詢(上海)有限公司』希望能夠被完整識別。
frompaddlenlpimportTaskflow #精確模式模型體積較大,可結(jié)合機器情況適當(dāng)調(diào)整batch_size,采用批量樣本輸入的方式。 seg_accurate=Taskflow("word_segmentation",mode="accurate",batch_size=32) #批量樣本輸入,輸入為多個句子組成的list,平均速率更快 texts=["李偉拿出具有科學(xué)性、可操作性的《陜西省高校管理體制改革實施方案》","諾戴商務(wù)咨詢(上海)有限公司于2016年08月22日成立"] print(seg_accurate(texts))
[['李偉','拿出','具有','科學(xué)性','、','可操作性','的','《','陜西省高校管理體制改革實施方案','》'],['諾戴商務(wù)咨詢(上海)有限公司','于','2016年08月22日','成立']]
2.1.4 用戶詞典
快速配置用戶詞典來對分詞結(jié)果進(jìn)行干預(yù)
frompaddlenlpimportTaskflow seg=Taskflow("word_segmentation") print(seg("平原上的火焰宣布延期上映"))`
[‘平原’, ‘上’, ‘的’, ‘火焰’, ‘宣布’, ‘延期’, ‘上映’]
例如我們想把『平原上的火焰』作為一個完整詞來識別,而『上映』希望能夠被切開,則可以按照如下格式配置自定義詞典文件user_dict.txt
平原上的火焰 上 映
配置后通過user_dict一鍵裝載在這里插入代碼片
seg=Taskflow("word_segmentation",user_dict="/home/aistudio/user_dict.txt") print(seg("平原上的火焰宣布延期上映"))
[‘平原上的火焰’, ‘宣布’, ‘延期’, ‘上’, ‘映’]
2.2 詞性標(biāo)注
基于百度詞法分析工具LAC,訓(xùn)練語料包含近2200萬句子,覆蓋多種場景
frompaddlenlpimportTaskflow tag=Taskflow("pos_tagging") print(tag("第十四屆全運會在西安舉辦"))
[(‘第十四屆’, ‘m’), (‘全運會’, ‘nz’), (‘在’, ‘p’), (‘西安’, ‘LOC’), (‘舉辦’, ‘v’)]
2.3 命名實體識別
2.3.1 精確模式
基于百度解語的精確模式:最全中文實體標(biāo)簽的命名實體識別工具,不僅適用于通用領(lǐng)域,也適用于生物醫(yī)療、教育等垂類領(lǐng)域。包含66種詞性及專名類別標(biāo)簽(同類產(chǎn)品的標(biāo)簽數(shù)是15個左右)
frompaddlenlpimportTaskflow ner=Taskflow("ner") print(ner(["李偉拿出具有科學(xué)性、可操作性的《陜西省高校管理體制改革實施方案》","諾戴商務(wù)咨詢(上海)有限公司于2016年08月22日成立"])) [[('李偉','人物類_實體'),('拿出','場景事件'),('具有','肯定詞'),('科學(xué)性','修飾詞_性質(zhì)'),('、','w'),('可操作性','修飾詞_性質(zhì)'),('的','助詞'),('《','w'),('陜西省高校管理體制改革實施方案','作品類_實體'),('》','w')],[('諾戴商務(wù)咨詢(上海)有限公司','組織機構(gòu)類_企事業(yè)單位'),('于','介詞'),('2016年08月22日','時間類_具體時間'),('成立','場景事件')]]`在這里插入代碼片`
精確模式標(biāo)簽集合
人物類_實體 | 物體類 | 生物類_動物 | 醫(yī)學(xué)術(shù)語類 |
人物類_概念 | 物體類_兵器 | 品牌名 | 術(shù)語類_生物體 |
作品類_實體 | 物體類_化學(xué)物質(zhì) | 場所類 | 疾病損傷類 |
作品類_概念 | 其他角色類 | 場所類_交通場所 | 疾病損傷類_植物病蟲害 |
組織機構(gòu)類 | 文化類 | 位置方位 | 宇宙類 |
組織機構(gòu)類_企事業(yè)單位 | 文化類_語言文字 | 世界地區(qū)類 | 事件類 |
組織機構(gòu)類_醫(yī)療衛(wèi)生機構(gòu) | 文化類_獎項賽事活動 | 飲食類 | 時間類 |
組織機構(gòu)類_國家機關(guān) | 文化類_制度政策協(xié)議 | 飲食類_菜品 | 時間類_特殊日 |
組織機構(gòu)類_體育組織機構(gòu) | 文化類_姓氏與人名 | 飲食類_飲品 | 術(shù)語類 |
組織機構(gòu)類_教育組織機構(gòu) | 生物類 | 藥物類 | 術(shù)語類_符號指標(biāo)類 |
組織機構(gòu)類_軍事組織機構(gòu) | 生物類_植物 | 藥物類_中藥 | 信息資料 |
鏈接地址 | 肯定詞 | 個性特征 | 否定詞 |
感官特征 | 數(shù)量詞 | 場景事件 | 嘆詞 |
介詞 | 擬聲詞 | 介詞_方位介詞 | 修飾詞 |
助詞 | 外語單詞 | 代詞 | 英語單詞 |
連詞 | 漢語拼音 | 副詞 | 詞匯用語 |
疑問詞 | w(標(biāo)點) |
精準(zhǔn)模式對部分類目(如組織機構(gòu)等),做了更細(xì)的劃分識別(如,醫(yī)療衛(wèi)生機構(gòu)、體育組織機構(gòu))。
2.3.2 快速模式
基于百度詞法分析工具LAC,訓(xùn)練語料包含近2200萬句子,覆蓋多種場景
frompaddlenlpimportTaskflow ner_fast=Taskflow("ner",mode="fast") print(ner_fast("三亞是一個美麗的城市"))
[(‘三亞’, ‘LOC’), (‘是’, ‘v’), (‘一個’, ‘m’), (‘美麗’, ‘a(chǎn)’), (‘的’, ‘u’), (‘城市’, ‘n’)]
快速模式標(biāo)簽集合
快速模式標(biāo)簽集合
2.4 依存句法分析
2.4.1 多種使用方式
frompaddlenlpimportTaskflow #使用BiLSTM作為編碼器,速度最快 ddp=Taskflow("dependency_parsing") print(ddp("2月8日谷愛凌奪得北京冬奧會第三金"))
[{‘word’: [‘2月8日’, ‘谷愛凌’, ‘奪得’, ‘北京冬奧會’, ‘第三金’], ‘head’: [3, 3, 0, 5, 3], ‘deprel’: [‘ADV’, ‘SBV’, ‘HED’, ‘ATT’, ‘VOB’]}]
#編碼器部分將BiLSTM替換為ERNIE,模型準(zhǔn)確率更高! ddp=Taskflow("dependency_parsing",model="ddparser-ernie-1.0") print(ddp("2月8日谷愛凌奪得北京冬奧會第三金"))
#輸出概率值和詞性標(biāo)簽 ddp=Taskflow("dependency_parsing",prob=True,use_pos=True) print(ddp("2月8日谷愛凌奪得北京冬奧會第三金"))
依存句法分析標(biāo)注關(guān)系集合
依存句法分析標(biāo)注關(guān)系集合
2.4.2 應(yīng)用示例
通過句法分析抽取句子的主謂賓結(jié)構(gòu)信息
frompaddlenlpimportTaskflow ddp=Taskflow("dependency_parsing") print(ddp("9月9日上午納達(dá)爾在亞瑟·阿什球場擊敗俄羅斯球員梅德韋杰夫"))
下圖句子中包含了多種結(jié)構(gòu)化信息:
fromutilsimportSVOInfo texts=["9月9日上午納達(dá)爾在亞瑟·阿什球場擊敗俄羅斯球員梅德韋杰夫","2月8日谷愛凌奪得北京冬奧會第三金"] results=ddp(texts) #抽取句子中的SVO(主謂賓)結(jié)構(gòu)化信息 svo_info=[] forresultinresults: svo_info.append(SVOInfo(result).parse()) foriinrange(len(texts)): print("原文本:",texts[i]) print("包含的主謂賓結(jié)構(gòu):",svo_info[i])
3. 『產(chǎn)業(yè)』應(yīng)用
這一章節(jié)將會學(xué)到的Taskflow技能:
使用Taskflow來完成情感分析、文本糾錯、文本相似度
3.1 情感分析
3.1.1 BiLSTM
默認(rèn)使用的是BiLSTM。
frompaddlenlpimportTaskflow senta=Taskflow("sentiment_analysis") print(senta("這個產(chǎn)品用起來真的很流暢,我非常喜歡")) [{'text':'這個產(chǎn)品用起來真的很流暢,我非常喜歡','label':'positive','score':0.993867814540863}]
3.1.2 SKEP
集成百度自研的情感知識增強預(yù)訓(xùn)練模型SKEP,利用情感知識構(gòu)建預(yù)訓(xùn)練目標(biāo),在海量中文數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練,為各類情感分析任務(wù)提供統(tǒng)一且強大的情感語義表示能力。
在多個公開數(shù)據(jù)集上模型效果SOTA:
frompaddlenlpimportTaskflow senta=Taskflow("sentiment_analysis",model="skep_ernie_1.0_large_ch") print(senta("作為老的四星酒店,房間依然很整潔,相當(dāng)不錯。機場接機服務(wù)很好,可以在車上辦理入住手續(xù),節(jié)省時間。"))
[{'text':'作為老的四星酒店,房間依然很整潔,相當(dāng)不錯。機場接機服務(wù)很好,可以在車上辦理入住手續(xù),節(jié)省時間。','label':'positive','score':0.9843240976333618}]
3.2 文本糾錯
ERNIE-CSC在ERNIE預(yù)訓(xùn)練模型的基礎(chǔ)上,融合了拼音特征的端到端中文拼寫糾錯模型,整體框架圖如下:
在中文糾錯經(jīng)典數(shù)據(jù)集SIGHAN上效果領(lǐng)先:
frompaddlenlpimportTaskflow corrector=Taskflow("text_correction") print(corrector('遇到逆竟時,我們必須勇于面對,而且要愈挫愈勇。'))
[{'source':'遇到逆竟時,我們必須勇于面對,而且要愈挫愈勇。','target':'遇到逆境時,我們必須勇于面對,而且要愈挫愈勇。','errors':[{'position':3,'correction':{'竟':'境'}}]}]
3.3 文本相似度
基于百度知道2200萬對相似句組訓(xùn)練SimBERT達(dá)到前沿文本相似效果
frompaddlenlpimportTaskflow similarity=Taskflow("text_similarity") print(similarity([["春天適合種什么花?","春天適合種什么菜?"],["小蝌蚪找媽媽怎么樣","小蝌蚪找媽媽是誰畫的"]]))
[{'text1':'春天適合種什么花?','text2':'春天適合種什么菜?','similarity':0.83395267},{'text1':'小蝌蚪找媽媽怎么樣','text2':'小蝌蚪找媽媽是誰畫的','similarity':0.81923723}]
3.4 『解語』-知識標(biāo)注
基于百度解語,首個能夠覆蓋所有中文詞匯的詞類知識標(biāo)注工具,旨在為中文文本解析提供全面、豐富的知識標(biāo)注結(jié)果
frompaddlenlpimportTaskflow wordtag=Taskflow("knowledge_mining") #結(jié)果會與TermTree進(jìn)行綁定,輸出termid print(wordtag("第24屆冬季奧林匹克運動會在北京舉辦"))
[{'text':'第24屆冬季奧林匹克運動會在北京舉辦','items':[{'item':'第24屆冬季奧林匹克運動會','offset':0,'wordtag_label':'事件類','length':13},{'item':'在','offset':13, 'wordtag_label':'介詞','length':1,'termid':'介詞_cb_在'},{'item':'北京','offset':14, 'wordtag_label':'世界地區(qū)類','length':2,'termid':'中國地區(qū)_cb_北京市'},{'item':'舉辦','offset':16,'wordtag_label':'場景事件','length':2,'termid':'場景事件_cb_舉辦'}]}]
fromtermtreeimportTermTree #加載百科知識樹 termtree=TermTree.from_dir("termtree_type.csv","TermTree.V1.0") #通過termid獲取別名 print(termtree._nodes["獎項賽事活動_eb_冬季奧林匹克運動會"]._data['alias']) #通過termid獲取百度百科鏈接 print(termtree._nodes['獎項賽事活動_eb_冬季奧林匹克運動會']._data['links'][0]['bdbkUrl'])
[‘冬奧會’, ‘冬奧’, ‘冬季奧運會’]
更多TermTree使用方法參考解語:TermTree(百科知識樹)[3]
4. 『趣味』應(yīng)用
這一章節(jié)將會學(xué)到的Taskflow技能:
感受海量數(shù)據(jù)訓(xùn)練出來的預(yù)訓(xùn)練模型的超強能力
利用Taskflow打造一個『能說會道、擅長聊天』的機器人
利用Taskflow構(gòu)建一個問答/寫詩系統(tǒng)
4.1 交互式閑聊對話
基于PLATO-MINI,模型在十億級別的中文對話數(shù)據(jù)上進(jìn)行了預(yù)訓(xùn)練,閑聊場景對話效果顯著。
frompaddlenlpimportTaskflow dialogue=Taskflow("dialogue") print(dialogue(["你好"]))
交互模式
(推薦使用終端terminal進(jìn)入python解釋器進(jìn)行體驗):
4.2 生成式問答
基于開源社區(qū)優(yōu)秀中文預(yù)訓(xùn)練模型CPM,參數(shù)規(guī)模26億,預(yù)訓(xùn)練中文數(shù)據(jù)達(dá)100GB。
調(diào)用示例:
NOTE:由于項目空間有限,這里只列舉了調(diào)用方法,為了有更好的使用體驗,大家可以另外創(chuàng)建一個項目來體驗這部分功能~
4.3 智能寫詩
基于開源社區(qū)優(yōu)秀中文預(yù)訓(xùn)練模型CPM,參數(shù)規(guī)模26億,預(yù)訓(xùn)練中文數(shù)據(jù)達(dá)100GB。
調(diào)用示例:
NOTE:由于項目空間有限,這里只列舉了調(diào)用方法,為了有更好的使用體驗,大家可以另外創(chuàng)建一個項目來體驗這部分功能~
5.定制化訓(xùn)練
這一章節(jié)將會學(xué)到的Taskflow技能:
利用自己的數(shù)據(jù)訓(xùn)練/微調(diào)模型,通過Taskflow一鍵裝載并使用
5.1 數(shù)據(jù)準(zhǔn)備和訓(xùn)練
參考PaddleNLP SKEP情感分析訓(xùn)練示例[4],完成數(shù)據(jù)準(zhǔn)備和模型訓(xùn)練。
#訓(xùn)練步驟省略,提供了訓(xùn)練好的模型權(quán)重文件 #直接下載并保存到/home/aistudio/custom_model路徑 !wgethttps://bj.bcebos.com/paddlenlp/taskflow/demo/model_state.pdparams-P/home/aistudio/custom_model !wgethttps://bj.bcebos.com/paddlenlp/taskflow/demo/model_config.json-P/home/aistudio/custom_model
5.2 使用定制化模型
通過task_path指定自定義模型路徑一鍵加載即可。
frompaddlenlpimportTaskflow my_senta=Taskflow("sentiment_analysis",model="skep_ernie_1.0_large_ch",task_path="/home/aistudio/custom_model") print(my_senta("不錯的酒店,服務(wù)還可以,下次還會入住的~"))
[{‘text’: ‘不錯的酒店,服務(wù)還可以,下次還會入住的~’, ‘label’: ‘positive’, ‘score’: 0.9968485236167908}]
-
API
+關(guān)注
關(guān)注
2文章
1505瀏覽量
62170 -
開源
+關(guān)注
關(guān)注
3文章
3370瀏覽量
42574 -
訓(xùn)練模型
+關(guān)注
關(guān)注
1文章
36瀏覽量
3868
原文標(biāo)題:5.定制化訓(xùn)練
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論