gpt4 book ai didi

php - 使用 mysql 和 php 查找短语

转载 作者:行者123 更新时间:2023-11-30 22:52:30 25 4
gpt4 key购买 nike

我正在做一个项目,我需要你在数据库查询中的建议。我正在使用 PHP 和 MySQL。

上下文

  • 我有一个名为 phrases 的表,其中包含一个 phrases 列,其中存储了短语,每个短语由一到三个单词组成。
  • 我有一个包含 500 - 1000 个单词的 text 字符串

我需要突出显示存在于我的 phrases 数据库表中的 text 字符串中的所有短语。

我的解决方案

我遍历短语列表中的每个短语并将其与文本进行比较,但是短语的数量很大 (100k),因此进行此匹配需要大约 2 分钟或更长时间。

有没有更有效的方法?

最佳答案

我将重点介绍如何使用 100K 值进行比较部分。这将需要两个步骤。

a) 编写一个 C++ 库并使用扩展将其链接到 PHP。谷歌 PHP-CPP。有一个框架允许您执行此操作。

b) 在 C/C++ 内部,您需要创建一个时间复杂度为 O(n) 的数据结构。 n 是您要搜索的短语的长度。通常,这称为尝试数据结构。这通常用于没有空格的单词[不是短语]。但是,您当然可以自己编写。

这是一个链接,其中包含实现一词。又名词典。 http://www.geeksforgeeks.org/trie-insert-and-search/

这需要相当多的内存,因为数字是 100K。公平地说,您需要一个大型系统。但是,当您寻求更好的性能时,内存往往是一种权衡。

替代方法只有 PHP。在这里,从您的文本输入中提取短语。将它们转换成哈希。您包含的表数据也应存储在哈希中。 [需要巨大的内存]。这里的性能将非常快,每次搜索也就是 O(1)。所以,对于 k 个单词的句子。你的时间复杂度将是 O(K-factorial)。

关于php - 使用 mysql 和 php 查找短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com