深度學習入門(4)----用循環神經網絡進行自然語言處理

應用背景介紹:

自然語言具有時序特徵,因此可以通過循環神經網絡對自然語言進行處理。自然語言是以詞、句、文章這些語言元素爲單位的。python中最常用的word2vec工具是可以將單詞轉換成向量,將單詞轉換成向量的好處主要有以下兩個:
(1)將單詞向量化,實現數字化處理,從而直接通過神經網絡進行計算;
(2)利用了向量之間的距離計算,從而可以計算出不同的單詞之間的距離,從而不同的單詞之間的關係可以用距離向量來表示。

提醒:

在進行訓練之前,需要通過如下的語句安裝gensim模塊:

pip install gensim

本例代碼如下:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import gensim

sentences = [['this', 'is', 'a', 'hot', 'pie'], ['this', 'is', 'a', 'cool', 'pie'],
             ['this', 'is', 'a', 'red', 'pie'], ['this', 'is', 'not', 'a', 'hot', 'pie']]

model = gensim.models.Word2Vec(sentences, min_count=1)

print(model.wv['this'])
print(model.wv['is'])
print('vector size:', len(model.wv['is']))
print(model.wv.similarity('this', 'is'))
print(model.wv.similarity('this', 'not'))
print(model.wv.similarity('this', 'a'))
print(model.wv.similarity('this', 'hot'))
print(model.wv.similarity('this', 'cool'))
print(model.wv.similarity('this', 'pie'))

print(model.wv.most_similar(positive=['cool', 'red'], negative=['this']))

代碼說明:

(1)sentences 是本例中的訓練數據,是4句話,並且是按照全小寫,每個詞分開的格式組成一個二維數組;
(2)model = gensim.models.Word2Vec(sentences, min_count=1)中的參數min_count官方的解釋是:Ignores all words with total frequency lower than this,作用是忽略掉出現次數小於min_count的單詞;
(3)print(model.wv[‘this’])輸出’this’的單詞向量,是一個100項數字組成的向量;
(4)print(model.wv.similarity(‘this’, ‘is’))輸出單詞’this’和‘is’的相似值;
(5)print(model.wv.most_similar(positive=[‘cool’, ‘red’], negative=[‘this’])),most_similar表示獲取本模型中與指定單詞最相近的詞,其中positive表示指定需要尋找相近單詞的詞,negative用於指定希望與其相似度較遠的單詞。

運行結果如下:

在這裏插入圖片描述

發佈了16 篇原創文章 · 獲贊 2 · 訪問量 3306
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章