人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

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

發(fā)布日期:2022-01-02 02:58 | 文章來源:gibhub

概述

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

詞向量

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

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

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

詞向量維度

詞向量的維度越高, 其所能提供的信息也就越多, 計(jì)算結(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)換為概率), 計(jì)算起來會非常耗時.

我們可以將輸入改成兩個單詞, 判斷這兩個詞是否為前后對應(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ò)反向傳播來計(jì)算更新. 此時不光更新權(quán)重參數(shù)矩陣 W, 也會更新輸入數(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算法, 對低配詞敏感. 默認(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)點(diǎn)符號操作
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ù)', '連', '體', '哇', '寧', '?', '遵', '言', '任', '今', '點(diǎn)', '憑', '緊', '俺', '獨(dú)', '如', '旦', '正', '哦', '下', '已', '打', '接', '呃', '》', '可', '在', '邊', '縱', '何', '叮', '矣', '每', '過', '沿', '則', '盡', '樣', '愿', '!', '全', '唄', '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)文章!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部