自然语言处理学习笔记二(词典分词)

本文探讨了词典分词的四种切分算法,包括完全切分、正向最长匹配、逆向最长匹配和双向最长匹配,并指出速度是关键。在速度测评中,Python的效率低于Java,而正向和逆向匹配速度接近,双向匹配较慢。字典树和AC自动机用于优化查找效率,双数组字典树进一步提升性能。最后,提到准确率评估通常使用精确率、召回率和F1值。
摘要由CSDN通过智能技术生成

    一、词典分词的切分算法

            1.   完全切分

            2.  正向最长匹配

            3.  逆向最长匹配

            4.  双向最长匹配

    二、  速度测评

            词典分词的规则没有技术含量,消歧效果也不好,核心不在于精度,而是在于速度

            1.  同等条件下,python的运行速度要比java慢,效率只有java的一半不到

            2.  正向与逆向的速度差不多,是双向的两倍。

            3.   java实现的正向匹配快于逆向匹配。

    三、 字典树

            匹配算法的瓶颈之一在于如何判断集合中是否包含字符串,字典树是速度快内存占用少的数据结构。 字典树加上前缀的使用,效率会进一步提高。

           双数组字典树,将状态转移复杂度为常数的数据结构。

   四、AC自动机

            AC自动机是在前缀树的基础上为前缀树的每个节点创建一棵后缀树,节省了大量的查询。

           AC自动机由goto表、fail表和output表组成。

   五、基于双数组字典树的AC自动机

           将AC自动机中的goto表也使用双数组字典树来实现。

  六、准确率评测

          准确率是用来衡量一个系统的准确程度的值。但是在中文分词的任务中,是使用精准率召回率以及F1值来衡量。

          1.混淆矩阵   TP(真阳)、FP(假阳)、TN(真阴)、FN(假阴)

             精确率:预测结果中正类数量占全部结果的比率  P= TP/(TP+FP)

             召回率:正类样本被找出来的比率 R=TP/(TP+FN)

             F1值:  精确率召回率很难平衡,召回率高的系统往往精确率低,可以通过调和平均,这样就可以综合衡量。

           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值