比较字符串中关键字的流行度

发布于 2024-11-03 08:57:43 字数 150 浏览 3 评论 0原文

我想获取一个长字符串(数十万个字符)并将其与一组关键字进行比较,以确定数组中哪个关键字被提及的次数多于其他关键字。

这看起来很简单,但我有点担心 strstr 无法执行此任务。

我应该用不同的方式来做吗?

谢谢,

I want to take a long string (hundreds of thousands of characters) and to compare it against an array of keywords to determine which one of the keywords in the array is mentioned more than the rest.

This seems pretty easy, but I am a bit worried about strstr under performing for this task.

Should I do it in a different way?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帥小哥 2024-11-10 08:57:43

我认为你可以用不同的方式来完成它,只需一次扫描,如果你以正确的方式完成它,它可以给你带来性能上的巨大改进。

创建一个关联数组,其中键是关键字,值是出现的次数。

逐字读取字符串,我的意思是取出一个字并将其放入变量中。然后,将其与所有关键字进行比较(有多种方法可以做到这一点,您可以使用 isset 查询关联数组)。当找到关键字时,增加其计数器。

我希望 PHP 能够使用一些类似 hashmap 的东西来实现关联数组...

I think you can do it in a different way, with a single scan, and if you do it the right way, it can give you a dramatic improvement as of performance.

Create an associative array, where keys are the keywords and values are the occurrences.

Read the string word by word, I mean take a word and put it in a variable. Then, compare it against all the keywords (there are several ways to do it, you can query the associative array with isset). When a keyword is found, increment its counter.

I hope PHP implements associative arrays with some hashmap-like thingie...

那伤。 2024-11-10 08:57:43

以线性方式解析单词。对于您遇到的每个单词,增加您要查找的单词关联数组中的计数(当然,跳过那些您不感兴趣的单词)。这会比 strstr 快得多。

Parse the words out in linear fashion. For each word you encounter, increment its count in the associative array of words you are looking for (skipping those you aren't interested in, of course). This will be much faster than strstr.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文