• 搜索系统中基于字典的逆向中文分词


    全文检索
    前段时间做一个全文搜索的dd
    使用OracleText来建立全文索引和实现全文检索
    然后在数据库端建立分页存储过程来进行全文检索
    信息抽取
    这样,只要处理表示层的一些问题了
    包括,抽取检索文本中与用户需求最想关的部分显示
    高亮显示搜索关键字等
    那么,用户最想看到的文字即信息量最大的文字,
    和高亮显示的搜索关键字,
    应根据什么来决定呢?
    显然,应该以包含信息的最小单元来决定
    在中文系统中,这个最小单元就是中文的词语

    中文分词
    关于中文分词,国内有很多研究也有不少成果
    在我们系统中,使用的是一种非常简单的方式:
    基于字典的逆向中文分词
    字典文件可以使用中文加加的词库
    可以在其网站上获得
    匹配算法很简单,
    在搜索系统中时间需求很高
    所以只匹配2字和3字的词语(后面我们会弥补忽略多字词语的误差)
    每次探测3个字,不是词语是探测2个
    然后加入助词的判断,即3个字(ABC)不是词语,
    但是(AB)和(BC)都是词语
    这时可根据A和C的词性来判断
    我的办法是新建一个助词词典
    在其中来检索助词词性

    词语反向组合
    为了弥补前面分词时追求速度带来多字词语分词丢失的误差
    我们将分词结果进行反向组合
    将相邻分词结果组合,并丢弃最终的单字结果
    组合后词语顺序按信息量递减排列
    即设分词结果为(AB)(C)(DE)
    组合为(ABC)(CDE)(AB)(DE)
    一方面这样做也能使长的词语(一般这种词语信息含量大)靠前排列
    这样,分词的准确率大大提高
    且性能提升明显:
    搜索系统中,关键字一般不长
    将10个左右关键字组合的时间
    远小于在字典中探测4字以上词语的损耗。

  • 相关阅读:
    001-Go JSON处理
    cpu高占用,线程堆栈,jstack,pstack,jmap, kill -3 pid,java(weblogic,tomcat)
    jQuery插入,复制、替换和删除节点
    jquery 控制css样式
    10分钟掌握XML、JSON及其解析
    阻止跳转的四种方式,你知道吗?
    jQuery事件绑定和委托
    响应式Web设计的9项基本原则
    网友写的验证码生成方案,可防止绝大多数机械识别。
    7个高性能JavaScript代码高亮插件
  • 原文地址:https://www.cnblogs.com/calmzeal/p/272085.html
Copyright © 2020-2023  润新知