1. 程式人生 > >淺談文字詞向量轉換的機制embedding

淺談文字詞向量轉換的機制embedding

首先感謝大家對上一篇文章的關注吧,建議看這篇文章前先看下上一篇我推送的《20行程式碼實現電影評論情感分析》,上篇文章其實留了個坑,不過不一定坑到大家,因為可能90%的同學可能不會去認真讀一遍程式碼,或者去跑一下程式。上文說道關於文字詞向量轉換的embedding相關的內容,其實是沒有詳細說明的,那這一篇我嘗試著去解釋一些,說的不對的還望各位大神指正,我也是自學的,沒人一起討論,可能有理解不到位的地方。

其實機器學習演算法,無非是矩陣的加減乘除,對於文字string型的資料,必然需要把這類資料轉成數值型的向量,才能方便計算。文字轉詞向量就是起到這樣的作用,當然,方法有很多,這裡我們提到的機制有點類似於演算法word2vector,它會把文字轉成帶有語意的向量。

什麼是帶有語意的向量?就拿上一篇推送裡出現的tflearn.embedding它起到的作用說起。它其實是通過大量的語句分析挖掘出詞語之間的相似度,舉個簡單的例子,假設有大量的語句中都出現“美女喜歡帥哥”、“美女喜歡好看的男人”,那麼演算法會挖掘出“帥哥”和“好看的男人”可能是相似的語意,於是可以通過向量表示,以下向量純屬yy,為了舉例:

美女=[3,5,7]

帥哥=[5,3,9]

好看的男人=[5.1,2.9,9]

“帥哥”和“好看的男人”會被用距離更近的向量表示起來。另外,向量間的距離也可能會建立聯絡,比方說“北京”是“中國”的首都,“巴黎”是“法國”的首都,那麼向量:|中國|-|北京|=|法國|-|巴黎|

通過embedding函式把所有詞向量距離計算出來後,其實每句話就可以通過詞向量組裝成矩陣,簡單的方式是第一行是第一個詞向量,第二行是第二個。那麼兩句話的語意相似度就可以通過簡單的矩陣減法計算啦,感謝收看。

上一篇《20行程式碼實現電影評論情感分析》程式碼地址,我只放了一點點測試資料,完整的資料大家自己去IMDB下吧:https://github.com/jimenbian/sentiment-analysis

相關推薦

文字向量轉換機制embedding

首先感謝大家對上一篇文章的關注吧,建議看這篇文章前先看下上一篇我推送的《20行程式碼實現電影評論情感分析》,上篇文章其實留了個坑,不過不一定坑到大家,因為可能90%的同學可能不會去認真讀一遍程式碼,或者去跑一下程式。上文說道關於文字詞向量轉換的embedding相關的內容,其

二進位制四進位制八進位制十六進位制之間轉換關係及文字在計算機中表示

計數制: 是指用一組固定的符號和統一的規則來計數的方法。按進位的方式計數的數制,成為進位計數制,簡稱進位制。 不同進位制的特性: 1.R進位制,數碼符號都從0到R-1。 2.同一數碼,放在不同位置,含義不同。 3.逢R進1。 不同進位制兩個基本概念:基數和權。 基數:同

es的原理、機制 ,IK分原理

1、分散式的架構es都有哪些機制? 1、主備 primary shard 的副本 replica shard primary shard不能和自己的replica shard放在同一個節點上、 2、容錯 使用選舉機制 master node宕機,選舉mast

算法(1)分中的基本問題

最短 hub 好的 說明 可能 漢語 等等 http ring [TOC] 前言 分詞或說切詞是自然語言處理中一個經典且基礎的問題,在平時的工作中也反復的接觸到分詞問題,用到了不同的模型,不同的方法應用在各個領域中,所以想對分詞問題做一個系統的梳理。大多數分詞問題主要是針對

java中的反射機制

什麼是反射機制? Java反射機制是在執行過程中藉助Reflection API,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任何一個物件,都能夠呼叫它的任意一個方法,這種動態獲取的資訊以及動態呼叫物件的方法的功能成為java語言的反射機制。   java反射機制提供

java中的比較機制

對於程式語言來說,比較機制是核心機制之一,因為平時內建的比較機制,導致我對這個知識點沒有啥概念,總覺得他們本來就可以比較,最近在看Java容器的時候,發現原來Java做的封裝太好了,導致我們平時一般是不會接觸到這點。廢話不多說,來看下Java中的比較機制。 1:comparable介面

SQL Server內部執行機制

        對於已經很熟悉T-SQL的讀者,或者對於較專業的DBA來說,邏輯的增刪改查,或者較複雜的SQL語句,都是非常簡單的,不存在任何挑戰,不值得一提,那麼,SQL的哪些方面是他們的挑戰 或者軟肋呢? 那就是sql優化。然而,要向成為一個好的Sql優化高手,首

3-8086CPU的記憶體分段機制

1. 記憶體分段 在上一篇我們知道8086CPU在訪問記憶體使用了分段機制,即通過“(段地址×16)+偏移地址=實體地址”的方式來確定記憶體單元的實體地址,需要明白的是記憶體空間是一個連續的線性空間,對於記憶體本身來說並沒有劃分段,這其實是CPU為了方便定址而使用了記憶體分段機制。

Android的訊息處理機制--Handler

1.為什麼有Handler? 在UI執行緒中不能進行耗時操作,例如資料讀寫、網路請求、圖片載入等,所以這些操作被放在子執行緒裡,Handler便是子執行緒和UI執行緒之間通訊的橋樑之一。 2.幹什麼用的? 進行非同步訊息處理,即上述內容。 3.Handler類裡面有什麼是必須知道

JavaScript的型別轉換

這些是本人在 github.pages上寫的部落格,歡迎大家關注和糾錯,本人會定期在github pages上更新。有想要深入瞭解的知識點可以留言。 概述 在 JavaScript 中,將一種值型別轉換為另一種值型別,叫做型別轉換,出於動態型語言的特性,型別轉換髮生在執行時階段。這些轉換在我們平

Java中的鎖機制介紹

淺談Java中的鎖一、    悲觀鎖和樂觀鎖    悲觀鎖(Pessimistic Lock):顧名思義,就是很悲觀,每次去拿資料的時候都認為別人會修改,所以每次在拿資料的時候都會上鎖,這樣別人想拿這個資料就會block直到它拿到鎖。傳統的關係型資料庫裡邊就用到了很多這種鎖機

演算法(4)基於字的分方法(CRF)

目錄 前言 目錄 條件隨機場(conditional random field CRF) 核心點 線性鏈條件隨機場 簡化形式 CRF分詞 CRF VS HMM 程式碼實現 訓練程式碼 實驗結果 參考文獻

無監督學習:嵌入or向量(Word Embedding

  National Taiwan University (NTU)李巨集毅老師的《Machine Learning》的學習筆記,因此在全文對視訊出現的內容多次引用。初出茅廬,學藝不精,有不足之處還望大家不吝賜教。   歡迎大家在評論區多多留言互

Redis中的Rehash機制

已經很久沒寫過純C的程式碼了,最近在學習redis,驚歎於它的強大優雅,同時也在閒暇之餘翻看它的原始碼,結構非常清晰,各個模組的功能也十分明確,非常適合閱讀與學習。 眾所周知,redis支援多種資料結構,其中dict是使用頻率相當高,也是非常實用的一種

poe的偷取機制

影響生命偷取的屬性有3個: 1.基礎偷取率(x% of ** damage leeched as life) 當你的攻擊擊中一次某個可以被偷取的敵人的時候,這次擊中將會產生一個偷取單位,這個單位儲存著 該次擊中產生的傷害×該次擊中的屬性對應的基礎偷取率之和

下linux的記憶體機制

Linux的記憶體管理採取的是分頁存取機制,為了保證實體記憶體能得到充分的利用,核心會在適當的時候將實體記憶體中不經常使用的資料塊自動交換到虛擬記憶體中,而將經常使用的資訊保留到實體記憶體。 各項指標: --Mem total1 實體記憶體總數: 3832M use

Android中的Handler機制

Handler是Android中提供的一種非同步回撥機制,也可以理解為執行緒間的訊息機制。為了避免ANR,我們通常會把一些耗時操作(比如:網路請求、I/O操作、複雜計算等)放到子執行緒中去執行,而當子執行緒需要修改UI時則子執行緒需要通知主執行緒去完成修改UI的

ASP.NET之旅--Asp.net的執行機制(二)

      上節中我們從Http請求在Asp.net中的執行過程進行了分析,但是對於真正核心的東西我們並沒有說明,那接下來我們將問題上拋,從底層類和物件的建立層面上來看Asp.net的執行機制。 三、Asp.net底層執行機制    1、理解HTTP.SYS      

瀏覽器 http 的快取機制

(點選上方公眾號,可快速關注)原文:VaJoy Larn(@VaJoy_學霸模式重啟)www.c

學習筆記-----彙編指令CMP執行機制

在彙編中,CMP和JMP指令常常用於比較操作,而且檢視反彙編原始碼時也發現不管是.IF偽指令還是其他的底層都是用CMP實現的。 指令格式: CMP 目的運算元,源運算元 計算機在遇到CMP指令的時候,CPU將目的運算元和源運算元做減法(即目的運算元-源運算元)從而根據運算結