日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

自然语言处理入门指北 之 one-hot

發(fā)布時(shí)間:2025/3/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自然语言处理入门指北 之 one-hot 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自然語(yǔ)言(Natural Language)通常是指一種自然地隨文化演化的語(yǔ)言,例如,漢語(yǔ)、英語(yǔ)、日語(yǔ)都是自然語(yǔ)言的例子。與編程語(yǔ)言等為計(jì)算機(jī)而設(shè)的“人造”語(yǔ)言相對(duì),自然語(yǔ)言無(wú)法直接被計(jì)算機(jī)等“理解”,在這個(gè)前提下,如何讓計(jì)算機(jī)認(rèn)識(shí)、學(xué)習(xí)乃至理解自然語(yǔ)言就成了一個(gè)重要的研究方向:自然語(yǔ)言處理( Natural Language Processing, NLP) 。

簡(jiǎn)而言之,自然語(yǔ)言處理旨在人與機(jī)器的直接通信,這需要一個(gè)復(fù)雜的系統(tǒng)做支撐,尤其是該系統(tǒng)必須能夠正確的“表示”自然語(yǔ)言。以漢字為例,雖然計(jì)算機(jī)通過(guò)漢字內(nèi)碼擴(kuò)展規(guī)范(GBK字庫(kù))可以正常地顯示漢字,但對(duì)于我們要設(shè)計(jì)的通信系統(tǒng)而言還遠(yuǎn)遠(yuǎn)不夠,因?yàn)闈h字無(wú)法直接參與計(jì)算,繼而無(wú)法量化文本,導(dǎo)致計(jì)算機(jī)無(wú)法在“數(shù)值”上認(rèn)識(shí)漢字,僅僅將其當(dāng)作簡(jiǎn)單的字符,失去了學(xué)習(xí)、理解漢字的基礎(chǔ)。為了更好地發(fā)揮計(jì)算機(jī)的計(jì)算功能,用數(shù)值表示漢字就成了亟待解決的問(wèn)題,這也是計(jì)算機(jī)語(yǔ)言學(xué)(Computational Linguistics)的由來(lái)。

對(duì)于漢字的表示,舉個(gè)簡(jiǎn)單的例子,可以直接對(duì)中文字庫(kù)進(jìn)行id映射,例如將“我”映射為“0”,將“是”映射為“1”,這樣當(dāng)文本中包含“我”和“是”的時(shí)候,直接用對(duì)應(yīng)的id做替換,以此類(lèi)推,“我是中國(guó)人”就可以映射為“12345”,這樣就繞過(guò)了對(duì)中文的處理,轉(zhuǎn)變?yōu)樘幚硐鄳?yīng)的數(shù)字id,并且相應(yīng)的數(shù)字id可直接參與相關(guān)統(tǒng)計(jì)量的計(jì)算,例如需要計(jì)算“我是中國(guó)人”與“我是人”的相似度,可以先將文本映射為向量“[1,2,3,4,5]”與向量“[1,2,5]”,然后再計(jì)算。顯然,這種映射方式有個(gè)致命的問(wèn)題:當(dāng)文本長(zhǎng)度不一致的時(shí)候,向量維度也不一致,即不同長(zhǎng)度文本的表示向量不在一個(gè)特征空間內(nèi),無(wú)法直接參與計(jì)算。可能這時(shí)候有些人會(huì)考慮使用補(bǔ)位的方法來(lái)解決文本長(zhǎng)度不一致的問(wèn)題,例如將空字符id設(shè)置為0并使用空字符補(bǔ)位短文本:“我是人”->“我是人[空字符][空字符]”->向量“[1,2,5,0,0]”,如此就將“我是人”映射至“我是中國(guó)人”的特征空間內(nèi),以實(shí)現(xiàn)相關(guān)計(jì)算問(wèn)題。

簡(jiǎn)單的補(bǔ)位粗暴地解決了計(jì)算問(wèn)題,但又帶來(lái)了其他隱患,還是前文的例子,計(jì)算“我是中國(guó)人”與“我是人”的相似度使用補(bǔ)位方法就轉(zhuǎn)換為計(jì)算向量“[1,2,3,4,5]”與向量“[1,2,5,0,0]”,使用cos可得到相似度結(jié)果:0.4924(計(jì)算公式如下)

上面的例子使用了詞袋模型(Bag of Words)的思想:將自然語(yǔ)言文本的每個(gè)詞作為一個(gè)特征,每個(gè)詞互不相關(guān),文本對(duì)應(yīng)的特征向量即每個(gè)詞的特征的組合。這種思路雖然簡(jiǎn)單,但是可以有效表示全部文本信息。本文的主角one-hot就是根據(jù)詞袋模型設(shè)計(jì)而來(lái),與前文的例子同樣十分簡(jiǎn)單,但在文本表示思路上略有不同。

one-hot開(kāi)始就考慮了文本特征空間一致的問(wèn)題,在文本編碼時(shí)首先將待處理文本中全部字/詞整理為詞典,隨后根據(jù)某個(gè)字在詞典中的位置對(duì)其進(jìn)行編碼,例如“我”在詞典中的位置為k(詞典編號(hào)從1開(kāi)始),詞典大小為n,則設(shè)立一個(gè)n維向量,第k維設(shè)置為1,其余維全都置0。還是前文的例子,假如詞典為[我,是,中,國(guó),人],則“我”的編碼為“[1,0,0,0,0]”,以此類(lèi)推:是[0,1,0,0,0]、中[0,0,1,0,0]、國(guó)[0,0,0,1,0]、人[0,0,0,0,1],如此,“我是中國(guó)人”可將每個(gè)字的編碼簡(jiǎn)單組合在一起編碼為“[1,1,1,1,1]”,同樣“我是人”可編碼為“[1,1,0,0,1]”,二者維度相同,實(shí)際維度由詞典大小決定。依照one-hot編碼計(jì)算相似度,其結(jié)果為0.7746(計(jì)算公式如下)

如果將兩個(gè)結(jié)果0.4924與0.7746看作“我是中國(guó)人”與“我是人”相似的概率,從出現(xiàn)的字本身而言one-hot的結(jié)果0.7746更為合理,因?yàn)槎咦值慕M成十分接近,但是邏輯上不如初始例子的結(jié)果,因?yàn)槎咴诟拍钌系牟罹嗍沟?.4924更為合理。綜上,我們可以根據(jù)不同的任務(wù)環(huán)境選擇更合適的文本編碼方法以取得更好的結(jié)果。

總而言之,因?yàn)樵~袋模型的弊端,導(dǎo)致one-hot編碼忽略了詞與詞之間的關(guān)聯(lián),以至于忽視了語(yǔ)法和語(yǔ)境信息,再加上本身編碼長(zhǎng)度由詞典大小決定,若詞典很大,則每個(gè)詞的編碼極度稀疏,不利于計(jì)算,且編碼文本時(shí)僅考慮出現(xiàn)的字,從而不同字?jǐn)?shù)的同義詞產(chǎn)生不同的編碼,相近字?jǐn)?shù)的反義詞產(chǎn)生相近的編碼,影響最終的計(jì)算結(jié)果。

one-hot編碼作為文本表示的鼻祖,不能忽視其為文本表示帶來(lái)的啟發(fā),包括目前的深度學(xué)習(xí)模型與預(yù)訓(xùn)練模型,都參考了one-hot編碼的思想,只不過(guò)利用了一些小技巧,將one-hot編碼映射為更低維度、更高質(zhì)量的word-embedding,這就是另外的故事了。

總結(jié)

以上是生活随笔為你收集整理的自然语言处理入门指北 之 one-hot的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。