当前位置: 首页 > news >正文

【清华大学】《自然语言处理》(刘知远)课程笔记 ——NLP Basics

自然语言处理基础(Natural Language Processing Basics, NLP Basics)

自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

为什么NLP重要(Why is NLP Important?)

  • Turing Test:A test of machine ability to exhibit intelligent behavior indistinguishable from a human
  • Language is the communication tool in the test

在这里插入图片描述

艾伦图灵的最早版本:Imitation Game。
卷福也拍过这部电影Imitation Game,为了破解德军的军情信息,图灵和一群才华横溢的人研究如何破译密码,如果纯粹人工破解则几乎不可能,但是他们发明了最早的人工智能机器,通过大模型破译出原始信息,一开始该模型一直无法收敛,直到他们发现传递的信息中总会有“希特勒万岁”这句话之后,发现了大模型的初始条件,一举攻破该难题。
在这里插入图片描述

词的表达(Distributed Word Representation)

Word Representation

  • Word representation: a process that transform the symbols to the machine understandable meanings
  • Definition of meaning(Webster Dictionary)
    1. The thing one intends to convey especially by language
    1. The logical extension of a word
  • How to represent the meaning so that the machine can understand?

Goal of Word Representation

  • Compute word similarity,计算词的相似度
  • Infer word relation,发现词的语义关系

Synonym and Hypernym

  • Use a set of related words, such as synonyms and hypernyms to represent a word

用一组相关词(同义词/上位词)集合来表示它
在这里插入图片描述

Problems of Synonym/Hypernym Representation

  • Missing nuance,有一些细微差异无法完成,比如proficient和good
  • Missing new meanings of words,同义词/上位词出现新的词义会缺失实际含义,比如Apple(fruit —> IT company)
  • Subjective,主观性问题
  • Data sparsity,数据稀疏问题
  • Requires human labor to create and adapt,需要大量人工构建和维护这个字典

One-Hot Representation

  • Regard words as discrete symbols,把它看作独立的符号
  • Word ID or one-hot representation,可以比较好的完成两个文档之间的相似的计算

在这里插入图片描述

Problems of One-Hot Representation

  • similarity(star, sun) = (Vstar, Vsun) = 0,它的问题是假设词和词之间互相之间都是正交的,那么从而导致任意两个词进行相似度的计算都是零
  • All the vectors are orthogonal.No natural notion of similarity for one-hot vectors.

Represent Word by Context

  • The meaning of a word is given by the words that frequently appear close-by,一个词的词义经常跟这个词的上下文有密切关系。
  • Use context words to represent stars,比如下图用上下文中的词表示stars这个词。

在这里插入图片描述

Co-Occurrence Counts

  • Count-based distributional representation
    在这里插入图片描述
  • Term-Term matrix: How often a word occurs with another
  • Term-Document matrix: How often a word occurs in a document
    可以通过这个词出现次数得到的稠密向量算出两个词之间的相似度

Problems of Count-Based Representation

  • Increase in size with vocabulary
  • Require a lot of storage
  • sparsity issues for those less frequent words

它的问题是当词表变得越来越大的时候,存储的需求就会越来越大。
而频次出现较少的词,它的上下文或者词的语境就会变得很稀疏。

Word Embedding,词嵌入

  • Distributed Representation,分布式的表示
    • Build a dense vector for each word learned from large-scale text corpora,建立起一个低维的一个稠密的向量空间,用这个空间里面的某一个位置所对应的那个向量来表示这个词。
    • Learning method: Word2Vec(We will learn it in the next class)

在这里插入图片描述

Language Modeling

  • Language Modeling is the task of predicting the upcoming word
    语言模型的能力其实就是根据前面的词预测下面即将要出现的词
    • Compute conditional probability of an upcoming word Wn:
      在这里插入图片描述
  • A language model is a probability distribution over a sequence of words
    • Compute joint probability of a sequence of words:P(W) = P(w1,w2,…,wn) 它称为合法的一句话的概率,也即所有词的序列的联合概率
    • Compute conditional probability of an upcoming words Wn:P(wn | w1,w2,…,wn-1),根据前面已经说过的词预测下一个词
  • How to compute the sentence probability?
  • Assumption:the probability of an upcoming word is only determined by all its previous words,未来的词它只会受到它前面的词的影响

联合概率拆解成条件概率乘积

  • Language Model

在这里插入图片描述

N-gram Model

  • Collect statistics about how frequent different n-grams are, and use these to predict next word.
  • E.g., 4-gram,比如4-gram,表达式如下,它会统计too late to wj的频次和too late to出现的频次的关系

在这里插入图片描述

  • Problem:

    • Need to store count for all possible n-grams. So model size is O(exp(n))
  • Markov assumption,马尔可夫假设

在这里插入图片描述

  • Simplifying Language Model
    • Bigram(N-Gram,N=2)
    • Trigram(N-Gram,N=3)

Problems of N-gram

  • Not considering contexts farther than 1 or 2 words,很少考虑更多的历史,一般就用bigram或trigram,没有办法考虑较长的词的上下文。
  • Not capturing the similarity between words,N-gram它的背后其实是一个典型的one-hot representation,它会假设所有的词都是相互独立的,它做统计的时候上下文其实都是基于符号来做统计的,它是没有办法理解这些词互相之间的相似度。

Neural Language Model

  • A neural language model is a language model based on neural networks to learn distributed representations of words
    分布式的表示建构前文和当前词的预测条件概率
    • Associate words with distributed vectors
    • Compute the joint probability of word sequences in terms of the feature vectors
    • Optimize the word feature vectors(embedding matrix E)and the parameters of the loss function(map matrix W)

在这里插入图片描述

相关文章:

【清华大学】《自然语言处理》(刘知远)课程笔记 ——NLP Basics

自然语言处理基础(Natural Language Processing Basics, NLP Basics) 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言…...

代码随想录 | Day17 | 二叉树:二叉树的最大深度最小深度

代码随想录 | Day17 | 二叉树:二叉树的最大深度&&最小深度 主要学习内容: 利用前序后序层序求解二叉树深度问题 其中穿插回溯法 104.二叉树的最大深度 104. 二叉树的最大深度 - 力扣(LeetCode) 递归遍历 后序遍历 …...

【Linux】Socket编程基础

文章目录 字节序字节序转化函数 套接字socket通用结构体通信类型名空间套接字函数socket():创建套接字bind()函数:绑定服务器套接字与其地址、端口listen()函数:侦听客户连接connect():连接服务器套接字accept()函数:服…...

关于stm32的软件复位

使用软件复位的目的: 软件复位并不会擦除存储器中的数据,它只是将处理器恢复到复位状态,即中断使能位被清除,系统寄存器被重置,但RAM和Flash存储器中的数据保持不变。 STM32软件复位(基于库文件V3.5) ,对…...

规范系统运维:系统性能监控与优化的重要性与实践

在当今这个高度信息化的时代,企业的IT系统运维工作显得尤为关键。其中,系统性能监控和优化是运维工作中不可或缺的一环。本文旨在探讨规范系统运维中系统性能监控与优化的重要性,并分享一些实践经验和策略。 一、系统性能监控与优化的重要性…...

用python编撰一个电脑清理程序

自制一个电脑清理程序,有啥用呢?在电脑不装有清理软件的时候,可以解决自己电脑内存不足的情况。 1、设想需要删除指定文件夹中的临时文件和缓存文件。以下是代码。 import os import shutil def clean_folder(folder_path): for root,…...

2024年【天津市安全员C证】免费试题及天津市安全员C证试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 天津市安全员C证免费试题是安全生产模拟考试一点通生成的,天津市安全员C证证模拟考试题库是根据天津市安全员C证最新版教材汇编出天津市安全员C证仿真模拟考试。2024年【天津市安全员C证】免费试题及天津市…...

【Python数据挖掘实战案例】机器学习LightGBM算法原理、特点、应用---基于鸢尾花iris数据集分类实战

一、引言 1、简要介绍数据挖掘的重要性和应用 在数字化时代,数据已经成为企业和社会决策的重要依据。数据挖掘作为一门交叉学科,结合了统计学、机器学习、数据库技术和可视化等多个领域的知识,旨在从海量数据中提取有价值的信息&#xff0c…...

使用LabVIEW进行大数据数组操作的优化方法

针对大数据量数组操作,传统的内存处理方法可能导致内存不足。通过LabVIEW的图像批处理技术,可以有效地进行大数据数组操作,包括分块处理、并行处理和内存优化等。这种方法能显著提高处理效率和系统稳定性。 图像批处理的优势 内存优化&#…...

【Linux】(五)—— SSH远程登录和XShell使用

SSH Linux中的SSH(Secure Shell)是一个强大的网络协议,用于在不安全的网络环境中提供安全的远程登录和资料拷贝等其他网络服务。以下是有关Linux中SSH的关键点和操作指南: SSH的基础概念 安全性:SSH通过对所有传输的…...

前端怎么实现跨域请求?

前端实现跨域请求(Cross-Origin Resource Sharing, CORS)通常涉及到后端服务器的配置,因为浏览器的同源策略(Same-Origin Policy)会阻止前端代码直接发起跨域请求。然而,有几种方法可以在前端和后端的配合下…...

sqlmap直接嗦 dnslog注入 sqllibs第8关

dnslog注入是解决注入的时候没有回显的情况,通过dns外带来进行得到我们想要的数据。 我们是用了dns解析的时候会留下记录,这时候就可以看见我们想要的内容。 这个时候我们还要了解unc路径以及一个函数load_file()以及concat来进行注入。看看我的笔记 unc…...

数据结构笔记 3 串 数组 广义表

以下了解即可,暂时没发现有什么考点 参考: 【数据结构】——多维数组和广义表_数据结构loc-CSDN博客 相对应的题目: 他这个数组不是从0开始的,是从1开始的,所以为了配合公式要减1 下面这道题又不一样,它是…...

SpringCloud微服务GateWay网关使用与配置

一、概念 1、什么是GateWay网关 在微服务架构中,Gateway(网关)是一个重要的组件,负责处理外部请求并将它们路由到适当的微服务。以下是Gateway在微服务中的一些主要功能: 路由: Gateway负责将来自客户端的…...

win7补丁下载

目的 一般来说,安装上windows系统就带着补丁了,但有时,安装的是原始版的操作系统是不带补丁的,一般直接更新就可以了,但有时,电脑不能联网,只能通过安装包进行升级,所以下面介绍如何…...

在Cisco Packet Tracer上配置NAT

目录 前言一、搭建网络拓扑1.1 配置PC机1.2 配置客户路由器1.3 配置ISP路由器 二、配置NAT2.1 在客户路由器中配置NAT2.2 测试是否配置成功 总结 前言 本篇文章是在了解NAT的原理基础上,通过使用Cisco Packet Tracer 网络模拟器实现模拟对NAT的配置,以加…...

Web前端工程师的前景:挑战与机遇并存

Web前端工程师的前景:挑战与机遇并存 随着互联网的飞速发展和数字化转型的深入推进,Web前端工程师的前景日益广阔且充满挑战。作为互联网技术的核心力量之一,前端工程师的角色越来越重要,但同时也面临着技术更新迅速、市场需求多…...

MySQL—多表查询—联合查询

一、引言 之前学习了连接查询。现在学习联合查询。 union:联合、联盟 对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集 涉及到两个关键字:union 和 union all 注意: union 会把上面两个SQL查询…...

2024 Jiangsu Collegiate Programming Contest E. Divide 题解 主席树

Divide 题目描述 Given an integer sequence a 1 , a 2 , … , a n a_1,a_2,\ldots,a_n a1​,a2​,…,an​ of length n n n. For an interval a l , … , a r a_l,\ldots,a_r al​,…,ar​ in this sequence, a Reduce operation divides the maximum value of the inter…...

C# WPF入门学习主线篇(十五)—— DockPanel布局容器

C# WPF入门学习主线篇(十五)—— DockPanel布局容器 欢迎来到C# WPF入门学习系列的第十五篇。在前几篇文章中,我们探讨了 Canvas、StackPanel 和 WrapPanel 布局容器及其使用方法。本篇博客将介绍另一种强大且常用的布局容器——DockPanel。…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

什么是VR全景技术

VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...