最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

概述

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

在這里插入圖片描述

詞向量

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

在這里插入圖片描述

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

在這里插入圖片描述

那我們?nèi)绾蝸砻枋稣Z言的特征呢? 我們把語言分割成一個個詞, 然后在詞的層面上構(gòu)建特征.

在這里插入圖片描述

詞向量維度

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

50 維的詞向量:

在這里插入圖片描述

用熱度圖表示一下:

在這里插入圖片描述

在這里插入圖片描述

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

Word2Vec

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

在這里插入圖片描述

CBOW 模型

CBOW (Continuous Bag-of-Words) 是根據(jù)單詞周圍的上下文來預(yù)測中間的詞. 如圖:

在這里插入圖片描述

Skip-Gram 模型

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

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

負(fù)采樣模型

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

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

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

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

1. 初始化詞向量矩陣

在這里插入圖片描述

在這里插入圖片描述

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

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

在這里插入圖片描述

詞向量模型實戰(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算法, 對低配詞敏感. 默認(rèn) sg=0, CBOW算法

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

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

使用模型

from gensim.models import Word2Vec
# 加載模型
model = Word2Vec.load("model")
# 判斷相似度
sim1 = model.wv.similarity("黃河", "長江")
print(sim1)
sim2 = model.wv.similarity("黃河", "黃河")
print(sim2)
# 預(yù)測最接近的人
most_similar = model.wv.most_similar(positive=["黃河", "母親河"], negative=["長江"])
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), ('長河', 0.02978350967168808)]

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

相關(guān)文章

  • django框架基于queryset和雙下劃線的跨表查詢操作詳解

    django框架基于queryset和雙下劃線的跨表查詢操作詳解

    這篇文章主要介紹了django框架基于queryset和雙下劃線的跨表查詢操作,結(jié)合實例形式詳細(xì)分析了Django框架queryset和雙下劃線的跨表查詢相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-12-12
  • Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例

    Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例

    這篇文章主要介紹了Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能,涉及Python基于re模塊的正則匹配及selenium模塊的頁面抓取等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python+selenium破解拼圖驗證碼的腳本

    Python+selenium破解拼圖驗證碼的腳本

    很多網(wǎng)站在登錄或者注冊時都會遇到拼圖驗證碼,這種拼圖驗證碼實際上是多個小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個基于Python selenium的破解拼圖驗證碼的腳本,需要的可以參考一下
    2022-02-02
  • Python的多維空數(shù)組賦值方法

    Python的多維空數(shù)組賦值方法

    下面小編就為大家分享一篇Python的多維空數(shù)組賦值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python3?DataFrame缺失值的處理方法

    Python3?DataFrame缺失值的處理方法

    這篇文章主要介紹了Python3?DataFrame缺失值的處理,包括缺失值的判斷缺失值數(shù)據(jù)的過濾及缺失值數(shù)據(jù)的填充,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Python3實現(xiàn)建造者模式的示例代碼

    Python3實現(xiàn)建造者模式的示例代碼

    這篇文章主要介紹了Python3 實現(xiàn)建造者模式的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 詳解Pytorch 使用Pytorch擬合多項式(多項式回歸)

    詳解Pytorch 使用Pytorch擬合多項式(多項式回歸)

    這篇文章主要介紹了詳解Pytorch 使用Pytorch擬合多項式(多項式回歸),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 講解Python中的遞歸函數(shù)

    講解Python中的遞歸函數(shù)

    這篇文章主要介紹了講解Python中的遞歸函數(shù),遞歸是學(xué)一門編程語言必須掌握的重要特性,需要的朋友可以參考下
    2015-04-04
  • Python編程新標(biāo)準(zhǔn)學(xué)會十項好習(xí)慣提升編碼質(zhì)量

    Python編程新標(biāo)準(zhǔn)學(xué)會十項好習(xí)慣提升編碼質(zhì)量

    這篇文章主要為大家介紹了Python編程新標(biāo)準(zhǔn)學(xué)會十項好習(xí)慣提升編碼質(zhì)量,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python?ArcPy實現(xiàn)批量計算多時相遙感影像的各項元平均值

    Python?ArcPy實現(xiàn)批量計算多時相遙感影像的各項元平均值

    這篇文章主要為大家詳細(xì)介紹了如何基于Python中ArcPy模塊,實現(xiàn)對大量長時間序列柵格遙感影像文件的每一個像元進(jìn)行多時序平均值的求取,感興趣的可以了解一下
    2023-04-04

最新評論

谢通门县| 南和县| 邻水| 仪征市| 黄骅市| 台中市| 沧州市| 柏乡县| 古田县| 灯塔市| 颍上县| 当阳市| 嘉禾县| 两当县| 安丘市| 肃宁县| 南宁市| 徐闻县| 海林市| 斗六市| 台前县| 吴桥县| 类乌齐县| 旬阳县| 永春县| 都兰县| 宜君县| 桓台县| 江川县| 敖汉旗| 喜德县| 五大连池市| 阜新| 新昌县| 青川县| 都昌县| 思南县| 彰化市| 鄂托克旗| 临沂市| 三穗县|