​ 前段时间研究了如何用分词工具进行分词,但是分词中涉及的一些算法,不太了解,所以,准备这段时间专攻分词算法原理,大家有补充,或者建议,欢迎留言。

1. 最大匹配法(Maximum Matching)

​ 最大匹配法是指以词典为依据,取词典中最长词长度作为第一次取字数量的长度,在词典中进行扫描。例如:词典中最长词为“中华人民共和国”共7个汉字,则最大匹配起始字数为7个汉字。然后逐字递减,在对应的词典中进行查找。

​ 最大匹配法主要包括正向最大匹配法(FMM,Forward Maximum Matching)、反向最大匹配法(BMM, Backward Maximum Matching)和双向最大匹配法,均是基于词典的。

缺点:

需要给定词典,如果词典中记录不全,比如新词没在字典中,可能就识别不出来;
矛盾之处:词典中的词少的话,会影响准确率,词典中词多的话,会影响运行效率;
优化:

​ 为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描。
1.1 正向最大匹配法
​ 正向即从左往右取词,取词最大长度为词典中长词的长度,每次右边减一个字,直到词典中存在或剩下1个单字。
比如:ཁྱོད་སློབ་མ་སློབ་ཁང་ནང་དུ་སློབ་ཁྲིད་བྱས།

import copy
tibetdict = {'སློབ་མ', 'སློབ་ཁང', 'ནང་དུ', 'སློབ་ཁྲིད'}
s = 'ཁྱོད་སློབ་མ་སློབ་ཁང་ནང་དུ་སློབ་ཁྲིད་བྱས'# print(s[:len(s)-1])
def TibetSplit(tibet):# print(tibet)temp = ''result = ''# returnwhile len(tibet) > 0:tibet = tibet.strip('་')temp = copy.deepcopy(tibet)# print(tibet)while len(temp) > 0:if temp in tibetdict:result += temp + '/'tibet = tibet[len(temp):]# print(tibet,123)temp = ''else:if '་' not in temp:result += temp + '/'tibet = tibet[len(temp):]temp = ''else:temp = temp[:len(temp) - 1]print(result)
TibetSplit(s)

python:正向最大匹配法分词(以藏文为例)相关推荐

  1. 词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法

    词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法 Type真是太帅了 于 2018-12-31 13:20:07 发布 1930  收藏 1 分类专栏: 编程 版权 编程 专栏收录该内容 15 ...

  2. 正向/逆向最大匹配法分词实现

    最大匹配法:最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描).例如:词典中 ...

  3. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词

    基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤 第一次写中文分词程序,欢迎拍砖. publicclass MM ...

  4. java正向最大匹配算法_java中文分词之正向最大匹配法实例代码

    前言 基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典. 所谓词典正向最大匹配就是将一段字符串进行分隔,其中分隔 的长度有限制,然后将分隔的子 ...

  5. 正向最大匹配中文分词算法

    中文分词一直都是中文自然语言处理领域的基础研究.目前,网络上流行的很多中文分词软件都可以在付出较少的代价的同时,具备较高的正确率.而且不少中文分词软件支持Lucene扩展.但不管实现如何,目前而言的分 ...

  6. java 正向分词算法_正向最大匹配中文分词算法

    中文分词一直都是中文自然语言处理领域的基础研究.目前,网络上流行的很多中文分词软件都可以在付出较少的代价的同时,具备较高的正确率.而且不少中文分词软件支持Lucene扩展.但不管实现如何,目前而言的分 ...

  7. 中文分词——正向最大匹配法

    中文分词应用非常广泛,网上也有非常多开源项目. 我在这里主要讲一下中文分词里面算法的简单实现,废话不多说了,如今先上代码 package com;import java.util.ArrayList; ...

  8. python最大分词_python正向最大匹配分词和逆向最大匹配分词的实例

    正向最大匹配 # -*- coding:utf-8 -*- CODEC='utf-8' def u(s, encoding): 'converted other encoding to unicode ...

  9. 中文分词算法之--最大匹配法

    中文分词算法之–最大匹配法 ​ 前段时间研究了如何用分词工具进行分词,但是分词中涉及的一些算法,不太了解,所以,准备这段时间专攻分词算法原理,大家有补充,或者建议,欢迎留言. 1. 最大匹配法(Max ...

最新文章

  1. Linux那些事儿 之 戏说USB(6)好戏开始了
  2. 可疑文件_【国家标准】印刷文件鉴定技术规范点阵式打印文件的同机鉴定
  3. Java 项目JDBC 链接数据库中会出现的错误
  4. JavaScript知识点总结
  5. SQL_Server2008数据连接池
  6. BZOJ4504. K个串(主席树+优先队列)
  7. Luogu P1197 [JSOI2008]星球大战
  8. 一维序列卷积之Python实现
  9. 路由器太远手机接收不到信号怎么办?
  10. React Echarts 点击事件
  11. stat /bin/bash: no such file or directory“: unknown.
  12. java基础总结06-常用api类-Object和Objects
  13. Unity性能优化之物理引擎的优化(三)
  14. 易班应用开发教程php,易班 开发 java开发入门教程
  15. 液晶手写板原理拆解_天猫babycare儿童液晶手写板详情页拆解
  16. win7 开WiFi共享
  17. PayPal支付(Java开发)完整版
  18. install package vif包_ggpubr: Publication Ready Plots (发表级质量的作图R包)
  19. 如何在Word小方框里打勾
  20. uniapp 简单有效判断手指滑动方向

热门文章

  1. Android 判断颜色为深颜色还是浅颜色来动态调整app文字和图标颜色
  2. 伦敦奥运会(Olympics 2012)与LED灯光
  3. 博客站点选择SqlServer数据库版本技巧及微信打赏插件分析[图]
  4. 是谁在我的心里打了个结(十三)七天
  5. warning C4005: “AF_IPX”: 宏重定义解决办法
  6. 点成分享|如何预防水浴中的军团菌污染?
  7. 公众号第三方平台开发流程详解
  8. 天涯明月刀手游服务器维修,《天涯明月刀》12月30日服务器例行维护介绍
  9. python数据分析软件下载_windows 7下python数据分析软件的安装
  10. MoChat企业微信开源系统,让开发者快速搭建基于企业微信的私域流量运营系统