![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 86
大家都说我身材好
兴趣是最好的老师
展开
-
一文了解 StandardTokenizer 分词器,分词原理
StandardTokenizer 是HanLP中的一个分词器,也是默认的标准分词器。它基于词典和规则的方式对中文文本进行分词,将输入的句子切分成一个个独立的词语。基于词典和规则使用一个内置的词典和规则来对中文文本进行分词。词典包含了大量的常见词汇和词语,规则则用于处理一些特殊的情况,如人名、地名、数字等。支持中英文混合分词可以处理中英文混合的文本,并正确地将其切分成独立的词语。例如,“我爱自然语言处理"会被切分成"我”、“爱”、“自然语言处理”。原创 2023-11-24 14:50:03 · 1804 阅读 · 0 评论 -
AES 加密算法原理详解及实现
随着互联网的发展,越来越多的数据需要在网络中进行传输。为了保证数据的安全性,在进行网络传输时,需要对数据进行加密操作,使得数据在传输过程中不被窃取或篡改。AES(Advanced Encryption Standard)就是一种经典的加密算法。AES 算法源于比利时密码学家 Joan Daemen 和 Vincent Rijmen,它是一种对称加密算法,通过使用相同的密钥对数据进行加密和解密操作。AES 算法中,加密和解密操作是相反的过程,因此需要使用相同的密钥作为加密和解密的关键参数。原创 2023-06-16 14:45:37 · 13731 阅读 · 0 评论 -
JVM 中的垃圾回收算法详解,一文读懂GC回收机制
垃圾回收是一种自动化的内存管理方式,它可以监测并清除内存中不再使用的对象,使得内存空间可以被回收并重新利用。在 JVM 中,垃圾回收器负责管理虚拟机的内存分配和回收。JVM 中常见的垃圾回收算法主要包括:标记-清除算法、复制算法、标记-整理算法和分代算法。原创 2023-05-31 11:13:50 · 1801 阅读 · 1 评论 -
ChatGpt都这么火了,它使用的 BPE 分词算法要不要了解一下?
在 BPE 算法中,频率的定义非常重要。具体来说,频率需要考虑字符(单字母)和子词(多个字母组成的词)两个方面。对于字符而言,我们可以使用它在输入文本中出现的次数作为其频率。例如,如果字符“a”在输入文本中出现了 10 次,那么我们就认为该字符的频率为 10。对于子词而言,频率的定义则需要考虑其实际出现的次数和合并次数两个因素。具体来说,如果一个子词出现了一次,则它的频率为 1;如果一个子词被合并了 k 次,则它的频率需要乘以 2^k。原创 2023-05-26 18:25:54 · 1102 阅读 · 0 评论 -
一问读懂链表结构,及应用场景
Java中的链表结构是指,将一组数据按照指定规则连接起来的数据结构。它由多个节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。在Java中,这种数据结构被封装成了一个链表类,常见的有单向链表、双向链表和循环链表等。原创 2023-05-19 18:10:19 · 1294 阅读 · 1 评论 -
MD5 算法
MD5(Message Digest Algorithm 5)是消息摘要算法的一种,它可以将任意长度的“消息”(也可以是文件)计算出一个固定长度的“摘要”,通常是128位。MD5广泛应用于数字签名、数据完整性校验、密码存储等领域。在Java中,可以使用java.security.MessageDigest类来实现MD5算法。原创 2023-05-17 13:43:27 · 4151 阅读 · 0 评论 -
Java 快速排序
快速排序是一种常用的基于比较的排序算法,其时间复杂度为 O(nlogn),并且具有稳定性和广泛的应用场景。本文将全面详细的讲解一下 Java 中快速排序算法的原理、实现以及时间复杂度等问题。原创 2023-05-15 11:17:00 · 7836 阅读 · 1 评论 -
Java 插入排序详解
插入排序算法是一种简单但实用的排序方法,其中直接插入排序适用于小规模数据的排序,而希尔排序则适用于大规模数据的排序。由于它们都是基于数组结构实现的排序算法,因此它们都不适用于链表结构的数据。在实际应用中,插入排序算法的优点是简单易懂、实现方便,缺点是时间复杂度较高,不适合处理大规模数据;而希尔排序算法通过增加步长来提高效率,但其时间复杂度与步长有关,也不稳定。因此,在实际工作中,我们需要根据具体的场景选择合适的排序算法。原创 2023-05-15 11:09:25 · 2234 阅读 · 0 评论