韩国购物网站模板,华为电子商务网站建设,石家庄建站程序,手机网页免费制作app文章目录 介绍GloVe 介绍核心思想共现矩阵1. 共现矩阵的定义2. 共现概率矩阵的定义3. 共现概率矩阵的意义4. 共现概率矩阵的构建步骤5. 共现概率矩阵的应用6. 示例7. 优缺点优点缺点 **总结** 目标函数训练过程使用预训练的GloVe词向量 优点应用总结 个人主页#xff1a;道友老… 文章目录 介绍GloVe 介绍核心思想共现矩阵1. 共现矩阵的定义2. 共现概率矩阵的定义3. 共现概率矩阵的意义4. 共现概率矩阵的构建步骤5. 共现概率矩阵的应用6. 示例7. 优缺点优点缺点 **总结** 目标函数训练过程使用预训练的GloVe词向量 优点应用总结 个人主页道友老李 欢迎加入社区道友老李的学习社区
介绍
**自然语言处理Natural Language ProcessingNLP**是计算机科学领域与人工智能领域中的一个重要方向。它研究的是人类自然语言与计算机之间的交互。NLP的目标是让计算机能够理解、解析、生成人类语言并且能够以有意义的方式回应和操作这些信息。
NLP的任务可以分为多个层次包括但不限于
词法分析将文本分解成单词或标记token并识别它们的词性如名词、动词等。句法分析分析句子结构理解句子中词语的关系比如主语、谓语、宾语等。语义分析试图理解句子的实际含义超越字面意义捕捉隐含的信息。语用分析考虑上下文和对话背景理解话语在特定情境下的使用目的。情感分析检测文本中表达的情感倾向例如正面、负面或中立。机器翻译将一种自然语言转换为另一种自然语言。问答系统构建可以回答用户问题的系统。文本摘要从大量文本中提取关键信息生成简短的摘要。命名实体识别NER识别文本中提到的特定实体如人名、地名、组织名等。语音识别将人类的语音转换为计算机可读的文字格式。
NLP技术的发展依赖于算法的进步、计算能力的提升以及大规模标注数据集的可用性。近年来深度学习方法特别是基于神经网络的语言模型如BERT、GPT系列等在许多NLP任务上取得了显著的成功。随着技术的进步NLP正在被应用到越来越多的领域包括客户服务、智能搜索、内容推荐、医疗健康等。
GloVe 介绍
GloVeGlobal Vectors for Word Representation是一种用于获取词向量的无监督学习算法由斯坦福大学的Jeffrey Pennington、Richard Socher和Christopher D. Manning于2014年提出。GloVe通过结合全局统计信息和局部上下文信息来生成词向量旨在捕捉词语之间的语义关系。
核心思想
GloVe的核心思想是利用词与词之间的共现概率来捕捉语义信息。具体来说GloVe通过构建一个共现矩阵co-occurrence matrix来记录词语在语料库中共同出现的频率。然后通过优化一个目标函数使得词向量能够反映这些共现关系。
共现矩阵
共现概率矩阵Co-occurrence Probability Matrix是自然语言处理中用于捕捉词语之间关系的一种重要工具。它记录了词语在特定上下文窗口中共同出现的频率或概率是许多词向量模型如GloVe的基础。 1. 共现矩阵的定义
共现矩阵 X X X 是一个 V × V V \times V V×V 的矩阵其中 V V V 是词汇表的大小。矩阵中的每个元素 X i j X_{ij} Xij 表示词语 i i i 和词语 j j j 在某个上下文窗口内共同出现的次数。
上下文窗口通常定义一个固定大小的窗口例如窗口大小为5表示当前词左右各5个词的范围统计词语在这个窗口内共同出现的次数。对称性共现矩阵通常是对称的即 X i j X j i X_{ij} X_{ji} XijXji因为词语 i i i 和 j j j 共同出现的次数与词语 j j j 和 i i i 共同出现的次数相同。 2. 共现概率矩阵的定义
共现概率矩阵是在共现矩阵的基础上将共现次数转化为概率。具体来说共现概率矩阵 P P P 中的每个元素 P i j P_{ij} Pij 表示词语 j j j 在词语 i i i 的上下文中出现的条件概率 P i j P ( j ∣ i ) X i j X i P_{ij} P(j|i) \frac{X_{ij}}{X_i} PijP(j∣i)XiXij
其中 X i j X_{ij} Xij 是词语 i i i 和词语 j j j 共同出现的次数。 X i ∑ k 1 V X i k X_i \sum_{k1}^{V} X_{ik} Xi∑k1VXik 是词语 i i i 与所有其他词语共同出现的总次数。 3. 共现概率矩阵的意义
共现概率矩阵的核心思想是通过词语之间的共现概率来捕捉语义关系。例如
如果 P i j P_{ij} Pij 很高说明词语 j j j 经常出现在词语 i i i 的上下文中两者可能有较强的语义关联。如果 P i j P_{ij} Pij 很低说明词语 j j j 很少出现在词语 i i i 的上下文中两者可能没有明显的语义关联。
通过分析共现概率矩阵可以发现词语之间的语义相似性、类比关系如“国王-男人女人女王”等。 4. 共现概率矩阵的构建步骤
定义词汇表从语料库中提取所有唯一的词语构建词汇表 V V V。定义上下文窗口选择一个固定大小的窗口例如窗口大小为5。统计共现次数遍历语料库统计每对词语在窗口内共同出现的次数填充共现矩阵 X X X。计算共现概率对共现矩阵 X X X 进行归一化计算共现概率矩阵 P P P。 5. 共现概率矩阵的应用
共现概率矩阵是许多词向量模型的基础例如
GloVe利用共现概率矩阵来优化词向量使得词向量能够反映词语之间的共现关系。Word2Vec虽然没有显式使用共现矩阵但其Skip-gram模型本质上也是在捕捉词语之间的共现关系。主题模型共现矩阵可以用于构建主题模型如LDALatent Dirichlet Allocation。 6. 示例
假设有一个简单的语料库
I like deep learning.
I like NLP.
I enjoy learning.定义词汇表 V { I , l i k e , d e e p , l e a r n i n g , N L P , e n j o y } V \{I, like, deep, learning, NLP, enjoy\} V{I,like,deep,learning,NLP,enjoy}窗口大小为2。
共现矩阵 X X X 可能如下简化示例
IlikedeeplearningNLPenjoyI021111like201110deep110100learning111001NLP110000enjoy100100
共现概率矩阵 P P P 可以通过归一化得到。例如对于词语 “I” P ( like ∣ I ) X I , like X I 2 6 ≈ 0.33 P(\text{like}|I) \frac{X_{I,\text{like}}}{X_I} \frac{2}{6} \approx 0.33 P(like∣I)XIXI,like62≈0.33 7. 优缺点
优点
直观且易于理解。能够捕捉词语之间的全局统计信息。
缺点
矩阵维度高 V × V V \times V V×V存储和计算成本大。对于稀疏矩阵可能需要降维或优化。 总结
共现概率矩阵是自然语言处理中一种重要的统计工具能够捕捉词语之间的语义关系。它是许多词向量模型如GloVe的基础广泛应用于文本分析、语义建模等任务。
目标函数
GloVe的目标函数如下 J ∑ i , j 1 V f ( X i j ) ( w i T w ~ j b i b ~ j − log X i j ) 2 J \sum_{i,j1}^{V} f(X_{ij}) (w_i^T \tilde{w}_j b_i \tilde{b}_j - \log X_{ij})^2 J∑i,j1Vf(Xij)(wiTw~jbib~j−logXij)2
其中 w i w_i wi 和 w ~ j \tilde{w}_j w~j 是词语 i i i 和 j j j 的词向量。 b i b_i bi 和 b ~ j \tilde{b}_j b~j 是偏置项。 f ( X i j ) f(X_{ij}) f(Xij) 是一个权重函数用于减少高频词对目标函数的过度影响。
权重函数 f ( X i j ) f(X_{ij}) f(Xij) 通常定义为 f ( X i j ) { ( X i j x max ) α if X i j x max 1 otherwise f(X_{ij}) \begin{cases} \left(\frac{X_{ij}}{x_{\text{max}}}\right)^\alpha \text{if } X_{ij} x_{\text{max}} \\ 1 \text{otherwise} \end{cases} f(Xij){(xmaxXij)α1if Xijxmaxotherwise
其中 x max x_{\text{max}} xmax 和 α \alpha α 是超参数。
训练过程
构建共现矩阵从语料库中统计词语的共现频率构建共现矩阵。初始化词向量随机初始化词向量和偏置项。优化目标函数使用梯度下降法或其他优化算法最小化目标函数更新词向量和偏置项。
使用预训练的GloVe词向量
from gensim.test.utils import datapath, get_tmpfile
from gensim.models import KeyedVectors
from gensim.scripts.glove2word2vec import glove2word2vec# 构建glove预训练词向量文件
# 传绝对路径
glove_file datapath(rD:\Projects\课程资料\自然语言处理(NLP)\学习\data\glove.6B.100d.txt)
worde2vec_glove_file get_tmpfile(glove.6B.100d.word2vec.txt)
# 转化 (400000, 100)
glove2word2vec(glove_file, worde2vec_glove_file)model KeyedVectors.load_word2vec_format(worde2vec_glove_file)
model.most_similar(banana)model.most_similar(positive[woman, king], negative[man])优点
全局信息GloVe利用了全局的共现统计信息能够捕捉到词语之间的全局关系。高效性相比于传统的词向量模型如Word2VecGloVe在训练过程中更加高效。可解释性GloVe生成的词向量具有较好的可解释性能够反映词语之间的语义关系。
应用
GloVe生成的词向量可以广泛应用于各种自然语言处理任务如文本分类、情感分析、机器翻译、问答系统等。
总结
GloVe是一种强大的词向量表示方法通过结合全局统计信息和局部上下文信息能够生成高质量的词向量。它在自然语言处理领域有着广泛的应用并且由于其高效性和可解释性受到了学术界和工业界的广泛关注。