怎样查网站有没有做CDN加速,基础网页制作,台州网站建设设计,wordpress 卡片式文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型#xff08;CBOW#xff09;5.2 跳字模型#xff08;Skip-gram#xff09; 总结 语言转换方… 文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型CBOW5.2 跳字模型Skip-gram 总结 语言转换方法
在自然语言处理中语言转换方法由两个模型
统计语言模型神经语言模型
一、统计语言模型
在自然语言处理NLP, Natural Language Processing中统计语言模型Statistical Language Model, SM是一种基于统计学的方法用于描述和预测自然语言文本中的词汇或句子出现的概率。这种方法通过分析大量文本数据学习词汇和句子的概率分布从而能够预测给定上下文的下一个词或子词。
1. 词向量转换
具体体现在机器学习中的词向量转换方法
from sklearn.feature_extraction.text import CountVectorizertexts [dog cat fish,dog cat cat,fish bird,bird]
cont []
cv CountVectorizer(ngram_range(1,3)) # 表示文本中连续出现的n个词有哪些连续组合。
cv_fit cv.fit_transform(texts) # 表示每个字符串中是否有cv中的词有标记为1反之为。print(cv.get_feature_names_out())
print(cv_fit.toarray()) #参数输出结果
[bird cat cat cat cat fish dog dog cat dog cat catdog cat fish fish fish bird]
[[0 1 0 1 1 1 0 1 1 0][0 2 1 0 1 1 1 0 0 0][1 0 0 0 0 0 0 0 1 1][1 0 0 0 0 0 0 0 0 0]]接着将词向量传进贝叶斯模型计算概率用以预测给定上下文的下一个词或子词。
2. 统计模型问题
由于参数空间的爆炸式增长它无法处理【Nngram_range3】的数据:
以上方的词向量转换方法为例我们发现若是我们的文本数量很多时同时连续词的组合没有上限时它的参数空间会很大很大模型没有能力再处理了。
没有考虑词与词之间内在的联系性。
例如考虑the cat is walking in the bedroom这句话。如果我们在训练语料中看到了很多类似“the dog is walking in the bedroom”或是“the cat is running in the bedroom”这样的句子那么哪怕我们此前没有见过这句话the cat is walking in the bedroom也可以从“cat”和“dog”“walking”和“running”之间的相似性推测出这句话的概率。
于是为了解决这些问题我们提出了神经语言模型。
二、神经语言模型
1. 词向量化
在处理自然语言时通常将词语或者字做向量化例如one-hot编码例如我们有一句话为“我爱北京天安门”我们分词后对其进行one-hot编码结果可以是 2. 维度灾难
如果需要对语料库中的每个字进行one-hot编码如何实现
统计语料库中所有的词的个数例如4960个词。按顺序依次给每个词进行one-hot编码例如第1个词为[0,0,0,0,0,0,0,….,1]最后1个词为 [1,0,0,0,0,0,0,….,0]
这时假使还是有句话“我爱北京天安门”他们的编码就会变成 如此编码的话它的编码维度会非常的高矩阵为非常稀疏出现维度灾难。训练时维度堆积随着维度的增加计算复杂度也显著增加。
维度灾难Curse of Dimensionality是一个在数据分析、机器学习和统计学中广泛讨论的概念。它描述的是当数据集的维度即特征或变量的数量增加时数据分析和模型的复杂性急剧上升导致一系列问题和挑战。
3. 解决维度灾难
通过神经网络训练将每个词都映射到一个较短的词向量上来。将高维映射到低维。
比如一个西瓜它包含的特征有可以吃的、圆的、绿色的、红色果肉等等
再比如一个篮球他办函的特征有不能吃、圆的、褐色的、运动等等
我们将它们的特征假设300个300个特征是可以能够描述出一个物体的都放进神经网络训练经过归一化的处理维度中的数字就变成浮点数了。我们用这些浮点数来代表该物体将维度变为300。 具体再比如之前的“我爱北京天安门”放进神经网络模型训练后数据为 与之前的维度对比从4960到300大大减小了特征维度从而解决唯独灾难问题。
4. embedding词嵌入
Embedding嵌入是一种将高维空间中的对象如单词、短语、句子等映射到低维、稠密、连续的向量空间中的技术。在NLP中Word Embedding词嵌入是最常见的嵌入类型它将词汇表中的每个单词映射到一个固定大小的向量。
词嵌入通过训练神经网络模型如Word2Vec、GloVe、FastText等在大量文本数据上学习得到每个单词的向量表示。这些向量能够捕捉单词之间的语义关系使得在向量空间中相似的单词如“猫”和“狗”具有相近的表示而不相关的单词则具有较远的距离。
tText等在大量文本数据上学习得到每个单词的向量表示。这些向量能够捕捉单词之间的语义关系使得在向量空间中相似的单词如“猫”和“狗”具有相近的表示而不相关的单词则具有较远的距离。
5. Word2Vec技术
Word2Vec是一种用于自然语言处理NLP的技术特别是在将词汇或短语从词汇表映射到向量的实数空间方面表现出色。这种映射使得相似的词在向量空间中具有较近的距离从而捕捉到了词汇之间的语义和句法关系。Word2Vec技术是由Google的研究人员Tomas Mikolov等人在2013年提出的它主要包括两种训练模型连续词袋模型CBOW和跳字模型Skip-gram。 5.1 连续词袋模型CBOW
模型结构 模型训练过程
当前词的上下文词语的one-hot编码输入到输入层。这些词分别乘以同一个矩阵WVN后分别得到各自的1N 向量。将多个这些1 * N 向量取平均为一个1 * N 向量。将这个1 * N 向量乘矩阵 W’V * N ,变成一个1 * V 向量。将1 * V 向量softmax归一化后输出取每个词的概率向量1 * V。将概率值最大的数对应的词作为预测词。将预测的结果1 * V 向量和真实标签1 * V 向量真实标签中的V个值中有一个是1其他是0计算误差。在每次前向传播之后反向传播误差不断调整 WV * N和 W’V * N矩阵的值。
那么低维度的词是在哪里体现的呢 假定语料库中一共有4960个词则词编码为4960个01组合现在压缩为300维 如此便将它特征压缩了从而将词汇或短语从词汇表映射到向量的实数空间。
5.2 跳字模型Skip-gram
Skip-gram模型的核心思想是从一个给定的中心单词出发预测它周围的上下文单词。
模型结构 训练过程
数据预处理将原始文本转换为序列数据其中每个词用其对应的整数索引代替。生成训练样本通过滑动窗口在文本数据上滑动每次滑动都会生成一个训练样本包括一个中心词和一系列上下文单词。假设给定一个窗口大小为k对于每个中心词可以将其前后各k个词作为上下文。前向传播在每次训练中Skip-gram模型计算中心词的词向量与隐藏层权重的乘积得到隐藏层的输出。然后将隐藏层的输出与输出层的权重矩阵相乘再通过softmax函数得到与上下文词对应的概率分布即预测结果。损失函数与优化模型的优化目标是最大化预测结果的概率。训练过程中Skip-gram模型通过反向传播和梯度下降算法来更新词向量和神经网络的参数。在每次迭代更新中通过最小化损失函数来优化模型的参数。常用的损失函数包括交叉熵cross-entropy和负对数似然negative log-likelihood。这些损失函数用于比较预测结果与实际输出之间的差异将差异通过梯度下降反向传播到网络的所有层以优化各个参数。
应用
Skip-gram模型生成的词向量在自然语言处理任务中有着广泛的应用如词义相似度计算、情感分析、文本分类、命名实体识别等。通过将单词表示为连续的向量空间中的点Skip-gram模型为这些任务提供了一个更加有效和灵活的输入表示方式。
总结
本篇介绍了自然语言处理中语言转换方法的两个模型
统计语言模型用于描述和预测自然语言文本中的词汇或句子出现的概率但是没办法考虑词与词之间内在的联系且参数空间会出现爆炸式增长的问题。神经语言模型通过神经网络训练将每个词都映射到一个较短的词向量上来。将高维映射到低维。通过embedding词嵌入技术捕捉词句之间的语义。embedding词嵌入技术有两个模型连续词袋模型CBOW和跳字模型Skip-gram用来捕捉到了词汇之间的语义和句法关系。