【问题标题】:String Matching - Character Weight [closed]字符串匹配 - 字符权重 [关闭]
【发布时间】:2014-11-30 20:53:35
【问题描述】:

我正在做一项小型研究,我正在寻找字符串匹配算法并实现它们,以便将以前的一些算法与最近发布的一种新算法进行比较,其中作者表示它的性能优于 Boyer Moore算法。

我的问题不是编码,而是更多地了解“字符权重”一词的含义,这是论文的引述:

我已阅读所有论文,但该术语在任何地方都没有定义,我已阅读有关同一主题的其他论文,但我无能为力,不知道该术语是什么意思。我已经给作者发了邮件,但我还在等待回复。

可能是 ASCII 码还是……?

这是对论文的参考: IEEE Paper - Exact anD Like String Matching (ELSM)

更新:

作者没有指定时间或空间复杂度,但他们确实提到了这一点,我觉得很奇怪

“发现无论搜索模式的长度如何,搜索时间都是恒定的。ELSM的性能与最著名的两种算法BM和Brute force相比非常高。平均消耗的时间约为6% , 的 上述两种算法所消耗的时间。”

“实验结果表明,在最坏的情况下,新算法比BM效率高很多倍,而且模式越长,性能提升越大”

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于抽象算法而不是编程。最好在cs.stackexchange.com 上问这个问题
  • 作者有没有说明它在什么方面表现更好?时间?空间?质量?
  • 我更新了问题并回答了您的问题

标签: algorithm string-matching


【解决方案1】:

字符的重量表明其相对于其他字符的重要性。例如,“g”的权重可能为 100,“e”的权重可能为 50。

这个想法与weighted arithmetic mean 相同。分配给角色的权重是您必须决定的。

【讨论】:

  • 关于 OP 正在讨论的算法,您知道这是事实还是意见?
  • 假设我选择了标准并且你说的是事实,那么例如你可以说每个字符的 ASCII 码是它的权重,因为每个 ASCII 都是唯一的并且彼此不同,对吗?
  • @hatchet 除非论文作者使用不同的定义,否则:Weighting
  • @user733659 否:如果所有字符的意义相同,那么它们的权重将相等。
  • 加权意味着模糊匹配,即赋予'S'和'Z'相似的权重,但'A'和'Z'不同的权重。但是该算法将自己与 Boyer Moore 进行比较,后者在另一个字符串中找到一个字符串(不模糊)。我想知道作者是否使用加权一词来描述仅对 ASCII 代码求和。我上面的问题的意思是,你熟悉这个算法吗?
【解决方案2】:

我认为你的问题的答案是抽象的:

它基于计算搜索中字符值的总和 字符串并将这个总和与 滑动窗口中的对应字符。滑动窗口 包含的字符数等于搜索字符串的字符数,并且是 从输入的开头和结尾向右移动 字符串。

这听起来很像简单地将 ASCII 值相加。不过,我不认为这比 Boyer Moore 好。

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多