分词题目出自 : 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 中文分词相关推荐

  1. 词频统计,中文分词FMM,BMM博客

    分词 | 双向匹配中文分词算法python实现 https://blog.csdn.net/Elenore1997/article/details/83274720 正向最大匹配算法实现之python ...

  2. 中文分词算法python代码_python实现中文分词FMM算法实例

    本文实例讲述了python实现中文分词FMM算法.分享给大家供大家参考.具体分析如下: FMM算法的最简单思想是使用贪心算法向前找n个,如果这n个组成的词在词典中出现,就ok,如果没有出现,那么找n- ...

  3. 中文分词算法python_Python FMM算法的中文分词器实现方法源码

    这是一篇基于Python代码使用FMM算法达到中文分词效果实现方法的文章.中文语句分词因为编码的关系在Python语言中并不是很好处理,关于中文乱码与编码的问题解决方法,可以参考玩蛇网的Python中 ...

  4. 中文分词算法python_python实现中文分词FMM算法实例

    本文实例讲述了python实现中文分词FMM算法.分享给大家供大家参考.具体分析如下: FMM算法的最简单思想是使用贪心算法向前找n个,如果这n个组成的词在词典中出现,就ok,如果没有出现,那么找n- ...

  5. 中文分词的python实现-基于FMM算法

    正向最大匹配算法(FMM) 正向最大匹配算法(FMM)是一种基于词典的分词方法,思想很简单就是从左向右扫描寻找词的最大匹配,比如词典中同时含有"钓鱼"和"钓鱼岛" ...

  6. 自然语言处理-中文分词相关算法(MM、RMM、BMM、HMM)

    文章目录 一.前言 二.分词算法 2.1 规则分词 2.1.1 正向最大匹配法 2.1.2 逆向最大匹配法 2.1.3 双向最大匹配法 2.2 统计分词 2.2.1 语言模型 2.2.2 HMM模型 ...

  7. 中文分词的古今中外,你想知道的都在这里

    作者:QvQ,夕小瑶,小鹿鹿鹿 前言 分词(word tokenization),也叫切词,即通过某种方式将句子中的各个词语识别并分离开来,使得文本从"字序列"的表示升级为&quo ...

  8. python 分词工具训练_中文分词入门和分词工具汇总攻略

    [注意]如果寻找分词和文本分析软件,为了完成内容分析和其他文本研究任务,直接使用集搜客分词和文本分析软件就可以了.本文是为了讲解集搜客分词和文本分析的实现原理,是给产品设计者和开发者看的. 最近在整理 ...

  9. 系统学习NLP(九)--中文分词算法综述

    转自:https://zhuanlan.zhihu.com/p/33261835 挺好的,推荐! 什么是中文分词 与大部分印欧语系的语言不同,中文在词与词之间没有任何空格之类的显示标志指示词的边界.因 ...

最新文章

  1. vim带你装逼带你飞(一)
  2. 探讨由于死锁或进程阻塞造成的ASP突然不能访问的问题
  3. 快速优雅的为React组件生成文档
  4. HBase-scan API 通过scan读取表中数据
  5. 绘图: matplotlib核心剖析
  6. android中使用哪种方式解析XML比較好
  7. DES对称加密(1)算法说明
  8. vue elementUI表单输入完成后回车触发事件@keyup.enter.native
  9. monkey测试===通过monkey测试检查app内存泄漏和cpu占用
  10. 买房子还是不买房子,这是一个问题
  11. Linux 下使用 gdb 调试 core 文件
  12. Arcgis执行Raster Project时报Error001143 : Background server threw an exception
  13. [CTSC 1999]拯救大兵瑞恩[网络流24题]孤岛营救问题
  14. Java语言实现简单FTP软件------FTP软件远程窗口的实现(六)
  15. 【Linux】sed命令用法详解
  16. c语言象棋图片大全精美,【图片】象棋C语言【中国新象棋吧】_百度贴吧
  17. 怎样进入国外的游戏行业工作?
  18. 标志位寄存器与CF、OF标志位的区分
  19. win10桌面快捷方式变白,解决方式
  20. 图像增强(1-灰度级变换)—内涵MATLAB源码

热门文章

  1. 微信公众号post方法Java_Java HttpClient 如何伪装微信浏览器进行POST请求
  2. android点击按钮打开自带浏览器,android – 如何在默认浏览器或webview中打开按钮单击URL...
  3. Java中存储金额用什么数据类型?
  4. Mysql使用Key/Value方式存储动态扩展字段、对象与HashMap的相互转化
  5. 电容笔和Apple pencil区别有什么?双十一值得入手的电容笔推荐
  6. 微信翻译,快把上海老外搞疯了
  7. Image segmentation of nasopharyngeal carcinoma using 3D CNN with long-range skip connection and mult
  8. pandas 用均值填充缺失值NaN —— fillna 方法解析
  9. php常见错误,php常见错误及错误处理 - 小俊学习网
  10. 双系统 修改grub启动菜单字体大小