NLP基礎(chǔ):NNLM模型代碼示例

原文鏈接:NLP基礎(chǔ):NNLM模型代碼示例


導讀:在NLP基礎(chǔ):NNLM模型介紹中建钥,已經(jīng)介紹了NNLM模型原理藤韵,通過對網(wǎng)上已發(fā)布的代碼進行完善并標注熊经,進行模型代碼示例展示欲险。

Keras實現(xiàn)

代碼主要部分如下:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

from keras.models import Sequential

import numpy as np

import tensorflow as tf

import re

sentences = [ "我渴了", "你真好", "他的錯", "對不起" , "他走了"]

# NNLM Parameter

n_step = len(sentences[0])-1 # number of steps ['我 渴', '你 真', '他 的', '對 不', '他 走']

#分字

def seg_char(sent):

? ? pattern = re.compile(r'([\u4e00-\u9fa5])')

? ? chars = pattern.split(sent)

? ? chars =[w for w in chars if len(w.strip()) > 0]

? ? return chars

#得到每個句子前n-1個詞和目標詞

chars=np.array([seg_char(i)for i in sentences])

chars=chars.reshape(1,-1)

word_list=np.squeeze(chars)

#['我' '渴' '了' '你' '真' '好' '他' '的' '錯' '對' '不' '起' '他' '走' '了']

word_list = list(set(word_list))

word_dict = {w: i for i, w in enumerate(word_list)}

#{'渴': 0, '錯': 1, '不': 2, '好': 3, '起': 4, '他': 5, '對': 6, '你': 7, '走': 8, '我': 9, '了': 10, '的': 11, '真': 12}

number_dict = {i: w for i, w in enumerate(word_list)}

#{0: '渴', 1: '錯', 2: '不', 3: '好', 4: '起', 5: '他', 6: '對', 7: '你', 8: '走', 9: '我', 10: '了', 11: '的', 12: '真'}

n_class = len(word_dict) # number of Vocabulary

#這里通過one-hot進行詞向量生成

#one-hot轉(zhuǎn)換

def make_batch(sentences):

? ? input_batch = []

? ? target_batch = []

? ? for sen in sentences:

? ? ? ? #將每個句子中的字轉(zhuǎn)化為下標表示

? ? ? ? word = seg_char(sen)

? ? ? ? input = [word_dict[n] for n in word[:-1]]

? ? ? ? target = word_dict[word[-1]]


? ? ? ? #one-hot轉(zhuǎn)換

? ? ? ? input_batch.append(np.eye(n_class)[input])

? ? ? ? target_batch.append(np.eye(n_class)[target])

? ? return input_batch, target_batch

input_batch, target_batch=make_batch(sentences)

input_batch=np.array(input_batch)

#將輸入詞向量進行首尾拼接

input_batch=input_batch.reshape(-1,n_step*n_class)

target_batch=np.array(target_batch)

target_batch=target_batch.reshape(-1,n_class)

from keras.layers import Dense

import keras

#建立模型天试,本模型暫不包含直連邊

def define_model():

? ? model = Sequential()

? ? #Dense為全連接網(wǎng)絡(luò)

? ? model.add(Dense(2,activation='tanh',input_shape=(n_step*n_class,))) # 輸入層

? ? model.add(Dense(n_class, activation='softmax'))? # 輸出層

? ? model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

? ? model.summary()

? ? return model

#訓練模型

model=define_model()

model.fit(input_batch, target_batch, epochs=2000)#訓練2000輪焕盟,數(shù)據(jù)少啦,一兩輪沒效果

#預測測試

predict=model.predict(input_batch)

predict=np.argmax(predict,1)#求取最大值索引

print('輸入的是:',[seg_char(sen)[:2] for sen in sentences])

print('預測得到:',[number_dict[n] for n in predict])

得到結(jié)果如下:

點擊原文:NLP基礎(chǔ):NNLM模型代碼示例灼卢,回復“NNLM”可獲取全部代碼

參考文章:https://blog.csdn.net/kobeyu652

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末来农,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沃于,更是在濱河造成了極大的恐慌,老刑警劉巖繁莹,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咨演,居然都是意外死亡,警方通過查閱死者的電腦和手機饵较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門遭赂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撇他,你說我怎么就攤上這事∧娲猓” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵阿浓,是天一觀的道長。 經(jīng)常有香客問我芭毙,道長,這世上最難降的妖魔是什么退敦? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮侈百,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钝域。我一直安慰自己讽坏,他們只是感情好例证,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胀葱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抵屿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天晌该,我揣著相機與錄音绿渣,去河邊找鬼。 笑死中符,一個胖子當著我的面吹牛誉帅,可吹牛的內(nèi)容都是我干的淀散。 我是一名探鬼主播蚜锨,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亚再!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起则剃,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棍现,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體己肮,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年娄柳,在試婚紗的時候發(fā)現(xiàn)自己被綠了戈稿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片西土。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞍盗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出般甲,到底是詐尸還是另有隱情,我是刑警寧澤敷存,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站觅闽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛉拙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一彻亲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苞尝,春花似錦、人聲如沸宙址。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽令野。三九已至徽级,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間餐抢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工旷痕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欺抗。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像贸人,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子艺智,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容