- 博客(22)
- 资源 (18)
- 收藏
- 关注
原创 WFST(Weighted Finite State Transducer)
WFST (Weighted Finite State Transducer),即加权有限状态转换器。这是一种在自然语言处理(NLP)、语音识别、文本到语音合成(TTS)等领域中广泛使用的数学模型。WFST 是有限状态机(Finite State Machine, FSM)的一种扩展形式,它不仅能够表示状态之间的转换关系,还能为这些转换赋予权重,从而支持概率、成本或其他度量信息的传递。
2024-09-04 10:55:59 364
原创 一致性哈希(Consistent Hashing)
一致性哈希(Consistent Hashing)是一种特殊的哈希算法,主要用于解决,尤其是在需要(节点)的情况下。传统哈希算法在节点变化时可能会导致大部分甚至全部的数据重新分布,这样会导致大量的数据迁移,增加了系统的复杂性和成本。而一致性哈希算法的设计目标是在添加或移除节点时,尽可能减少数据的迁移量,从而提高系统的稳定性和效率。一致性哈希的基本思想是将所有的数据键(keys)和存储节点(nodes)通过哈希函数映射到一个固定的环形空间(通常称为哈希环)。
2024-09-04 10:36:07 846
原创 红黑树(Red-Black Tree)
红黑树(Red-Black Tree)是一种自平衡的二叉查找树(Binary Search Tree, BST),它通过在每个节点上附加一个存储位表示颜色(红色或黑色)来确保树的平衡。红黑树能够在 O(log n) 时间内执行插入、删除和查找操作,这里的 n 是树中节点的数量。
2024-08-22 18:25:36 548
原创 FST(Finite State Transducer)
有限状态转换器(Finite State Transducer,简称FST)是一种计算模型,它是有限状态自动机(Finite State Automaton,简称FSA)的扩展。FSA是一种理论计算模型,用于表示和处理正则语言,它包含一组状态和在这些状态之间的转换,通常用于模式匹配、文本搜索等任务。与FSA不同的是,FST不仅接受输入字符串,还能产生输出字符串,因此它可以用于建模输入和输出之间的关系,如字符串的转换和映射。
2024-08-22 18:00:49 890
原创 AC自动机-2(AhoCorasickDoubleArrayTrie)
AhoCorasickDoubleArrayTrie的构建可能会消耗大量内存,在实际使用中,可以先在一个大内存的机器上构建好AC DAT,序列化成文件,然后在使用的节点上直接反序列进行试用,正如 hanlp实现中的save和load方法。可以看到,其构建过程首先构造了一个普通的Trie树,然后基于这个普通Trie树构建了DAT,在构建DAT的过程中,也给先前构建好的普通Trie树添加了DAT的索引。, 最后又压缩了DAT了,loseWeight();,实际是一个为尾压缩的方法。
2024-08-22 12:01:53 448
原创 AC自动机-1
AC自动机(Aho-Corasick Automaton)是一种高效的多模式字符串匹配算法。它是由Alfred Aho和Margaret Corasick在1975年提出的。这种算法可以在。Trie树的构造比较简单,在此不再赘述。fail指针的构造和fail指针的构造过程如下:考虑字典树中当前的结点的父结点是通过字符的边指向,即。假设深度小于的所有结点的 fail 指针都已求得。如此即完成了的构建。
2024-08-21 18:46:40 936
原创 相似度计算方法-皮尔逊相关系数 (Pearson Correlation Coefficient)
皮尔逊相关系数(Pearson correlation coefficient)是一种统计度量,用于量化两个变量之间的线性关系强度和方向。对于两个变量和,它们的观测值分别为和,皮尔逊相关系数可以用以下公式计算:这里:是变量的平均值;是变量的平均值;是变量和变量在第个观测值处的偏差乘积;和分别是变量和变量的偏差平方和。
2024-08-15 15:16:54 1558
原创 相似度计算方法-闵可夫斯基距离(Minkowski Distance)
闵可夫斯基距离(Minkowski Distance)是一种广义的距离度量方法,它涵盖了多种常见的距离度量,如欧几里得距离(Euclidean distance)和曼哈顿距离(Manhattan distance)。Minkowski距离定义了两个点在n维空间中的距离,可以根据不同的参数p来调整距离度量的方式。对于两个点和在n维空间中的Minkowski距离可以用以下公式表示:这里,是一个正实数,决定了距离度量的具体形式。
2024-08-15 14:34:03 563
原创 相似度计算方法-编辑距离 (Edit Distance)
编辑距离 (Edit Distance)的定义、计算公式、代码实现、优劣势以及应用场景
2024-08-15 13:39:06 1730
原创 相似度计算方法-汉明距离 (Hamming Distance)
汉明距离 (Hamming Distance)的定义、计算公式、代码实现、优劣势以及应用场景
2024-08-15 10:49:58 1110
原创 相似度计算方法-杰卡德相似度 (Jaccard Similarity)
杰卡德相似度 (Jaccard Similarity)的定义、计算公式、代码实现、优劣势以及应用场景
2024-08-15 10:18:39 935
原创 LSM Tree
LSM Tree(Log-Structured Merge Tree)是一种数据结构和算法,用于高效地管理和存储大量数据。它主要用于设计键值存储系统和数据库,特别适合写入密集的场景。
2024-08-12 17:10:02 338
原创 跳跃表(Skip List)
跳跃表(Skip List)是一种概率型数据结构,它通过在链表上添加多层索引来加快查找速度。跳跃表的设计目标是实现一个高效的搜索、插入和删除操作的有序数据结构,其性能可以与平衡树相媲美,但实现起来更为简单。
2024-08-12 16:48:58 713
原创 B+树 VS B树
B+树是一种平衡树数据结构,常用于数据库和文件系统中。它是B树的一个变种,具有以下特点:1. 所有数据都存储在叶子节点,内部节点只存储键值。2. 叶子节点通过指针相连,形成一个有序链表,便于范围查询。3. 每个节点可以存储多个键值,通常比B树的节点要多。4. 树的高度通常较低,有利于减少磁盘I/O操作。B+树的主要优势包括:1. 高效的范围查询:由于叶子节点相连,可以快速进行范围搜索。2. 更好的磁盘利用率:内部节点不存储数据,可以容纳更多索引,减少树的高度。
2024-08-12 16:07:34 235
原创 子串查找算法KMP
KMP算法(Knuth-Morris-Pratt算法)是一种高效的字符串匹配算法,由Donald Knuth、James H. Morris和Vaughan Pratt在1977年共同发明。它通过利用已经部分匹配这个有效信息,避免了暴力匹配中的大量回溯,从而显著提高了匹配效率。预处理模式串,生成部分匹配表(next数组)。利用这个表在匹配失败时快速滑动模式串,减少不必要的比较。预处理阶段:计算模式串的部分匹配表。匹配阶段:利用部分匹配表进行快速匹配。
2024-08-12 14:02:36 981
原创 双数组字典树(DoubleArrayTrie)
双数组字典树(Double-Array Trie)是一种高效的字符串检索数据结构,它结合了Trie树的快速查找特性和数组的紧凑存储优势。这种数据结构主要用于实现高速字符串匹配,特别适合处理大规模字典和自然语言处理任务。
2024-08-06 00:28:47 718
原创 基数树(Radix Tree)
基数树(Radix Tree),也称为紧凑前缀树(Compact Prefix Tree)或 Patricia 树(Patricia Tree),是一种用于存储和检索字符串键值的数据结构。基数树与Trie树(前缀树)类似,但通过压缩公共前缀来减少节点的数量,从而节省存储空间。基数树非常适合用于查找具有公共前缀的字符串。
2024-08-02 11:49:41 728
原创 是不是所有递归都可以改写为循环?
大多数递归算法可以被改写为等效的循环算法,但这并不意味着所有的递归都可以直接且简单地转换为循环。- 这种情况下,递归转换为循环通常需要额外的逻辑来跟踪递归的状态,例如使用栈来模拟递归调用的堆栈。- DFS通常使用递归来实现,但如果要转换为循环版本,通常需要手动维护一个栈来跟踪节点的访问顺序。- 尾递归是一种特殊的递归形式,其中递归调用是函数体中的最后一个操作。有些递归算法由于其固有的递归性质或复杂性,很难直接转换为简单的循环。- 这种情况下,转换为循环可能需要更加复杂的逻辑来模拟递归树的结构。
2024-08-02 10:04:42 393
原创 Transformer简介
Transformer是一种基于自注意力机制的神经网络结构,它通过多层的自注意力网络,可以自动地捕捉输入序列中的长距离依赖关系。这个新的表示形式可以捕获输入序列中的不同方面的信息,从而使得模型可以更好地理解输入序列。总之,Transformer是一种重要的自然语言处理模型,它通过自注意力机制和残差连接等技术实现了对输入序列的深度理解和表示。自注意力机制:自注意力机制是Transformer的核心技术之一,它可以自动地捕捉输入序列中的长距离依赖关系。文本分类:文本分类是将给定的文本分为不同的类别的一种任务。
2023-09-05 09:24:16 959
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人