少妇脱了内裤让我添,久久久久亚洲精品无码网址蜜桃,性色av免费观看,久久人妻av无码中文专区

分享

讓計算機理解人類語言:詞向量的構建與應用

 西北望msm66g9f 2025-01-28

近兩年大預言模型很火,大預言模型可以視為是自然語言處理領域的一大應用。自然語言處理(Natural Language Processing, NLP)其核心目標是使計算機能夠理解、生成和處理人類語言。語言的基礎是詞語,那么如何讓機器來理解詞語呢?這就關系到詞的表示,也就是詞向量。

在NLP中,詞向量(word vector)是非常重要的概念,它通過將詞語表示為多維向量來捕捉詞語的語義信息。構造詞向量的的方法有很多,比如通過神經網絡進行構建,不過本文將介紹一種直觀的構建詞向量的方法,并通過數學模型和具體案例進行分析和說明。

詞向量的基本概念

詞向量是用于表示詞語在語義空間中位置的向量。通過將詞語轉換為向量,我們可以在數學上處理詞語的相似性和關系。詞向量的核心思想是“可以通過它周圍的詞語了解一個單詞” ('You shall know a word by the company it keeps'),也就是說一個詞的意義可以通過它在文本中與其他詞的共現關系來捕捉。

數學模型

下面我介紹的構建詞向量的過程主要是基于詞語間的共現關系,分為以下幾個步驟:

  1. 語料庫準備:首先需要一個大規模的文本語料庫,用于統計詞語的共現關系。
  2. 上下文窗口:選擇一個合適的上下文窗口大?。ㄍǔ?到10個詞),用于確定哪些詞語是目標詞的上下文詞。
  3. 共現矩陣:構建一個共現矩陣,矩陣的每一行代表一個目標詞,每一列代表一個上下文詞,矩陣中的值表示目標詞與上下文詞在文本中共現的頻率。
  4. 降維處理:使用降維算法(如SVD、PCA等)將高維的共現矩陣轉換為低維的詞向量表示。

假設我們有一個包含 個詞語的詞匯表 ,我們可以構建一個 的共現矩陣 ,其中 表示詞語 在上下文窗口中的共現頻率。

然后我們通過降維算法將共現矩陣 轉換為詞向量矩陣 ,其中每一行 表示詞語 的向量表示。常用的降維算法包括奇異值分解(SVD)和主成分分析(PCA)等

案例分析

我們通過一個具體的例子來說明構建詞向量的過程。

  1. 語料庫準備:假設我們的語料庫是以下簡短的文本:

    I love machine learning. 
    Machine learning is fun. 
    I love coding.

    我們的詞匯表 包含以下詞語:I, love, machine, learning, is, fun, coding。

  2. 上下文窗口:選擇上下文窗口大小為2,即考慮目標詞前后各2個詞。

  3. 共現矩陣:統計詞語在上下文窗口中的共現頻率,得到以下共現矩陣

  4. 降維處理:使用奇異值分解(SVD)對共現矩陣 進行降維處理。SVD將矩陣 分解為三個矩陣的乘積:,其中 是正交矩陣, 是對角矩陣。通過截取前 個奇異值,可以得到低維詞向量矩陣 。

    如果設定降維后的維度為2,我們可以得到以下詞向量:

圖片

為了驗證我們構建的詞向量的有效性,我們可以計算詞語之間的余弦相似度。余弦相似度用于衡量兩個向量之間的相似性,計算公式為:

其中, 表示向量 的點積, 分別表示向量 的模。

我們計算以下詞語對之間的余弦相似度:

  1. lovecoding
  2. machinelearning
  3. isfun
import numpy as np

# 定義降維后的詞向量矩陣
word_vectors = np.array([
    [1.51499668-1.4173672],
    [1.876989461.68604424],
    [1.668657890.19649234],
    [1.49526816-0.93713897],
    [1.085383040.17374271],
    [0.720992040.30320536],
    [0.52440038-0.66966223]
])

# 詞匯表
words = ['I''love''machine''learning''is''fun''coding']

# 計算余弦相似度的函數
def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm_vec1 = np.linalg.norm(vec1)
    norm_vec2 = np.linalg.norm(vec2)
    return dot_product / (norm_vec1 * norm_vec2)

# 計算特定詞語對之間的余弦相似度
pairs = [('love''coding'), ('machine''learning'), ('is''fun')]
for pair in pairs:
    idx1 = words.index(pair[0])
    idx2 = words.index(pair[1])
    similarity = cosine_similarity(word_vectors[idx1], word_vectors[idx2])
    print(f''{pair[0]}' 和 '{pair[1]}' 之間的余弦相似度: {similarity:.4f}')

運行結果:

'love' 和 'coding' 之間的余弦相似度: -0.0675
'machine' 和 'learning' 之間的余弦相似度: 0.7794
'is' 和 'fun' 之間的余弦相似度: 0.9715

從結果可以看出,machinelearning 以及 isfun 的相似度較高,而 lovecoding 的相似度相對較低。當然因為我們現在的文本(語料庫)比較小,這里的相似關系或許不那么明顯。我們可以進行大語料庫的試驗。

來看看與我們對這些詞語在語義上的預期是否是一致的,進而驗證我們構建的詞向量能否在一定程度上捕捉到了詞語之間的語義關系。

如果大家想要了解更多關于詞向量的內容,可以進一步學習以下概念和方法:了解基于神經網絡的Word2Vec模型和斯坦福大學提出的GloVe模型,這兩者都是經典的詞向量構建方法。還有Facebook AI研究團隊開發的FastText模型,它通過子詞生成向量表示。Google的BERT模型和Transformer架構,這些是現代NLP的重要進展。

學習如何使用t-SNE或PCA對詞向量進行降維和可視化。研究上下文嵌入(如ELMo、BERT、GPT),它們根據上下文動態生成詞語的向量表示。這些方法和工具可以幫助大家更全面地理解和應用詞向量技術。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發表

    請遵守用戶 評論公約

    類似文章 更多

    主站蜘蛛池模板: 麻豆成人av不卡一二三区| 国产精品1区2区3区在线观看| 日韩精品无码视频一区二区蜜桃| 蜜臀av久久国产午夜福利软件| 午夜无码一区二区三区在线| 亚洲一本大道av久在线播放| 色妞av永久一区二区国产av| 国产人妻大战黑人20p| 日本亚洲国产一区二区三区| 精品人妻人人做人人爽| 国产成年无码久久久久下载| 护士奶头又白又大又好摸视频| 亚洲日韩乱码中文无码蜜桃臀| 亚洲av永久无码精品网站| 久久天天躁狠狠躁夜夜躁2014| 7777精品伊人久久久大香线蕉| 在线无码视频观看草草视频| 伊人久久大香线蕉av网| 国模吧双双大尺度炮交gogo| 99re热这里只有精品最新| 欧美大成色www永久网站婷| 国产裸体xxxx视频在线播放| 日本做受120秒免费视频| 国产成人亚洲综合网色欲网久下载| 少妇激情av一区二区| 亚洲学生妹高清av| 精品精品国产高清a毛片| 精品午夜中文字幕熟女人妻在线| 色翁荡熄又大又硬又粗又动态图| 精品国产一区二区三区久久| 欧美午夜精品一区二区三区电影| 一二三四日本中文在线| 久久久精品日本一区二区三区| 日韩精品久久久免费观看| 国产成人一区二区三区免费视频| 亚洲精品久久久久久| 亚洲日本中文字幕乱码中文| 无码国产成人午夜电影在线观看| 欲色天天网综合久久| 久久久中日ab精品综合| 国产精品无码午夜福利|