语音识别是人工智能中的一个领域,它允许计算机理解人类语音并将其转换为文本。wav2vec2、Conformer 和 Hubert 等最先进模型的最新发展极大地推动了语音识别领域的发展。这些模型采用无需人工标记数据即可从原始音频中学习的技术,从而使它们能够有效地使用未标记语音的大型数据集。 Whisper 模型介绍 使用数据集: Whisper模型是在68万小时标记音频数据的数据集上训练的,其中包括...
NLP文本向量化,即用向量或矩阵的形式表示文本,也可以理解为对文本的数值化处理。文本向量化从数学角度可以解释为映射,即将单词映射到另一个空间,f : A -> B,生成一个在新空间上的表达。 常用的向量化方法:One-Hot独热编码、词集模型/词袋模型、TF-IDF(词频-逆文本频率)、N-gram 一、One-Hot独热编码 原理:将每个单词与唯一的一个整数索引相关联,然后将这个整数索引 ...
监督学习 监督学习:给出一个算法,需要部分数据集已经有正确答案。比如给出给定房价数据集,对于里面每个数据,算法都能计算出对应的正确房价。算法的结果就是短处更多的正确价格。 像房价预测问题这样的监督学习又叫回归学习。 非监督学习 Unsupervised Learning 无监督学习 在无监督学习中,我们用到的数据和监督学习中的不一样。在无监督学习中,没有属性或者说标签的概念,只有一个数据集。 对于...
算法性能评估涉及到时间复杂度和空间复杂度分析,这里重点介绍空间复杂度 时间复杂度解析 这里有段非常简单的代码,求1,2,3...n的累加和。现在来估算一下这段代码的执行时间。 def added(n): sum = 0 for i in range(n): sum = sum + (i+1) return sum print(added(10)) 从CPU...
BM25算法解析 bm25 是一种用来评价搜索词和文档之间相关性的算法,用简单的话来描述下bm25算法:我们有一个query和一批文档Ds,现在要计算query和每篇文档D之间的相关性分数。这种场景的应用就有很多:1、电商中计算搜索词query与商品的之间的相关性 2、知乎搜索中搜索词query与回答之间的相关性 3、匹配式智能客服中,用户问题与答案之间的相关性等。那bm25算法是怎样计算quer...
数据结构中常见的几种存储结构:线性表、树和图 a) 是线性表,b) 是树,c) 是图。在图存储结构中,a、b、c 等称为顶点,连接顶点的线称为边。 线性表是最简单的存储结构,很容易分辨。树和图有很多相似之处,它们的区别是:树存储结构中不允许存在环路,而图存储结构中可以存在环路(例如图 1 c) 中,c-b-f-c、b-a-f-b 等都是环路)。 生成树 根据所有顶点之间是否存在通路,图存储结构可...
实际开发中,我们往往采用“预先估值”的方法挑选算法。具体来讲,就是分析各个算法的实现过程(步骤),估算出它们各自的运行时间和占用的内存空间,进而挑选出“最好”的算法。用“预先估算”方式挑选算法时,我们习惯用时间复杂度表示一个算法的运行时间,用空间复杂度表示算法占用存储空间的大小。 时间复杂度 时间复杂度用于表示算法的执行时间。 实例: 输入 n // 接收 n 的值...
递归算法解析 编程语言中,我们习惯将函数(方法)调用自身的过程称为递归,调用自身的函数称为递归函数,用递归方式解决问题的算法称为递归算法。 函数(方法)调用自身的实现方式有 2 种,分别是: 直接调用自身,例如: int funciton(/*...*/) { //...... //调用自身 function(/*...*/); //...... } 间接调...
哈希表是什么 哈希表(Hash table)又称散列表,是一种存储结构,通常用来存储多个元素。 和其它存储结构(线性表、树等)相比,哈希表查找目标元素的效率非常高。每个存储到哈希表中的元素,都配有一个唯一的标识(又称“索引”或者“键”),用户想查找哪个元素,凭借该元素对应的标识就可以直接找到它,无需遍历整个哈希表。 多数场景中,哈希表是在数组的基础上构建的,下图给大家展示了一个普通的数组: 使用数...
在一个加权图中,如果想找到各个顶点之间的最短路径,可以考虑使用弗洛伊德算法。 弗洛伊德算法既适用于无向加权图,也适用于有向加权图。使用弗洛伊德算法查找最短路径时,只允许环路的权值为负数,其它路径的权值必须为非负数,否则算法执行过程会出错。 弗洛伊德算法的实现思路 弗洛伊德算法是基于动态规划算法实现的,接下来我们以在图 1 所示的有向加权图中查找各个顶点之间的最短路径为例,讲解弗洛伊德算法的实现思路...