人工智能通識實(shí)踐教程 課件 第9章 自然語言處理_第1頁
人工智能通識實(shí)踐教程 課件 第9章 自然語言處理_第2頁
人工智能通識實(shí)踐教程 課件 第9章 自然語言處理_第3頁
人工智能通識實(shí)踐教程 課件 第9章 自然語言處理_第4頁
人工智能通識實(shí)踐教程 課件 第9章 自然語言處理_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章自然語言處理實(shí)驗(yàn)內(nèi)容搭建實(shí)驗(yàn)環(huán)境:在Anaconda中建立實(shí)驗(yàn)環(huán)境,為JupyterNotebook配置環(huán)境實(shí)驗(yàn)1:智能問答實(shí)驗(yàn)2:調(diào)用大模型API編程軟件—JupyterNotebook交互式編程環(huán)境,便于實(shí)時(shí)測試和調(diào)試代碼支持豐富的可視化功能,方便展示數(shù)據(jù)分析和模型結(jié)果支持使用Markdown(輕量級的標(biāo)記語言)記錄實(shí)驗(yàn)過程和結(jié)果,使學(xué)習(xí)更加高效JupyterNotebook編程環(huán)境交互式編程環(huán)境,便于實(shí)時(shí)測試和調(diào)試代碼支持豐富的可視化功能,方便展示數(shù)據(jù)分析和模型結(jié)果支持使用Markdown,記錄實(shí)驗(yàn)過程和結(jié)果,使學(xué)習(xí)更加高效實(shí)驗(yàn)準(zhǔn)備—創(chuàng)建編程環(huán)境步驟1:創(chuàng)建conda環(huán)境啟動AnacondaNavigator,創(chuàng)建conda環(huán)境,命名為“NLP”,選擇Python3.8.20打開終端,安裝如下第三方庫jiebawordcloudgensimrequests實(shí)驗(yàn)準(zhǔn)備—創(chuàng)建編程環(huán)境步驟2:JupyterNotebook連接Anaconda虛擬環(huán)境①在Anaconda的命令行窗口中激活目標(biāo)虛擬環(huán)境condaactivatenlp②安裝ipykernel(僅第一次)condainstallipykernel③將conda環(huán)境注冊為JupyterNotebook內(nèi)核python-mipykernelinstall--user

--name<your-env-name>啟動Jupyternotebook步驟1:進(jìn)入指定的路徑(擬存儲文件的路徑或要打開文件所在的路徑)步驟2:執(zhí)行jupyternotebook命令,啟動JupyterNotebook啟動JupyternotebookJupyterNotebook的基本使用菜單欄工具欄單元格類型和狀態(tài)單元格操作9.2中文分詞jieba庫

自然語言處理(NaturalLanguageProcessing,NLP)是一門涉及計(jì)算機(jī)科學(xué)、人工智能和語言學(xué)等多個領(lǐng)域的交叉學(xué)科,NLP的目標(biāo)是讓計(jì)算機(jī)能夠像人類一樣理解和處理自然語言。ChatGPT、DeepSeek等大語言模型是NLP技術(shù)在對話生成領(lǐng)域的一個具體應(yīng)用,從文本分析到語言理解,是一種生成式AI模型,可以生成流暢、連貫的自然語言響應(yīng)。在NLP中,分詞是將連續(xù)的字符序列(如中文文本)切分成具有獨(dú)立含義的詞語的過程。分詞是中文文本處理的基礎(chǔ),對于詞性標(biāo)注、命名實(shí)體識別、關(guān)鍵詞提取、情感分析等后續(xù)任務(wù)具有重要的影響。中文分詞jieba庫

jieba(結(jié)巴)分詞是一個常用的中文分詞工具,可以為后續(xù)的NLP任務(wù)提供基礎(chǔ)支持。中文分詞:將中文文本切分成有意義的詞語,并可以添加自定義詞典,糾正分詞錯誤或增加領(lǐng)域特定的詞匯。詞性標(biāo)注:jieba能夠?qū)Ψ衷~結(jié)果進(jìn)行詞性標(biāo)注,即為每個詞語添加對應(yīng)的詞性標(biāo)簽。這對于詞義消歧、命名實(shí)體識別等任務(wù)非常有用。關(guān)鍵詞提?。簀ieba提供了基于TF-IDF/TextRank算法的關(guān)鍵詞提取功能,可以從文本中自動抽取出重要的關(guān)鍵詞。1.中文分詞函數(shù)說明jieba.cut(s)精確模式,將句子最精確的分詞,返回可迭代對象jieba.cut(s,cut_all=True)全模式,輸出所有可能成詞的詞語jieba.lcut(s)精確模式,返回一個列表類型jieba.lcut(s,cut_all=True)全模式,返回列表類型jieba.add_word(w)向分詞字典中增加新詞jieba.load_userdict(file)向分詞字典中添加自定義字典分詞模式>>>importjieba>>>sentence="自然語言處理是一門涉及多領(lǐng)域的交叉學(xué)科">>>jieba.lcut(sentence)#精確模式['自然語言','處理','是','一門','涉及','多','領(lǐng)域','的','交叉學(xué)科']>>>jieba.lcut(sentence,cut_all=True)#全模式['自然','自然語言','語言','處理','是','一門','涉及','多','領(lǐng)域','的','交叉','交叉學(xué)科','學(xué)科']添加新詞>>>sentence="王清晨是信安系主任也是云計(jì)算方面的專家"

>>>words=jieba.lcut(sentence)

>>>print("/".join(words))王/清晨/是/信安/系主任/也/是/云/計(jì)算/方面/的/專家>>>jieba.add_word("王清晨")

>>>jieba.add_word("信安系")

>>>jieba.add_word("云計(jì)算")

>>>words=jieba.lcut(sentence)

>>>print("/".join(words))王清晨/是/信安系/主任/也/是/云計(jì)算/方面/的/專家批量添加新詞自定義詞典import

jieba

sentence="王清晨是信安系主任也是云計(jì)算方面的專家"

jieba.load_userdict("userdict.txt")

words=jieba.lcut(sentence)

print("/".join(words))王清晨/是/信安系/主任/也/是/云計(jì)算/方面/的/專家2.詞性標(biāo)注詞性標(biāo)注:用于確定文本中每個單詞的詞性或詞類。在詞性標(biāo)注中,每個單詞會被分配一個特定的標(biāo)簽,表示其在句子中扮演的語法角色,例如名詞、動詞、形容詞、副詞等。這些標(biāo)簽可以提供有關(guān)單詞的語法和語義信息,對于句子的理解和后續(xù)的語言處理任務(wù)非常有用。jieba.posseg是jieba庫中的詞性標(biāo)注模塊,可以將中文文本分詞后,為每個分詞結(jié)果賦予對應(yīng)的詞性標(biāo)簽。標(biāo)簽體系基于北大《人民日報(bào)》語料庫標(biāo)準(zhǔn)和

ICTCLAS標(biāo)注規(guī)范標(biāo)識基本詞性(如名詞、動詞)、細(xì)粒度分類(如人名、地名)和特殊標(biāo)簽(如助詞、標(biāo)點(diǎn))等信息8.2.2詞性標(biāo)注jieba.posseg算法核心基于前綴詞典的分詞算法:jieba使用了基于前綴詞典的分詞算法,該算法將待分詞的文本按照最大概率路徑進(jìn)行切分,并且通過動態(tài)規(guī)劃來實(shí)現(xiàn)高效的分詞。隱馬爾可夫模型(HMM)詞性標(biāo)注:HMM是一種統(tǒng)計(jì)模型,用于描述一個含有隱含未知參數(shù)的馬爾可夫過程,它可以根據(jù)詞語的上下文推測出最可能的詞性。其他優(yōu)化策略、詞頻統(tǒng)計(jì)等方法,以提高分詞和詞性標(biāo)注的準(zhǔn)確性和效率。詞性標(biāo)注import

jieba.possegaspsg

text="我和朋友去欣賞頤和園西堤的美景"

seg=psg.lcut(text)

for

elementin

seg:

print(element.word,element.flag)我r和c朋友n去v欣賞v頤和園ns西堤nr的uj美景n代詞連詞名詞動詞地名人名單詞詞性詞性標(biāo)注import

jieba.possegas

psg

text="山西擁有眾多著名景區(qū),如五臺山的佛教圣地、云岡石窟的石窟藝術(shù)、平遙古城的明清建筑、懸空寺的奇特建筑、太原古城墻的歷史遺跡和雁門關(guān)的自然風(fēng)光。這些景區(qū)展現(xiàn)了山西豐富的文化底蘊(yùn)和壯美的自然風(fēng)景,吸引著游客和歷史文化愛好者前來探訪。"

seg=psg.lcut(text)ls=print(ls)['山西','五臺山','云岡石窟','古城','太原','雁門關(guān)','山西']#提取地名信息[x.wordfor

xin

segif

x.flag=='ns']3.關(guān)鍵詞提取關(guān)鍵詞抽取:從一段文本中抽取出最具代表性的、能夠概括文本主題的關(guān)鍵詞或短語。通過對文本進(jìn)行自然語言處理和計(jì)算機(jī)算法分析,可以抽取出文本中出現(xiàn)頻率較高、與主題相關(guān)性較強(qiáng)的單詞或短語。這些關(guān)鍵詞可以幫助讀者快速了解文本主題,也有助于搜索引擎優(yōu)化和信息檢索。jieba使用

TF-IDF/TextRank算法抽取關(guān)鍵詞。其中,TF-IDF通過計(jì)算一個詞語在文本中的重要程度提取關(guān)鍵詞。3.關(guān)鍵詞提取TF-IDF由TF和IDF兩部分組成TF

表示詞頻(TermFrequency),指某個詞在文本中出現(xiàn)的次數(shù)。如果一個詞在文本中多次出現(xiàn),那么它很有可能與文本的主題密切相關(guān),因此應(yīng)該給予較高的權(quán)重。IDF表示逆文檔頻率(InverseDocumentFrequency),指包含這個詞的文檔在整個語料庫中出現(xiàn)的頻率的倒數(shù)。如果一個詞在整個語料庫中很常見,那么它對區(qū)分不同文本的能力就較低,因此應(yīng)該給予較低的權(quán)重;相反,則它對于區(qū)分不同文本的能力就較強(qiáng),因此應(yīng)該給予較高的權(quán)重。TF-IDF=TF*IDF3.關(guān)鍵詞提取#假設(shè)有包含多篇文檔的語料庫corpus=[

'Thisisthefirstdocument.',

'Thisdocumentistheseconddocument.',

'Andthisisthethirdone.',

'Isthisthefirstdocument?'

]#假設(shè)有包含多篇文檔的語料庫corpus=[

'This

is

thefirstdocument.',

'Thisdocumentistheseconddocument.',

'Andthis

is

thethirdone.',

'Is

this

thefirstdocument?'

]區(qū)分不同文本的能力弱3.關(guān)鍵詞提取jieba.analyse:jieba庫中的關(guān)鍵詞提取功能模塊jieba.analyse.extract_tags(text,topK=10,withWeight=True)參數(shù)text:需要提取關(guān)鍵詞的文本內(nèi)容topK:需要提取的關(guān)鍵詞數(shù)量withWeight:是否返回關(guān)鍵詞的權(quán)重返回值:關(guān)鍵詞列表,每個關(guān)鍵詞可以攜帶權(quán)重信息3.關(guān)鍵詞提取import

jieba.analyse

asja

text="山西擁有眾多著名景區(qū),如五臺山的佛教圣地、云岡石窟的石窟藝術(shù)、平遙古城的明清建筑、懸空寺的奇特建筑、太原古城墻的歷史遺跡和雁門關(guān)的自然風(fēng)光。這些景區(qū)展現(xiàn)了山西豐富的文化底蘊(yùn)和壯美的自然風(fēng)景,吸引著游客和歷史文化愛好者前來探訪。"

keywords=ja.extract_tags(text,topK=5,withWeight=True)

for

word,weight

in

keywords:

print("{:<10}weight:{:.2f}".format(word,weight))景區(qū)weight:0.41山西weight:0.32懸空寺weight:0.30建筑weight:0.30壯美weight:0.28中文文本分析實(shí)例情感分析的用途覆蓋商業(yè)、金融、醫(yī)療、政治等多個領(lǐng)域,量化主觀信息,快速捕捉公眾情緒變化,自動處理海量文本等產(chǎn)品評價(jià)分析:了解消費(fèi)者對產(chǎn)品的滿意度,優(yōu)化產(chǎn)品設(shè)計(jì)或營銷策略競爭對手分析:比較競品的情感傾向,發(fā)現(xiàn)自身產(chǎn)品的優(yōu)勢或不足內(nèi)容推薦:根據(jù)用戶評論的情感傾向調(diào)整推薦內(nèi)容自動客服系統(tǒng):識別用戶投訴中的負(fù)面情緒,優(yōu)先處理緊急問題股市預(yù)測:分析財(cái)經(jīng)新聞或股民論壇的情感傾向,輔助判斷市場情緒患者反饋分析:從醫(yī)療評價(jià)平臺提取患者對醫(yī)院服務(wù)的滿意度輿情監(jiān)測:跟蹤社交媒體上用戶的言論,及時(shí)發(fā)現(xiàn)負(fù)面輿情并采取公關(guān)措施中文文本分析實(shí)例【例】中文情感分析--基于規(guī)則和詞典的情感分析。對用戶評論的褒貶性進(jìn)行判斷是情感分析的常用方法。形容詞、程度副詞和連詞都是用于判斷褒貶的重要依據(jù)。外觀很好,畫質(zhì)也不錯。但是音質(zhì)真的太糟糕了,操作也不方便。使用jieba庫對該評論進(jìn)行分詞,提取所有的形容詞在列表中分別存放褒義詞和貶義詞,文本中每出現(xiàn)一次褒義詞加1分,出現(xiàn)貶義詞減1分。計(jì)算該產(chǎn)品評論的情感分。大于0為積極情感,小于0為消極情感。import

jieba.possegas

psg

comment="外觀很好,畫質(zhì)也不錯。但是音質(zhì)真的太糟糕了,操作也不方便。"

positive_words=['好','不錯','方便','贊']

negative_words=['糟糕','不方便']

words=psg.lcut(comment)

print(words)

score=0for

word,flag

in

words:

ifflag

==

'a':

ifwordinpositive_words:score+=1

elifwordinnegative_words:score-=1

print(word,score)

ifscore>0:

print(score,"positivefeeling")else:

print(score,"negtivefeeling")a:形容詞[pair('音質(zhì)','n'),pair('真的','d'),pair('太','d'),pair('糟糕','a'),pair('了','ul'),pair(',','x'),pair('操作','v'),pair('也','d'),pair('不','d'),pair('方便','a'),pair('。','x'),pair('但是','c'),pair('外觀','n'),pair('很','d'),pair('好','a'),pair(',','x'),pair('畫質(zhì)','n'),pair('也','d'),pair('不錯','a'),pair('。','x')]2positivefeeling不方便:處理否定詞is_not=False#引入“不”的判斷

score=0

forword,flag

inwords:

ifflag

==

'a':

ifis_not:#出現(xiàn)否定詞,情感取反

ifwordinpositive_words:

score-=1

elifwordinnegative_words:

score+=1

is_not=False#否定詞結(jié)束

else:

ifwordinpositive_words:

score+=1

elifwordinnegative_words:

score-=1

ifword=="不":

is_not=True0negtivefeeling[pair('音質(zhì)','n'),pair('真的','d'),pair('太','d'),pair('糟糕','a'),pair('了','ul'),pair(',','x'),pair('操作','v'),pair('也','d'),pair('不','d'),pair('方便','a'),pair('。','x'),pair('但是','c'),pair('外觀','n'),pair('很','d'),pair('好','a'),pair(',','x'),pair('畫質(zhì)','n'),pair('也','d'),pair('不錯','a'),pair('。','x')]"外觀很好,畫質(zhì)也不錯。但是音質(zhì)真的太糟糕了,操作也不方便。"

"音質(zhì)真的太糟糕了,操作也不方便。但是外觀很好,畫質(zhì)也不錯。"處理但是的轉(zhuǎn)折is_not=False

score=0

forword,flag

inwords:

ifflag

==

'a':#a:形容詞

…………

ifword=="不":

is_not=True

elifword=="但是":#引入“但是”的轉(zhuǎn)折處理

ifscore>0:

score-=1

else:

score+=1-1negtivefeeling[pair('外觀','n'),pair('很','d'),pair('好','a'),pair(',','x'),pair('畫質(zhì)','n'),pair('也','d'),pair('不錯','a'),pair('。','x'),pair('但是','c'),pair('音質(zhì)','n'),pair('真的','d'),pair('太','d'),pair('糟糕','a'),pair('了','ul'),pair(',','x'),pair('操作','v'),pair('也','d'),pair('不','d'),pair('方便','a'),pair('。','x')]"外觀很好,畫質(zhì)也不錯。但是音質(zhì)真的太糟糕了,操作也不方便。"is_not=False

score=0

forword,flag

inwords:

ifflag

==

'a':#a:形容詞

…………

ifword=="不":

is_not=True

elifword=="但是":#引入“但是”的轉(zhuǎn)折處理

ifscore>0:

score-=1

else:

score+=1"音質(zhì)真的太糟糕了,操作也不方便。但是外觀很好,畫質(zhì)也不錯。"[pair('音質(zhì)','n'),pair('真的','d'),pair('太','d'),pair('糟糕','a'),pair('了','ul'),pair(',','x'),pair('操作','v'),pair('也','d'),pair('不','d'),pair('方便','a'),pair('。','x'),pair('但是','c'),pair('外觀','n'),pair('很','d'),pair('好','a'),pair(',','x'),pair('畫質(zhì)','n'),pair('也','d'),pair('不錯','a'),pair('。','x')]1positivefeelingweight={'很':2,"太":3,"非常":2,"較":1,"極":3,"無比":4}#引入權(quán)重"外觀很好,畫質(zhì)也不錯。但是音質(zhì)真的太糟糕了,操作也不方便。"判斷前面的詞是否為這些加權(quán)詞=>記錄每個詞的前詞[pair('音質(zhì)','n'),pair('真的','d'),pair('太','d'),pair('糟糕','a'),pair('了','ul'),pair(',','x'),pair('操作','v'),pair('也','d'),pair('不','d'),pair('方便','a'),pair('。','x'),pair('但是','c'),pair('外觀','n'),pair('很','d'),pair('好','a'),pair(',','x'),pair('畫質(zhì)','n'),pair('也','d'),pair('不錯','a'),pair('。','x')]weight={'很':2,"太":3,"非常":2,"較":1,"極":3,"無比":4}is_not=False

score=0word_pre=""#前一個詞forword,flag

inwords:

ifflag

==

'a':#a:形容詞

ifis_not:#出現(xiàn)否定詞,情感取反

ifwordinpositive_words:

score-=1

elifwordinnegative_words:

score+=1

is_not=False#否定詞結(jié)束

elifis_not==False:#未出現(xiàn)否定詞

ifwordinpositive_words:

score+=1

elifwordinnegative_words:

score-=1

……

word_pre=word

#記錄前一個詞-2negtivefeeling*weight.get(word_pre,1)*weight.get(word_pre,1)*weight.get(word_pre,1)*weight.get(word_pre,1)該情感分析方法的優(yōu)點(diǎn)簡單直觀基于規(guī)則和詞典的方法易于理解和實(shí)現(xiàn),通過簡單的加減分規(guī)則即可量化情感傾向,邏輯清晰可解釋性強(qiáng)每個詞的貢獻(xiàn)(加分或減分)明確,便于人工驗(yàn)證和調(diào)整規(guī)則和詞典可以靈活定制,例如添加新的褒貶義詞或調(diào)整權(quán)重處理否定和轉(zhuǎn)折通過引入否定詞(如“不”)和轉(zhuǎn)折詞(如“但是”)的處理邏輯,能夠捕捉部分上下文信息,提升分析的準(zhǔn)確性支持動態(tài)調(diào)整可以動態(tài)調(diào)整權(quán)重(如程度副詞“很”“太”),增強(qiáng)對情感強(qiáng)度的區(qū)分能力無需大量訓(xùn)練數(shù)據(jù)與機(jī)器學(xué)習(xí)方法相比,不需要標(biāo)注大量數(shù)據(jù)訓(xùn)練模型,適合小規(guī)?;蛱囟I(lǐng)域的情感分析基于規(guī)則和詞典的情感分析該情感分析方法的缺點(diǎn)依賴詞典質(zhì)量需要人工構(gòu)建和維護(hù)褒貶義詞庫,覆蓋范圍有限,難以應(yīng)對新詞或領(lǐng)域特定詞匯忽略上下文語義單純依賴詞頻和規(guī)則,無法理解句子深層語義。例如,“好得不像話”實(shí)際是褒義,但可能被誤判為否定。處理長文本效果有限對長文本或多主題文本的情感分析可能失效,因?yàn)橐?guī)則難以覆蓋全局上下文。否定和轉(zhuǎn)折的局限性僅能處理簡單的否定詞(如“不”)和轉(zhuǎn)折詞(如“但是”),對于嵌套否定(如“并不是不友好”)或復(fù)雜句式容易誤判。權(quán)重設(shè)計(jì)主觀程度副詞的權(quán)重(如“很”=2,“太”=3)依賴人工設(shè)定,缺乏數(shù)據(jù)支持,可能不夠精準(zhǔn)機(jī)器學(xué)習(xí)方法實(shí)驗(yàn)1:智能問答實(shí)驗(yàn)1:智能問答

知識點(diǎn):文本的統(tǒng)計(jì)特征表示Dictionary(詞典):將文本中的詞映射到唯一的整數(shù)IDCorpus(語料庫)與詞袋模型(Bag-of-Words,BoW):文檔集合的統(tǒng)計(jì)表示,每個文檔表示為詞袋模型(ID,頻率)TF-IDF(詞頻-逆文檔頻率)模型:改進(jìn)的詞袋模型,衡量詞在文檔中的重要性文本的統(tǒng)計(jì)特征表示詞典語料庫(Corpus)和詞袋模型(BoW)為每個詞分配一個唯一的ID將文檔中的詞轉(zhuǎn)換為其在詞典中的ID及出現(xiàn)的次數(shù)TF-IDF模型利用詞的頻率和逆文檔頻率計(jì)算每個詞的重要性文檔集合計(jì)算文本相似度等新文檔questions=['自然語言處理的定義及其重要性是什么?','文本預(yù)處理的步驟和目的有哪些?','詞嵌入技術(shù)如何改善自然語言處理的效果?','深度學(xué)習(xí)在自然語言處理中的主要應(yīng)用是什么?','當(dāng)前自然語言處理的研究熱點(diǎn)及其應(yīng)用前景如何?’]answers=['自然語言處理是人工智能的一個分支,旨在使計(jì)算機(jī)能夠理解、解釋和生成自然語言,涉及語言學(xué)、計(jì)算機(jī)科學(xué)和統(tǒng)計(jì)學(xué)等多個學(xué)科。','文本預(yù)處理是自然語言處理中的重要步驟,包括去除停用詞、詞干提取和詞形還原等,以提高模型的性能和準(zhǔn)確性。','詞嵌入技術(shù)用于將詞匯映射到低維向量空間中,能夠捕捉詞匯之間的語義關(guān)系,改善文本分析效果。','深度學(xué)習(xí)在自然語言處理中的應(yīng)用包括序列到序列模型、循環(huán)神經(jīng)網(wǎng)絡(luò)和變換器,這些模型能夠處理復(fù)雜的語言任務(wù),如翻譯和文本生成。','當(dāng)前自然語言處理的研究熱點(diǎn)包括情感分析、對話系統(tǒng)和自動文本摘要等,這些技術(shù)正在不斷推動人機(jī)交互的進(jìn)步。']任務(wù)1:構(gòu)建智能問答的問答對。jieba(結(jié)巴)分詞是一個常用的中文分詞工具,可以為后續(xù)的NLP任務(wù)提供基礎(chǔ)支持。中文分詞:將中文文本切分成有意義的詞語,并可以添加自定義詞典,糾正分詞錯誤或增加領(lǐng)域特定的詞匯。詞性標(biāo)注:jieba能夠?qū)Ψ衷~結(jié)果進(jìn)行詞性標(biāo)注,即為每個詞語添加對應(yīng)的詞性標(biāo)簽。這對于詞義消歧、命名實(shí)體識別等任務(wù)非常有用。關(guān)鍵詞提?。簀ieba提供了基于TF-IDF/TextRank算法的關(guān)鍵詞提取功能,可以從文本中自動抽取出重要的關(guān)鍵詞。任務(wù)2:數(shù)據(jù)預(yù)處理(jieba庫)。函數(shù)說明jieba.lcut(s)精確模式,返回一個列表類型jieba.add_word(w)向分詞字典中增加新詞jieba.load_userdict(file)向分詞字典中添加自定義字典任務(wù)2:數(shù)據(jù)預(yù)處理(jieba庫)。任務(wù)2:數(shù)據(jù)預(yù)處理(jieba庫)。添加自定義詞jieba.add_word("自然語言處理")jieba.add_word("深度學(xué)習(xí)")jieba.add_word("詞嵌入")sentences=[]forquestioninquestions:

seg_list=jieba.lcut(question)

sentences.append(seg_list)“自然語言處理”“深度學(xué)習(xí)”“詞嵌入”任務(wù)2:數(shù)據(jù)預(yù)處理(jieba庫)。去停用詞“的”“是”“和”“中”“?”stoplist=["是","和","中","的","?"]#停用詞列表documents=[]forsentenceinsentences:

tmp=[]

forwordinsentence:

ifwordnotinstoplist:

tmp.append(word)

documents.append(tmp)任務(wù)3:建立TF-IDF模型。創(chuàng)建詞典表示為詞袋模型創(chuàng)建TF-IDF模型將文檔換為TF-IDF向量表示dictionary=corpora.Dictionary(documents)#創(chuàng)建詞典print(dictionary.token2id){'什么':0,'及其':1,'定義':2,'自然語言處理':3,'重要性':4,'哪些':5,'文本':6,'有':7,'步驟':8,'目的':9,'預(yù)處理':10,'如何':11,'技術(shù)':12,'改善':13,'效果':14,'詞嵌入':15,'主要':16,'在':17,'應(yīng)用':18,'深度學(xué)習(xí)':19,'前景':20,'當(dāng)前':21,'熱點(diǎn)':22,'研究':23}任務(wù)3:建立TF-IDF模型。創(chuàng)建詞典表示為詞袋模型創(chuàng)建TF-IDF模型將文檔換為TF-IDF向量表示corpus=[]fordocumentindocuments:

corpus.append(dictionary.doc2bow(document))[[(0,1),(1,1),(2,1),(3,1),(4,1)],[(5,1),(6,1),(7,1),(8,1),(9,1),(10,1)],[(3,1),(11,1),(12,1),(13,1),(14,1),(15,1)],[(0,1),(3,1),(16,1),(17,1),(18,1),(19,1)],[(1,1),(3,1),(11,1),(18,1),(20,1),(21,1),(22,1),(23,1)]]任務(wù)3:建立TF-IDF模型。創(chuàng)建詞典表示為詞袋模型創(chuàng)建TF-IDF模型將文檔換為TF-IDF向量表示tfidf_model=models.TfidfModel(corpus)corpus_tfidf=tfidf_model[corpus]文檔1的TF-IDF向量表示:[(0,0.3485847413542797),(1,0.3485847413542797),(2,0.6122789185961829),(3,0.08489056411237639),(4,0.6122789185961829)]任務(wù)4:計(jì)算文本相似度。創(chuàng)建相似度矩陣similarity_index=similarities.MatrixSimilarity(corpus_tfidf)[[1.00000000,0.00000000,0.00564751,0.10977542,0.09409548],[0.00000000,1.00000000,0.00000000,0.00000000,0.00000000],[0.00564751,0.00000000,0.99999994,0.00481641,0.07374064],[0.10977542,0.00000000,0.00481641,0.99999994,0.08024823],[0.09409548,0.00000000,0.07374064,0.08024823,1.00000000]]任務(wù)5:智能問答。計(jì)算新問題(文檔)與TF-IDF模型中已有問題(文檔)之間的文本相似度,找到最匹配的問題,再將該匹配問題對應(yīng)的答案作為自動回答的結(jié)果question="詞嵌入技術(shù)如何影響自然語言處理模型的訓(xùn)練和性能"new_bow=dictionary.doc2bow(jieba.cut(question))

#詞袋模型向量new_tfidf=tfidf_model[new_bow]#TF-IDF向量表示#計(jì)算新文檔與已有文檔的文本相似度sims=similarity_index[new_tfidf]#對文本相似度按降序排序sims_sorted=sorted(enumerate(sims),key=lambdaitem:-item[1])index=sims_sorted[0][0]

#索引最大值similarity=sims_sorted[0][1]

#文本相似度最大值ifsimilarity>0.5:

print(answers[index])else:

print("對不起,超出了我的答題范圍.")任務(wù)5:智能問答。計(jì)算新問題(文檔)與TF-IDF模型中已有問題(文檔)之間的文本相似度,找到最匹配的問題,再將該匹配問題對應(yīng)的答案作為自動回答的結(jié)果拓展練習(xí)構(gòu)建自定義問答對數(shù)據(jù)集,進(jìn)行基于“文本的統(tǒng)計(jì)特征表示”的智能問答系統(tǒng)實(shí)驗(yàn)

評價(jià)該智能問答系統(tǒng)的語義匹配能力,結(jié)合基于深度學(xué)習(xí)的詞嵌入方式分析該方法的優(yōu)勢和劣勢實(shí)驗(yàn)2:調(diào)用大模型API

使用大語言模型的方式對話交互方式:瀏覽器/客戶端交互、輸入自然語言、模型實(shí)時(shí)生成響應(yīng)API調(diào)用方式:編程接口訪問、發(fā)送結(jié)構(gòu)化請求、模型返回標(biāo)準(zhǔn)化響應(yīng)實(shí)驗(yàn)2:調(diào)用大模型API百度智能云千帆大模型服務(wù)與開發(fā)平臺ModelBuilder(千帆平臺):百度為開發(fā)者和企業(yè)提供的一個全面的人工智能服務(wù)平臺,幫助用戶輕松構(gòu)建、訓(xùn)練和部署大規(guī)模的人工智能模型。平臺集成了文心、DeepSeek、Llama等眾多大模型,提供了靈活、高效的API,支持自然語言處理、圖像識別、語音識別等應(yīng)用場景。/qianfan/overview調(diào)用API的原理

客戶端/服務(wù)器架構(gòu)客戶端:開發(fā)者應(yīng)用(發(fā)送結(jié)構(gòu)化請求)服務(wù)端:大模型運(yùn)行平臺(返回JSON格式響應(yīng))通信協(xié)議:基于HTTPS的RESTful架構(gòu)步驟:

認(rèn)證鑒權(quán)(驗(yàn)證用戶或系統(tǒng)身份合法性)

構(gòu)造請求添加認(rèn)證頭(如Authorization:Bearerbce-xxx)封裝請求體(如提問、歷史信息)

通過Python的requests庫發(fā)送請求、接收響應(yīng)解析響應(yīng)結(jié)果(文本/二進(jìn)制)實(shí)驗(yàn)2:調(diào)用大模型API千帆平臺API調(diào)用(1)注冊并獲取千帆平臺的APIKey①注冊并登錄百度賬號②獲取APIKey(2)調(diào)用大模型API實(shí)驗(yàn)2:調(diào)用大模型API

申請API_KEY:/iam/#/iam/apikey/list安全起見,可以將其保存至操作系統(tǒng)環(huán)境變量實(shí)驗(yàn)2:調(diào)用大模型APIimportosapi_key=os.getenv('BAIDU_API_KEY_0608')實(shí)驗(yàn)2:調(diào)用大模型API調(diào)用千帆平臺大模型API大多采用APIKey鑒權(quán)方式,發(fā)送API請求時(shí),需要在請求頭(headers)的Authorization參數(shù)中包含APIKey用于鑒權(quán)。填入鑒權(quán)信息時(shí),在APIKey前面需加上“Bearer”(用空格隔開)#請求頭headers={

'Content-Type':'application/json',

'Authorization':'Bearer

'+api_key}實(shí)驗(yàn)2:調(diào)用大模型API請求體model:指定調(diào)用模型messages:消息數(shù)組,包含對話歷史的上下文信息role:消息角色(user為人類用戶的輸入)content:消息的具體文本內(nèi)容importjson

payload=json.dumps({#將Python字典轉(zhuǎn)換為JSON字符串

"model":"deepseek-v3",#模型名稱

"messages":[{

"role":"user",

"content":"千帆大模型簡介"

#用戶發(fā)送的消息內(nèi)容

}]})實(shí)驗(yàn)2:調(diào)用大模型API查找調(diào)用模型的名字:百度智能云文檔中心/doc/WENXINWORKSHOP/index.html實(shí)驗(yàn)2:調(diào)用大模型API

調(diào)用過程#發(fā)送請求、接收響應(yīng)response=requests.post(API_URL,headers=headers,data=payload)#提取API返回的答案result_json=response.json()#大模型的URLAPI_URL="/v2/chat/compl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論