BMM 和 FMM 中文分词
分词题目出自 : https://blog.csdn.net/xubo245/article/details/12917745,感谢博主呢
phrase_dict = ('的确','王公','实在','在理','公子')
max_len = 5'''
BMM :其主要思想 注释已经给出
'''
def BMM(sentence , split_str):
'''
sentence: 待分词 语句
split_str: 分词分割符,没有用到
return:
'''print(phrase_dict, type(phrase_dict))print("sentence -> " , sentence)segment_list = []while sentence:if len(sentence) >= max_len:temp = sentence[ : max_len] # 截取最长的词else:temp = sentencewhile len(temp) > 1: # 判断 当前的词总长度是否大于 1if temp in phrase_dict: # 判断当前 词 是否在字典中segment_list.append(temp) # 加入 到 记录 分词的 列表 中break # 如果在字典中,则 立刻 退出 当前的 循环temp = temp[:-1] # 不在 字典中,则 从 后面向前 移动一个字if len(temp) == 1: # 如果当前的 词 长度 为 1 , 则表示在字典中未找到,一个字为一个词segment_list.append(temp) # 将当前的 temp 加入到 词 列表中sentence = sentence[len(temp) :] # 这时,在原来的句子中,将分出的词删掉,继续print(segment_list)'''
FMM 中文分词,其主要思想已经在注释中给出
'''
def FMM(sentence , split_str):# 参数含义类 BMMprint(phrase_dict, type(phrase_dict))print("sentence -> ", sentence)segment_list = []while sentence:if len(sentence) > max_len:temp = sentence[len(sentence) - max_len :] # 截取最长的词else:temp = sentencewhile len(temp) > 1: # 判断当前的词总长度是否大于if temp in phrase_dict: # 判断当前词是否在字典中segment_list.append(temp) # 加入到记录分词的列表中break # 如果在字典中,则立刻退出当前的循环temp = temp[1:] # 不在字典中,则从前向后移动一个字if len(temp) == 1: # 如果当前的词长度为1,则表示在字典中未找到,一个字为一个词segment_list.append(temp) # 将当前的 temp 加入到词列表中sentence = sentence[: len(sentence) - len(temp)] # 这时,在原来的句子中,将分出的词删掉,继续segment_list.reverse()print(segment_list)def BDMM():passif __name__ == "__main__":sentence = "王公子说的确实在理"BMM(sentence , " ")print(" - " * 100)FMM(sentence , " ")
经过对上述代码进行改变输入格式,加入第一趟分词的步骤输出,其输出结果如下
BMM 和 FMM 中文分词相关推荐
- 词频统计,中文分词FMM,BMM博客
分词 | 双向匹配中文分词算法python实现 https://blog.csdn.net/Elenore1997/article/details/83274720 正向最大匹配算法实现之python ...
- 中文分词算法python代码_python实现中文分词FMM算法实例
本文实例讲述了python实现中文分词FMM算法.分享给大家供大家参考.具体分析如下: FMM算法的最简单思想是使用贪心算法向前找n个,如果这n个组成的词在词典中出现,就ok,如果没有出现,那么找n- ...
- 中文分词算法python_Python FMM算法的中文分词器实现方法源码
这是一篇基于Python代码使用FMM算法达到中文分词效果实现方法的文章.中文语句分词因为编码的关系在Python语言中并不是很好处理,关于中文乱码与编码的问题解决方法,可以参考玩蛇网的Python中 ...
- 中文分词算法python_python实现中文分词FMM算法实例
本文实例讲述了python实现中文分词FMM算法.分享给大家供大家参考.具体分析如下: FMM算法的最简单思想是使用贪心算法向前找n个,如果这n个组成的词在词典中出现,就ok,如果没有出现,那么找n- ...
- 中文分词的python实现-基于FMM算法
正向最大匹配算法(FMM) 正向最大匹配算法(FMM)是一种基于词典的分词方法,思想很简单就是从左向右扫描寻找词的最大匹配,比如词典中同时含有"钓鱼"和"钓鱼岛" ...
- 自然语言处理-中文分词相关算法(MM、RMM、BMM、HMM)
文章目录 一.前言 二.分词算法 2.1 规则分词 2.1.1 正向最大匹配法 2.1.2 逆向最大匹配法 2.1.3 双向最大匹配法 2.2 统计分词 2.2.1 语言模型 2.2.2 HMM模型 ...
- 中文分词的古今中外,你想知道的都在这里
作者:QvQ,夕小瑶,小鹿鹿鹿 前言 分词(word tokenization),也叫切词,即通过某种方式将句子中的各个词语识别并分离开来,使得文本从"字序列"的表示升级为&quo ...
- python 分词工具训练_中文分词入门和分词工具汇总攻略
[注意]如果寻找分词和文本分析软件,为了完成内容分析和其他文本研究任务,直接使用集搜客分词和文本分析软件就可以了.本文是为了讲解集搜客分词和文本分析的实现原理,是给产品设计者和开发者看的. 最近在整理 ...
- 系统学习NLP(九)--中文分词算法综述
转自:https://zhuanlan.zhihu.com/p/33261835 挺好的,推荐! 什么是中文分词 与大部分印欧语系的语言不同,中文在词与词之间没有任何空格之类的显示标志指示词的边界.因 ...
最新文章
- vim带你装逼带你飞(一)
- 探讨由于死锁或进程阻塞造成的ASP突然不能访问的问题
- 快速优雅的为React组件生成文档
- HBase-scan API 通过scan读取表中数据
- 绘图: matplotlib核心剖析
- android中使用哪种方式解析XML比較好
- DES对称加密(1)算法说明
- vue elementUI表单输入完成后回车触发事件@keyup.enter.native
- monkey测试===通过monkey测试检查app内存泄漏和cpu占用
- 买房子还是不买房子,这是一个问题
- Linux 下使用 gdb 调试 core 文件
- Arcgis执行Raster Project时报Error001143 : Background server threw an exception
- [CTSC 1999]拯救大兵瑞恩[网络流24题]孤岛营救问题
- Java语言实现简单FTP软件------FTP软件远程窗口的实现(六)
- 【Linux】sed命令用法详解
- c语言象棋图片大全精美,【图片】象棋C语言【中国新象棋吧】_百度贴吧
- 怎样进入国外的游戏行业工作?
- 标志位寄存器与CF、OF标志位的区分
- win10桌面快捷方式变白,解决方式
- 图像增强(1-灰度级变换)—内涵MATLAB源码
热门文章
- 微信公众号post方法Java_Java HttpClient 如何伪装微信浏览器进行POST请求
- android点击按钮打开自带浏览器,android – 如何在默认浏览器或webview中打开按钮单击URL...
- Java中存储金额用什么数据类型?
- Mysql使用Key/Value方式存储动态扩展字段、对象与HashMap的相互转化
- 电容笔和Apple pencil区别有什么?双十一值得入手的电容笔推荐
- 微信翻译,快把上海老外搞疯了
- Image segmentation of nasopharyngeal carcinoma using 3D CNN with long-range skip connection and mult
- pandas 用均值填充缺失值NaN —— fillna 方法解析
- php常见错误,php常见错误及错误处理 - 小俊学习网
- 双系统 修改grub启动菜单字体大小