文本长尾关键词提取

问题描述

1、直接使用关键词提取准确度很低,难以命中文章中核心的关键词,已知目前mysql中有一个上千万的长尾关键词库,里面全部都是存的关键词;

2、如果现在新增一篇文章后,怎样能快速、高效的检测这篇文章中包含了长尾关键词库中的数据?(因为每天新增很多文章,每一篇文章都需要这样处理)

问题出现的环境背景及自己尝试过哪些方法

目前用的最傻瓜的方法是将这些大量的文章和关键词索引后查询,好处是准确率高,即使是同义词也可以。但是这样轮一遍数据库需要两三天的时间。(也就是类似撞库的方式,现在的效率很低)

请问有没有简单的实现方式,能在新增一篇文章后,迅速的提取出长尾关键词库中的关键词?

阅读 2.6k
1 个回答

千万级要想实现秒级查询的方法就是用空间换时间。

先根据词库最终生成的字典大小给 PHP 预留内存,然后将词库导出生成字典树(就是 Trie 树)字典,载入内存常驻,通过字典树算法查找。

具体可以参考这篇文章《PHP实现敏感词过滤系统》,有轮子可用,而且作者测试过200W词,看数据是不错的。

另外,如果文章有分类,你可以建个表统计每个分类下的热门词语,根据词频做子词库可以提供更快的初步的关键词提取。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题