zoukankan      html  css  js  c++  java
  • 搜索引擎的中文分词技术详细分析

    有人在SEO(搜索引擎优化)QQ群里面问我什么是中文分词,鉴于时间的原因只是讲了中文分词的简单的步骤,下面我们举个例子来详细的认识下。

      首先我们看下下面这个句子“上海奇商是上海地区最优秀的企业SEO咨询公司吗?”

      当搜索引擎(以后一律建成SE)读到上面这句话的时候会进行第一次切词,结果如下:上、海、奇、商、是、地、区、最、优、秀、的、企、业、S、E、O、咨、询、公、司、吗

      注意上面是20 个中文汉字和3个英文字母,而第一次分词的结果是将“上”、“海”两个重复的关键词去掉了。这种切词就是简单的单字法。当然搜索引擎不是傻瓜,不会只利用这么一种简单的分词方法。

      接着,搜索引擎进行二分法分词,结果如下:上海、海奇、奇商、商是、是上、海地、地区、区最、最优、优秀、秀的、的企、企业、业S、SE、EO、O咨、咨询、询公、公司、司吗

      注意上面的伤害出现了两次,也只算做一个词,因为他们的确是一个词,第一个“上海”和中间的“上海”没有什么差别。这只是第二次分词,接着会有三分法分词和四分法分词。

      或许有SEO要问,这样分出来的词搜索引擎有什么用?不着急,我们还没讲到下面。

      其次,SE针对这些词进行筛选,怎样筛选呢?我们都知道中文的很多词,像“的”“了” “啊”“吗”“在”等几乎每篇文章都会用到,这些词要是SE全部收录的话,那估计数据库早就放不下了,因为百度目前收录的16亿网页几乎每个网页都有这些词,这么浩大的工程,SE肯定忙不过来,即使忙过来,也很少有人去搜索“啊”这样无意义的关键词。所以SE将这些词定义为停止关键词,也就是英文里面提到的“stop word”。只要是停止关键词都会被删除的。

      或许又有SEO开始提问了,那么“是上”这样的关键词难道也被分成一个词?不要着急,下面还有更精彩的。忽略掉停止关键词后,剩下的关键词开始跟SE的词库进行匹配,原始的词库可能只有辞海那些基础的关键词,但是随着互联网的发展新词的产生,SE的词库远远大于辞海。后面会详细解释。

      这样像“上海”、“地区”、“优秀”、“企业”、“咨询”、“公司”等我们自己都知道肯定属于辞海的关键词,肯定也属于SE的词库。

      这里有些SEO开始问,那么像“SEO”这样的词SE是怎样判断的呢?如果大家去看下在微软必应搜索”SEO”时候推荐的关键词就能看到,他们和百度、谷歌一样,原来都是解决不掉这个问题的,推荐的关键词一律为“色哦”。那么后来他们是怎么分析出来这个关键词的呢?这个就要靠SE强大的统计功能了,当SE发现有大量用户搜索“SEO”这个关键词的时候,他们就会将这个关键词添加到词库。这个时候一个新词就产生了。

      当然还有这种情况是百度贴吧之父俞军和百度CEO李彦宏都向往的一种分词方法,即理解,理解的意思就是我们在搜索“上海最好的SEO公司”的时候,SE能够理解用户要找的是什么信息,他会发现用户最在乎的是“最好的”这个关键词,于是就会将带有“最好的” 网站提升到第一位。本站就成功的靠中文分词的这一特性完成了双排名第一的目标。 总结一下,SE其实有三种分词方法,一种就是基于字符串匹配的方法,像单子法、二分法等等(依靠词库);第二种就是靠统计数据,来获得大量的新词,这种方法叫做统计分词;还有一种方法是在统计的基础上,实现匹配的方法,也就是理解的方法,这种方法首先统计大家都搜索这个关键词没有找到后第二个搜索的且搜索量最多的词是什么,比如说很多人搜索“最好”然后发现没有得到他们想要的SERP,结果又搜索了一下“最好的”这个时候大量的统计数据表明“的”是有用的,然后将他添加到“最好的”组成一个新词。前两种分词已经普遍被SE认可,第三种目前对于搜索量低的词还是统计不出来,统计不出来也就没法“理解”。

  • 相关阅读:
    Handler机制来处理子线程去更新UI线程控件
    获得某月份的天数
    listview选中没有效果
    kali或其他系统,虚拟机中不能加载镜像
    tomcat开启多个端口
    kali自定义分辨率
    Redis 安装手册
    bash检查centos服务器运行状态
    关于利用RD client远程电脑,和输入法的一些问题
    centOS下 MYSQL基本操作
  • 原文地址:https://www.cnblogs.com/baogg/p/1916282.html
Copyright © 2011-2022 走看看