zoukankan      html  css  js  c++  java
  • 关于眼下分词的想法

    眼下分词性能比較差,仅仅有1.65M/s,同事在没有改变主要算法的情况下做了一点优化调整,到3.52M/s。但对性能的提升仍然不够明显。我感觉亟须解决几个问题:

    1.search时keyword分词也按多种粒度进行,然后分别sloppyphrase,最后or起来,因为大粒度分的词词频低,因此idf大。它们在排序时优先级更高,符合期望。如今仅仅做一个粒度的切法,又要求在索引里面都能找到,感觉不太现实。修改之后的做法对索引时分词没有苛求。相对来说添加的开销也不会非常大,可能就三个粒度的分词,仅仅是假设排序没有考虑的话须要更高一些排序的做法。查全率、召回率都会更高。这样索引分词就专注在按不同粒度切好词就可以,不用在切完之后再考虑合并之类复杂奇怪的逻辑,能够追求更高的性能。

    2.统一使用trie树(或fst)做检索,trie树也能够定时更新,杜绝用hash做前缀查询,trie树相当于状态机性能更好。

    3.建立性能、准确率、召回率的指标,眼下算法比較复杂,假设有其它算法综合起来更优,能够替换。

    4.眼下increment gap没有考虑,不够严谨,可能会出错。


  • 相关阅读:
    程序员都必读
    ia-64 vs x86-64
    Linux内核学习
    开源liscense对比
    列存储
    大数据科普
    [USACO1.5]数字三角形
    [USACO08FEB]酒店Hotel
    数的划分
    CodeForce 18D
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7390008.html
Copyright © 2011-2022 走看看