【问题标题】:Datastructures to improve the performance of text matching提高文本匹配性能的数据结构
【发布时间】:2014-12-11 10:49:23
【问题描述】:

我正在努力将一些文本分类为最适合该文本的类别。作为第一步,我正在编写一个简单的文本匹配代码。 我正在将文本集中的一段文本中的单词与指示某些类别的单词进行比较。

这个简单搜索的复杂度变得太大了 O(n^4)!

文本:许多好莱坞电影都很棒。电影爱好者沉迷于它们。 (n个词在1个句子和m个这样的句子)

类别可以是:电影、歌曲、体育等(p 个类别,每个类别有 x 个单词)

电影的指示词-[电影,电影,电影...](一个类别的 x 词)

所以,搜索时间变成了 O (m *n * p * x) 这可能太大了。

你能建议我一些数据结构/方法来解决简化复杂性吗?

【问题讨论】:

    标签: performance algorithm nlp time-complexity categorization


    【解决方案1】:

    有一种基于trie的算法叫Aho–Corasick string matching algorithm,对于一个类别,它可以检查该类别中的单词是否出现在Text中。

    你可以构建 p 次尝试,它会比 O(m * n * p * x) 执行得更好。 (我认为将是 O(p * m * (n + x) ))

    这里是Aho–Corasick_string_matching_algorithm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多