欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python機(jī)器學(xué)習(xí)NLP自然語(yǔ)言處理基本操作詞向量模型

 更新時(shí)間:2021年09月21日 14:36:55   作者:我是小白呀  
本文是Python機(jī)器學(xué)習(xí)NLP自然語(yǔ)言處理系列文章,帶大家開(kāi)啟一段學(xué)習(xí)自然語(yǔ)言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語(yǔ)言處理基本操作詞向量模型

概述

從今天開(kāi)始我們將開(kāi)啟一段自然語(yǔ)言處理 (NLP) 的旅程. 自然語(yǔ)言處理可以讓來(lái)處理, 理解, 以及運(yùn)用人類(lèi)的語(yǔ)言, 實(shí)現(xiàn)機(jī)器語(yǔ)言和人類(lèi)語(yǔ)言之間的溝通橋梁.

在這里插入圖片描述

詞向量

我們先來(lái)說(shuō)說(shuō)詞向量究竟是什么. 當(dāng)我們把文本交給算法來(lái)處理的時(shí)候, 計(jì)算機(jī)并不能理解我們輸入的文本, 詞向量就由此而生了. 簡(jiǎn)單的來(lái)說(shuō), 詞向量就是將詞語(yǔ)轉(zhuǎn)換成數(shù)字組成的向量.

在這里插入圖片描述

當(dāng)我們描述一個(gè)人的時(shí)候, 我們會(huì)使用身高體重等種種指標(biāo), 這些指標(biāo)就可以當(dāng)做向量. 有了向量我們就可以使用不同方法來(lái)計(jì)算相似度.

在這里插入圖片描述

那我們?nèi)绾蝸?lái)描述語(yǔ)言的特征呢? 我們把語(yǔ)言分割成一個(gè)個(gè)詞, 然后在詞的層面上構(gòu)建特征.

在這里插入圖片描述

詞向量維度

詞向量的維度越高, 其所能提供的信息也就越多, 計(jì)算結(jié)果的可靠性就更值得信賴(lài).

50 維的詞向量:

在這里插入圖片描述

用熱度圖表示一下:

在這里插入圖片描述

在這里插入圖片描述

從上圖我們可以看出, 相似的詞在特征表達(dá)中比較相似. 由此也可以證明詞的特征是有意義的.

Word2Vec

Word2Vec 是一個(gè)經(jīng)過(guò)預(yù)訓(xùn)練的 2 層神經(jīng)網(wǎng)絡(luò), 可以幫助我們將單詞轉(zhuǎn)換為向量. Word2Vec 分為兩種學(xué)習(xí)的方法: CBOW 和 Skip-Gram.

在這里插入圖片描述

CBOW 模型

CBOW (Continuous Bag-of-Words) 是根據(jù)單詞周?chē)纳舷挛膩?lái)預(yù)測(cè)中間的詞. 如圖:

在這里插入圖片描述

Skip-Gram 模型

Skip-Gram 用于預(yù)測(cè)同一句子中當(dāng)前單詞前后的特定范圍內(nèi)的單詞.

在這里插入圖片描述

Skip-Gram 所需的訓(xùn)練數(shù)據(jù)集:

在這里插入圖片描述

在這里插入圖片描述

負(fù)采樣模型

如果一個(gè)語(yǔ)料庫(kù)稍微大一些, 可能的結(jié)果簡(jiǎn)直太多了. 詞向量模型的最后一層相當(dāng)于 softmax (轉(zhuǎn)換為概率), 計(jì)算起來(lái)會(huì)非常耗時(shí).

我們可以將輸入改成兩個(gè)單詞, 判斷這兩個(gè)詞是否為前后對(duì)應(yīng)的輸入和輸出, 即一個(gè)二分類(lèi)任務(wù).

在這里插入圖片描述

在這里插入圖片描述

但是我們會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題, 此時(shí)的訓(xùn)練集構(gòu)建出來(lái)的標(biāo)簽全為 1, 無(wú)法進(jìn)行較好的訓(xùn)練. 這時(shí)候負(fù)采樣模型就派上用場(chǎng)了. (默認(rèn)為 5 個(gè))

在這里插入圖片描述

在這里插入圖片描述

詞向量的訓(xùn)練過(guò)程

1. 初始化詞向量矩陣

在這里插入圖片描述

在這里插入圖片描述

2. 神經(jīng)網(wǎng)絡(luò)反向傳播

通過(guò)神經(jīng)網(wǎng)絡(luò)反向傳播來(lái)計(jì)算更新. 此時(shí)不光更新權(quán)重參數(shù)矩陣 W, 也會(huì)更新輸入數(shù)據(jù).

在這里插入圖片描述

詞向量模型實(shí)戰(zhàn)

格式:

Word2Vec(tokenized, sg=1, window=5, min_count=2, negative=1, sample=0.001, hs=1, workers=4)

參數(shù):

seg: 1 為skip-gram算法, 對(duì)低配詞敏感. 默認(rèn) sg=0, CBOW算法

window: 句子中當(dāng)前詞與目標(biāo)詞時(shí)間的最大距離. 3表示在目標(biāo)詞前看3-b個(gè)詞, 后面看b個(gè)詞 (b在0-3之間隨機(jī))

min_count: 對(duì)詞進(jìn)行過(guò)濾, 頻率小于min-cout的單詞會(huì)被忽視, 默認(rèn)值為5

訓(xùn)練模型

import jieba
from gensim.models import Word2Vec
# 獲取停用詞
file = open("../stop_words/cn_stopwords.txt", encoding="utf-8")
stop_word = set(file.read())
print("停用詞:", stop_word)  # 調(diào)試輸出
# 定義語(yǔ)料
content = [
    "長(zhǎng)江是中國(guó)第一大河,干流全長(zhǎng)6397公里(以沱沱河為源),一般稱(chēng)6300公里。流域總面積一百八十余萬(wàn)平方公里,年平均入海水量約九千六百余億立方米。以干流長(zhǎng)度和入海水量論,長(zhǎng)江均居世界第三位。",
    "黃河,中國(guó)古代也稱(chēng)河,發(fā)源于中華人民共和國(guó)青海省巴顏喀拉山脈,流經(jīng)青海、四川、甘肅、寧夏、內(nèi)蒙古、陜西、山西、河南、山東9個(gè)省區(qū),最后于山東省東營(yíng)墾利縣注入渤海。干流河道全長(zhǎng)5464千米,僅次于長(zhǎng)江,為中國(guó)第二長(zhǎng)河。黃河還是世界第五長(zhǎng)河。",
    "黃河,是中華民族的母親河。作為中華文明的發(fā)祥地,維系炎黃子孫的血脈.是中華民族民族精神與民族情感的象征。",
    "黃河被稱(chēng)為中華文明的母親河。公元前2000多年華夏族在黃河領(lǐng)域的中原地區(qū)形成、繁衍。",
    "在蘭州的“黃河第一橋”內(nèi)蒙古托克托縣河口鎮(zhèn)以上的黃河河段為黃河上游。",
    "黃河上游根據(jù)河道特性的不同,又可分為河源段、峽谷段和沖積平原三部分。 ",
    "黃河,是中華民族的母親河。"
]
# 分詞
seg = [jieba.lcut(sentence) for sentence in content]
# 去除停用詞 & 標(biāo)點(diǎn)符號(hào)操作
tokenized = []
for sentence in seg:
    words = []
    for word in sentence:
        if word not in stop_word & {'(', ')'}:
            words.append(word)
    tokenized.append(words)
print(tokenized)  # 調(diào)試輸出
# 創(chuàng)建模型
model = Word2Vec(tokenized, sg=1, window=5, min_count=2, negative=1, sample=0.001, hs=1, workers=4)
# 保存模型
model.save("model")

輸出結(jié)果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
停用詞: {'它', '算', '比', '庶', '針', '乎', '相', '幸', '上', '慢', '叫', '儻', '時(shí)', '出', '爾', '吱', '著', '要', '身', '所', '大', '?', '是', '家', '介', '幾', '隨', '由', '況', '”', '像', '有', '兒', '歸', '果', '簡(jiǎn)', '唷', '您', '啦', '間', '止', '僅', '啊', '喂', '步', '待', ' ', '豈', '料', '二', '或', '結(jié)', '乃', '竟', '人', '方', '若', '無(wú)', '3', '哼', '6', '鑒', '莫', '誰(shuí)', '會(huì)', '們', '嗎', '呸', '讓', '根', '固', '惟', '致', '余', '就', '乘', '拿', '啐', '換', '循', '次', '哩', '代', '死', '類(lèi)', '\n', '經(jīng)', '始', '問(wèn)', '較', ':', '咧', '否', '令', '登', '首', '許', '云', '尚', '得', '這', '諸', '夫', '罷', '見(jiàn)', '多', '種', '嘿', '該', '然', '小', '除', '雖', '兩', '呀', '己', '極', '天', '前', '咦', '進(jìn)', '設(shè)', '望', '對(duì)', '彼', '徒', '反', '咚', '$', '哎', '唉', '呼', '噠', '受', '直', '據(jù)', '連', '體', '哇', '寧', '?', '遵', '言', '任', '今', '點(diǎn)', '憑', '緊', '俺', '獨(dú)', '如', '旦', '正', '哦', '下', '已', '打', '接', '呃', '》', '可', '在', '邊', '縱', '何', '叮', '矣', '每', '過(guò)', '沿', '則', '盡', '樣', '愿', '!', '全', '唄', '0', '值', '非', '《', '另', '轉(zhuǎn)', '給', '成', '年', '切', '特', '往', '恰', '5', '巴', '處', '依', '噯', '哪', '悉', '拘', '到', '些', '眨', '賴(lài)', '巧', '逐', '眼', '自', '2', '說(shuō)', '此', '越', '基', '消', '哧', '至', '嘩', '很', '毋', '用', '省', '般', '借', '。', '還', '曰', '最', ',', '冒', '述', '誠(chéng)', '光', '兼', '啥', '個(gè)', '呵', '別', '其', '免', '曾', '繼', '怎', '先', '甚', '使', '譬', '8', '嗚', '再', '鄙', '抑', '候', '了', '總', '以', '他', '都', '倘', '一', '截', '離', '作', '沖', '啪', '道', '分', '喻', '靠', '因', '等', '什', '達(dá)', '噓', '朝', '按', '句', '話', '者', '及', '管', '故', '關(guān)', '外', '嘍', '孰', '兮', '向', '限', '面', '沒(méi)', '加', '順', '咳', '賊', '么', '亦', '里', '奈', '各', '照', '嘔', '“', '之', '萬(wàn)', '于', '似', '9', '我', '而', '7', '少', '從', '怕', '地', '論', '哉', ';', '去', '某', '又', '_', '4', '將', '把', '和', '能', '呢', '猶', '來(lái)', '也', '阿', '啷', '便', '與', '內(nèi)', '好', '本', '吧', '齊', '知', '單', '歟', '唯', '跟', '嚇', '喔', '第', '部', '喏', '卻', '嗡', '那', '為', '距', '嗬', '1', '起', '咋', '嘛', '被', '即', '并', '喲', '嗯', '、', '仍', '位', '嘻', '趁', '哈', '凡', '例', '騰', '烏', '焉', '替', '且', '假', '但', '漫', '辦', '同', '才', '中', '她', '舊', '真', '妨', '開(kāi)', '既', '通', '難', '趕', '咱', '確', '看', '你', '綜', '期', '只', '臨', '具', '肯', '旁', '后', '嘎', '的', '當(dāng)', '不'}
Loading model cost 1.641 seconds.
Prefix dict has been built successfully.
[['長(zhǎng)江', '是', '中國(guó)', '第一', '大河', ',', '干流', '全長(zhǎng)', '6397', '公里', '(', '以', '沱沱河', '為源', ')', ',', '一般', '稱(chēng)', '6300', '公里', '。', '流域', '總面積', '一百八十', '余萬(wàn)平方公里', ',', '年', '平均', '入海', '水量', '約', '九千', '六百余', '億立方米', '。', '以', '干流', '長(zhǎng)度', '和', '入海', '水量', '論', ',', '長(zhǎng)江', '均', '居', '世界', '第三位', '。'], ['黃河', ',', '中國(guó)', '古代', '也', '稱(chēng)河', ',', '發(fā)源', '于', '中華人民共和國(guó)', '青海省', '巴顏喀拉山', '脈', ',', '流經(jīng)', '青海', '、', '四川', '、', '甘肅', '、', '寧夏', '、', '內(nèi)蒙古', '、', '陜西', '、', '山西', '、', '河南', '、', '山東', '9', '個(gè)', '省區(qū)', ',', '最后', '于', '山東省', '東營(yíng)', '墾利縣', '注入', '渤海', '。', '干流', '河道', '全長(zhǎng)', '5464', '千米', ',', '僅次于', '長(zhǎng)江', ',', '為', '中國(guó)', '第二', '長(zhǎng)河', '。', '黃河', '還是', '世界', '第五', '長(zhǎng)河', '。'], ['黃河', ',', '是', '中華民族', '的', '母親河', '。', '作為', '中華文明', '的', '發(fā)祥地', ',', '維系', '炎黃子孫', '的', '血脈', '.', '是', '中華民族', '民族', '精神', '與', '民族', '情感', '的', '象征', '。'], ['黃河', '被', '稱(chēng)為', '中華文明', '的', '母親河', '。', '公元前', '2000', '多年', '華夏', '族', '在', '黃河', '領(lǐng)域', '的', '中原地區(qū)', '形成', '、', '繁衍', '。'], ['在', '蘭州', '的', '“', '黃河', '第一', '橋', '”', '內(nèi)蒙古', '托克托縣', '河口鎮(zhèn)', '以上', '的', '黃河', '河段', '為', '黃河', '上游', '。'], ['黃河', '上游', '根據(jù)', '河道', '特性', '的', '不同', ',', '又', '可', '分為', '河源', '段', '、', '峽谷', '段', '和', '沖積平原', '三', '部分', '。', ' '], ['黃河', ',', '是', '中華民族', '的', '母親河', '。']]

使用模型

from gensim.models import Word2Vec
# 加載模型
model = Word2Vec.load("model")
# 判斷相似度
sim1 = model.wv.similarity("黃河", "長(zhǎng)江")
print(sim1)
sim2 = model.wv.similarity("黃河", "黃河")
print(sim2)
# 預(yù)測(cè)最接近的人
most_similar = model.wv.most_similar(positive=["黃河", "母親河"], negative=["長(zhǎng)江"])
print(most_similar)

輸出結(jié)果:

0.20415045
0.99999994
[('公里', 0.15817636251449585), ('上游', 0.15374179184436798), ('入海', 0.15248821675777435), ('干流', 0.15130287408828735), ('的', 0.14548806846141815), ('是', 0.11208685487508774), ('段', 0.09545847028493881), ('為', 0.0872812420129776), ('于', 0.05294770747423172), ('長(zhǎng)河', 0.02978350967168808)]

以上就是Python機(jī)器學(xué)習(xí)NLP自然語(yǔ)言處理基本操作詞向量模型的詳細(xì)內(nèi)容,更多關(guān)于NLP自然語(yǔ)言處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論