LLM学习之自然语言处理简单叙述

自然语言处理基础

自然语言处理:让计算机读懂人所写好的这些文本,能够像人一样进行交互。

自然语言处理的任务和应用

任务:

词性标注 part of speech tagging

动词,名词,形容词?

命名实体的识别 named entity recognition

地名? 姓?时间?

共指消解 Co-reference

代词指示的是哪个?

依赖关系识别 Basic dependencies

主谓宾?

中文:自动分词

应用:

Machine Reading:自动的阅读文本内容,然后挖掘出一些相关的结构化知识

例如浏览器知识图谱

Personal Assistant

例如虚拟助手,小米的智能管家

Machine translation 机器翻译

Sentiment Analysis and Opinion Mining 情感分析和意见挖掘

Computational Social Science 与社会科学进行交叉

词的表示:

核心目的:让机器理解词的意思

1.计算单词相似度 (例如:月亮和太阳;游泳和走路 关系相当 )

2.计算单词之间的关系(例如 中国-北京 和 日本-东京 关系相当)

方法:

1.用一些系列相关的词来表示,

例如:(近义词、反义词)good:+ benecifal -bad ; (从属关系,上位词):东北虎属于猫科虎类......

问题:

1.词之间会有差异,例如good和benefit并不完全一样;

2.错过单词的新含义 ;例如:apple 原先是水果 ,现在又是IT 公司

  1. 主观性问题;

  2. 数据吸收问题;

  3. 需要大量的人工进行标注

one-hot representation

把一个词表示为一个独立的符号

建立一个和词表长度一样的向量,一个单词只在某一维(固定)上值为1 ,其余维都为0;

可以用来计算文档的相似度。

问题:词和词之间的向量都正交,无法表示之间的关系。

例如:月亮moon和太阳sun moon=[1,0] sun=[0,1] 相互正交

represent Word by context

根据上下文,判断单词语义。(解决one-hot蒸饺问题)

例如:单词stars 可以用频繁出现的单词( shining bright trees dark look )的出现频率 来表示 从而得到关于每一个词的一个稠密向量。从而使用这个稠密向量计算出两个词之间的相似度

问题:1,词表增大的话,存储的需求就会增大。

Word embedding

针对上面的问题我们提出改进。

常用模型:word2vec(后期介绍 )

语言模型language model

目的:根据当前已有单词预测下一个单词。

主要完成两个工作 :1.一个序列的词成为一句话的概率是多少(比如:饭吃我 不大可能成为一句话,但我吃饭却又很大可能)2.根据前面的话预测下一个单词。

基础假设:后面词出现的概率只取决于前面出现的单词

n-gram model

举个例子:4-gram #p(w/ too late to) too late to 后面接w 的概率 #count(a)a出现的次数

p(w/ too late to)=count( too late to w)/count( too late to) 只考虑前面的三个单词,不会考虑更前面的单词

在大数据中也只需要计算出每个序列出现的频度,从而估算频率

遵循马尔科夫假设。

问题:1.做统计的时候上下文其实都是基于符号来做统计的,n越大,存储的信息也就越大,所以一般都是使用2-gram,3-gram,但这样无法充分考虑上下文之间的关系 2. 基于符号做统计,和one-hot一样,认为词之间相互独立的,无法考虑到单词,句子的相似度。

neural language model

例如 :never too late to leran 这句话,考虑to 出现的概率,我们可以将前面的三个词(never too late )分别用一个低纬的向量来表示,再讲这些向量拼在一起,形成一个更高的上下文向量经过非线性的转换预测下一个向量(单词)是什么。

相关推荐
阡之尘埃2 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
dsywws3 小时前
Linux学习笔记之vim入门
linux·笔记·学习
孙同学要努力4 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
Eric.Lee20214 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
晨曦_子画4 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision4 小时前
Docker学习—Docker核心概念总结
java·学习·docker
其实吧35 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
丕羽5 小时前
【Pytorch】基本语法
人工智能·pytorch·python
ctrey_5 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少5 小时前
由中文乱码引来的一系列学习——Qt
学习