NLP-什麼是one hot?
本文已參與「新人創作禮」活動,一起開啟掘金創作之路。
在文字中,如果需要對其進行相似度計算或者其他計算時,文字是無法直接進行計算的,所以就需要對文字進行量化處理,也就是進行數字編碼才能對文字進行計算,而one hot就是其中一種出現比較早也比較簡單的編碼方式。
一、one-hot編碼
one-hot編碼被稱為【獨熱碼,在英文文獻中稱做 one-hot code, 直觀來說就是有多少個狀態就有多少位元,而且只有一個位元為1,其他全為0的一種碼制】$^{[1]}$。 簡單的來說就是用0和1的編碼方式來表示需要處理的一些資訊,以達到該資訊向量化的一種手段。
- 有如下兩組特徵屬性:
- 性別:["男","女"]
- 愛好:["籃球","足球","乒乓球"]
男、女的序號分別為0、1 籃球、足球、乒乓球的序號分別為0、1、2
性別有兩個屬性,那麼可以兩位的特徵向量來表示男性和女生,分別為
$男=(1,0),女=(0,1),$
愛好有三個屬性,那麼可以三位的特徵向量來表示籃球、足球和乒乓球,分別為
$籃球=(1,0,0),足球=(0,1,0),乒乓球=(0,0,1)$
二、文字的one-hot表示
假設有如下語料
明天 我們 去 看 電影
明天 我們 去 爬山
明天 我們 去 運動
我 喜歡 打 籃球
我 不 喜歡 看 電視
上述五句話中一共涉及13個詞,分別為
[明天 我們 去 看 電影 爬山 運動 我 喜歡 打 籃球 不 電視]
可以用13位的向量表示每一句話,分別如下
[1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
[1. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
[1. 1. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]
[0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1.]
三、基於keras程式碼實現
```python from keras.preprocessing.text import Tokenizer corpus=[ '明天 我們 去 看 電影', '明天 我們 去 爬山', '明天 我們 去 運動', '我 喜歡 打 籃球', '我 不 喜歡 看 電視' ]
tokenizer=Tokenizer() tokenizer.fit_on_texts(corpus) sequences=tokenizer.texts_to_matrix(corpus) print(sequences[:,1:]) ```
【引用】
[1] 百度百科
- NLP-中文分詞:最大正向匹配演算法
- 重陽節營銷看這篇,助力你的創意之路節節登高
- 牛散“夫妻檔”夏重陽、張素芬撰寫“捕牛者說”,一隻牛股暴賺1500萬,還看中了一家“殼公司”
- NLP-統計語言模型的平滑處理方法
- NLP-什麼是one hot?
- 人大重陽x抖音x民生研究230頁展望2030年的元宇宙
- 評論丨重陽節,老年版“手機應用商店”值得別樣期待
- 佳節又重陽 國家政務服務平臺“智慧助老”在行動
- 意派Epub360丨重陽節品牌祝福海報H5案例,創意十足!
- 這套重陽節文案,我懟得太爽了
- 10月營銷熱點日曆丨國慶節、寒露、霜降、重陽節
- 百億級私募最新持倉曝光!馮柳、重陽齊聚一隻股票,莊濤抄底淳中科技……
- 1、幾十行程式碼實現一個聊天室
- 聚好看“黑科技”重陽獻禮 溫情科技拉近父母與你的距離