计算q-gram过滤器的阈值
1. 引言
许多过滤方法可基于共享q-gram计数的相似度度量来制定。只有当模式与子串的相似度至少达到给定阈值时,才会检查文本子串。多数方法能给出简单的阈值方程,但涉及间隔q-gram时情况会更复杂。本文将探讨阈值计算问题,给出阈值的正式定义及计算算法。
2. 阈值定义
阈值t(m, k)是长度为m的模式与距离该模式不超过k的文本子串之间匹配q-gram的最小数量。匹配q-gram的数量是字符串的相似度函数。为找到最小相似度,假设不存在“意外”匹配的q-gram,即q-gram仅在不受编辑操作影响(或影响不大)时才匹配,最小相似度由编辑操作的最坏排列决定。
编辑转录(edit transcript)是由M(匹配)、R(替换)、I(插入)和D(删除)组成的字符串,描述一个字符串到另一个字符串的逐字符转换。对于两个字符串P和S,T(P, S)表示将P转换为S的所有转录集合。对于转录τ∈T(P, S),τ的源长度slen(τ)是P的长度,即τ中非插入操作的数量。Levenshtein成本cL(τ)是非匹配的数量,Hamming成本cH(τ)在τ包含插入或删除时为无穷大,否则与Levenshtein成本相同。P和S的Levenshtein距离和Hamming距离分别为dL(P, S) = minτ∈T(P,S) cL(τ)和dH(P, S) = minτ∈T(P,S) cH(τ)。
阈值定义如下:
定义1:对于成本函数c和利润函数p,阈值tc p(m, k) = min τ {p(τ) | slen(τ) = m, c(τ) ≤ k}。
引理2:设c是编辑转录的成本函数,p是利润函数。
超级会员免费看
订阅专栏 解锁全文
953

被折叠的 条评论
为什么被折叠?



