
结构算法
文章平均质量分 78
lpty
走进科学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模式匹配:TrieTree原理
一、基本知识1、定义在计算机科学中,TrieTree又称为前缀树、字典树,是一种有序树,用于保存关联数组,通常为字符串。在前缀树中,通常有一个根节点,每一个节点的子节点都拥有相同的前缀,如果保存的是字符串,那么代表拥有相同的前缀字符串。2、结构图假设存在一棵树,存储了字符串集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, ‘in”, “inn”},Tr...原创 2018-03-20 11:25:23 · 1597 阅读 · 0 评论 -
模式匹配:KMP算法
一、暴力匹配算法有一个文本串S和一个模式串P,现在需要查找模式串P在文本串S中的位置,简单的考虑,可以用以下方法: 1、将模式串的第一个字符与文本串的第一个字符进行比较,如果不相同则模式串整体后移一位,继续1步骤;如果相同则跳转步骤2 2、模式串的第一个字符与文本串的第一个字符相同,则继续比较第二个字符,如果不相同则模式串整体后移,跳转到步骤1;如果相同则继续下一个字符的比较 3、上述步...原创 2018-03-20 15:27:17 · 1249 阅读 · 0 评论 -
模式匹配:AC自动机
一、概述AC自动机在1975年产生于贝尔实验室,是著名的多模匹配算法之一。 之前谈到一种单模式匹配算法,KMP。与之比较,KMP是用来在一篇文章中匹配一个模式串;而假如存在多个模式串,按照KMP的思路就需要进行多轮重复匹配,所以这时候就需要一种更加有效率的方式。AC自动机 = 字典树 + KMP对于字典树和KMP算法不了解的,可以参考以下两篇博文: 1、字典树 2、KMP算法...原创 2018-03-21 17:39:33 · 1195 阅读 · 0 评论 -
From Word Embeddings To Document Distances
一、概念词移距离来自于论文:From Word Embeddings To Document Distances 从论文题目可以看出,主要是基于词向量的工作。w2v构造了一个词与词之间衡量相似度的方法,但是对于句子或者文档来说,单纯基于词的衡量方法在一定程度上遗漏了句子的信息,而WMD参考了EMD的内容,成为计算文档相似度的一种方法。二、思想如果希望反映出文档的内在含义,一个比较直观...原创 2018-05-02 11:33:17 · 4172 阅读 · 0 评论 -
How to Strike a Match
一、概念来自于Simon White发表的一篇文章:How to Strike a Match 这个算法主要为了满足以下三个需求:(1)字符串之间只是在某几个字符处出现不同,那么相似度应该比较高。(2)字符串的区别只是相同的词组以不同的顺序排列,那么相似度应该比较高。(3)语言无关性,算法应该满足多种语言的的相似度计算。论文中对比了几种相似度算法, Soundex Algor...原创 2018-05-02 15:55:08 · 1205 阅读 · 0 评论 -
Replace or Retrieve Keywords In Documents At Scale
一、概念Flashtext主要用于关键字搜索与替换,来自于论文:Replace or Retrieve Keywords In Documents At Scale 论文中提到,Flashtext基于 Trie 字典数据结构和 Aho Corasick,但从搜索方式上,只匹配完整的词而不会匹配子字符串,如: 模式串‘apple’不会匹配到字符串’I like Pineapple’中的‘ap...原创 2018-05-04 10:56:31 · 2156 阅读 · 3 评论 -
相似度:最长公共子序列--LCS
一、概念1、子序列一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。如序列[A,B,C,B,D,A,B]的子序列有:[A,B],[B,C,A],[A,D,A,B]等.。2、公共子序列给定序列X和Y,序列Z是X的子序列,也是Y的子序列,则Z是X和Y的公共子序列。例如X=[A,B,C,B,D,A,B],Y=[B,D,C,A,B,A],那...原创 2018-04-26 16:23:32 · 2484 阅读 · 0 评论 -
相似度:编辑距离--Levenshtein Distance
一、概念字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。 Levenshtein距离是一种计算两个字符串间的差异程度的字符串度量(string metric)。我们可以认为Levenshtein距离就是从一个字符串修改到另一个字符串时,其中编辑单个字符(比如修改、插入、删除)所需要的最少次数。二、思想假...原创 2018-04-27 15:50:05 · 1370 阅读 · 0 评论