从零开始一步一步掌握大语言模型---(3-词表示-word representation)

本文主要是介绍从零开始一步一步掌握大语言模型---(3-词表示-word representation),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

词表示和语言模型

词表示是指把自然语言里面最基本的单位,也就是词,将其转换为机器所能理解的过程。

词表示的目的:

1. 计算词之间的相似度;

2. 推理词之间的关系。

1.最早是如何表示一个词呢?

        设目标词是X,则用X的近义词、反义词等放在一起表示。或者用X的上位词来表示,如NLP隶属于information sciences,sciences等等。但这种表示方法在于,词之间的细微差别难以准确识别。也受限于主观性,数据稀疏性,以及需要大量的人工标注

2.One-hot representation(独热编码)

把每一个词表示成一个独立的符号。每一个词,都会在和词表一样长的向量里面,只有一维对应于该词。该维度上为1,其余维度全为0来表示该词。这种方式对于计算文档之间的相似度时候十分有效,但是对于表示词的时候存在很大问题。因为这种方式会假设词和词向量之间是正交的(不相关的),从而导致任意两个词之间进行计算相似度都为0.

3.使用词的上下文去表示词

这种方式,还是先有一个词表,然后每个词,都用它和它的上下文出现的次数来表示。例如以star举例,它和shining,bright,trees等在文档中一起出现的次数分别是38,45,2,那么就用【,,,38,,,45,2,。。。】这个向量来表示这个词,其余词依此类推。这个向量的长度就是词表的长度,“,”表示star和其余词一起出现的次数,没写上罢了。是这种方式存在的问题是,当所用的词表越来越大时,所用的存储空间也会很大,就是每个词的向量长度都太长了。同时对于某些出现的比较不频繁的词,文档中和这个词一起出现的词就比较少,导致用这种方式所表示的向量比较稀疏,稀疏现象会导致对这个词的表示效果没那么好。

4.词嵌入表示(Word embedding)

是一种分布式的表示(Distribution representation)。这种方式的思想是通过建立一个低维的稠密的向量空间,将每个词尝试学习到这个空间中,用这个空间中某个位置来表示这个词。这种是可以利用大量的文档自动的学习到的。

语言模型

什么是语言模型,语言模型的任务是根据前面出现的单词,预测出下一个单词。

形式化定义如下:

p( Wn |  w1,w2,w3,...,wn-1)

语言模型主要要完成两方面工作:

1.计算一个序列的词成为一句话的概率。也就是计算一个序列的词的联合概率。就是查看已有的一句话或者一个序列的词成为符合语法的概率。

2.计算下一个词是什么。

如何去完成这两项工作?

过去人们假设,一个未来的词(还没出现的词)只会受到它前面的词的影响

引出了一个重要的内容,N-gram Model.

设是4-gram model,那么它就是要根据前面出现的3个词,去预测下一个哪个词出现的概率最大。应该是去词表里面找,一个个试,然后找出频度最大的那个。其实就是去大规模文档中,找这些词出现的频度,然后用频度去预测。

Neural Language Model

这是既N-gram model之后,利用深度学习的一项技术,是利用神经网络去学习词的分布式表示

如何做的呢?首先将每个词表示成一个低维向量,然后将设定的上下文长度的,例如是3,那就将这3个词的向量拼接在一起,就是首尾相接,形成一个更长的向量,然后给这个长向量做一个非线性变化,来预测下一个词出现的概率。

这篇关于从零开始一步一步掌握大语言模型---(3-词表示-word representation)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/844741

相关文章

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word