
算法
文章平均质量分 92
hero.fei
这个作者很懒,什么都没留下…
展开
-
NLU分词中用到的HMM马尔科夫模型以及Viterbi算法
马尔可夫假设 随机过程中各个状态St的概率分布,只与它的前一个状态St-1有关,即P(St|S1,S2,S3,…,St-1) = P(St|St-1)。 比如,对于天气预报,硬性假定今天的气温只与昨天有关而和前天无关。当然这种假设未必适合所有的应用,但是至少对以前很多不好解决的问题给出了近似解。 状态集合是所有的词性,观测集合是分出来的所有匹配集合,转移矩阵A即在当...翻译 2021-01-27 13:25:23 · 184 阅读 · 0 评论 -
对集合的交集差集等操作
package com.oppo.bot.rule.algorithm.collect;import java.util.*;import java.util.Map.Entry;public class CollectionUtils { public static interface MapHelper<K, V, O> { K getKey(O ...原创 2019-10-26 14:59:18 · 150 阅读 · 0 评论 -
利用BloomFilter过滤判断是否存在大集合中
当需要判断一个对象是否在千万级以上的集合时利用BloomFilter是非常有用的。Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Fi...翻译 2019-07-06 19:26:46 · 731 阅读 · 0 评论 -
java常用排序算法(冒泡,插入,快速)等
快速排序:算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。一次循环:从后往前比较,用基准值和最...翻译 2019-07-06 17:41:42 · 126 阅读 · 0 评论