【问题标题】:c++ - Efficient algorithm to search for matching substringsc++ - 搜索匹配子串的高效算法
【发布时间】:2023-03-08 08:06:01
【问题描述】:

示例:我有很多这样的模式:

sexy hello
sex every
sex example
...

我有一个这样的查询:

hello, sexygirl.

此查询将匹配第一个模式。因为它包含了性感和你好。 注意:性感和少女没有空白。

有没有有效的方法来解决这个问题?

【问题讨论】:

  • 不清楚你在问什么。
  • 什么查询?我看不到代码。

标签: c++ algorithm full-text-search suffix-tree


【解决方案1】:

这可能会对您有所帮助,即使它是在 c 中,很多概念都是相同的:

What is the fastest substring search algorithm?

首先,您所拥有的大多数模式似乎都包含“性”一词,因此将其包含在您的查询中是没有意义的。因此,您应该对查询进行标记,并删除所有停用词。这将为您提供简单的字符串比较,并且由于您的模式可能会有与之配对的数据,例如文本响应,您可以使用哈希函数来比较字符串,然后操作与模式对应的数据. (例如:响应“Hello sexygirl”,将其转换为 ["Hello", "sexygirl"],然后将 ["Hello"]

您可以研究的另一件事是马尔可夫链,它通常用于生成文本,但在这种情况下可能会有所帮助。

马尔可夫链的小例子do

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2014-12-09
    相关资源
    最近更新 更多