编译原理实验二:Python实现中文分词–正向最大匹配和逆向最大匹配
最大匹配法:最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描)。

文档整理如下:

最大正向匹配代码如下:

# -*- coding: utf-8 -*-
"""
Created on Fri Feb 21 16:25:22 2020@author: lenovo
"""import numpy as np#处理词典库获得列表
def get_dic():f=open("F:/学习文件/编译原理/实验二/词典文档.txt",'r')file_open=f.read().split()#按照空格处理文件f.close()chars=list(set(file_open))#去重之后获得列表return chars
dic=get_dic()def readfile():max_length=0for i in dic:max_length=max(max_length,len(i))##获得最大长度zz=max_lengthf=open("F:/学习文件/编译原理/实验二/测试文档.txt",'r')ff=open("F:/学习文件/编译原理/实验二/生成文档.txt",'w')lines=f.readlines()f.close()for line in lines:#分别对每一行进行正向最大匹配处理max_length=zzmy_list=[]len_hang=len(line)while len_hang>0:tryW=line[0:max_length]##切割字符串while tryW not in dic:if len(tryW)==1:#长度为1的时候就直接退出break;tryW=tryW[0:len(tryW)-1]my_list.append(tryW)line=line[len(tryW):]len_hang=len(line)for i in my_list:ff.write(i+" ")ff.close()
readfile()

结果如下:

逆向最大匹配代码如下:

# -*- coding: utf-8 -*-
"""
Created on Fri Feb 21 19:04:54 2020@author: lenovo
"""import numpy as np#处理词典库获得列表
def get_dic():f=open("F:/学习文件/编译原理/实验二/词典文档.txt",'r')file_open=f.read().split()f.close()chars=list(set(file_open))return chars
dic=get_dic()def readfile():max_length=0for i in dic:max_length=max(max_length,len(i))##获得最大长度zz=max_lengthf=open("F:/学习文件/编译原理/实验二/测试文档.txt",'r')ff=open("F:/学习文件/编译原理/实验二/生成文档逆向最大匹配.txt",'w')lines=f.readlines()f.close()for line in lines:#分别对每一行进行逆向最大匹配处理max_length=zzmy_list=[]len_hang=len(line)while len_hang>0:tryW=line[max(0,len_hang-max_length):len_hang]#防止溢出while tryW not in dic:if len(tryW)==1:break;tryW=tryW[1:len(tryW)]#这里注意,一直是从1开始的my_list.append(tryW)line=line[0:len_hang-len(tryW)]len_hang=len(line)while len(my_list):tt=my_list.pop()#这里类似栈的操作ff.write(tt+" ")ff.close()
readfile()##012345

结果如下:

逆向需要考虑一些下标的变化,防止溢出。
努力加油a啊,(o)/~

Python实现中文分词--正向最大匹配和逆向最大匹配相关推荐

  1. java中文分词算法_Java实现逆向最大匹配中文分词算法

    写道 //Java实现逆向最大匹配中文分词算法 public class SplitChineseCharacter { public static void main(String[] args) ...

  2. 自己写中文分词器之(一)_逆向最大匹配算法的实现

    一直都想着自己动手写一写中文分词,但是一直都没有动手.今天终于开始了.从最简单的开始,步步深入.希望自己最后能把分词.词性标注.命名实体识别这几块都完成. 好了,话不多述,进入正题. 分词最简单的思路 ...

  3. 正向最大匹配 和逆向最大匹配对比比较

    正向最大匹配法 &逆向最大匹配法 原理对比 下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配. 这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的 ...

  4. 使用Python做中文分词和绘制词云

    使用Python做中文分词和绘制词云 李小璐出轨云词图 作为一门编程语言,Python的编写简单,支持库强大,应用场景多,越来越多的人开始将它作为自己的编程入门语言. Python一个比较重要的场景是 ...

  5. 用Python做中文分词和绘制词云图

    用Python做中文分词和绘制词云图 Python窗体布局 def __init__(self):self.root=Tk()self.root.wm_title('绘制词云')self.root.r ...

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

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

  7. python的中文分词

    中文分词 这里写目录标题 中文分词 基于词典的分词方法 最大匹配算法:(正向/逆向) 预处理优化 基于统计的分词方法 基于语义.理解的分词方法 分词工具 jieba算法: thula分词工具包 练习 ...

  8. (Python实现中文分词最大匹配算法)研究生命的起源

    正向进行中文分词匹配: # -*- coding: utf-8 -*- # 待分词语句 str_1='研究生命的起源' # 最大长度 M=3 # 词典列表 list_1=['研究','研究生','生命 ...

  9. Python pytagcloud 中文分词 生成标签云 系列(一)

    转载地址:https://zhuanlan.zhihu.com/p/20432734 工具 Python 2.7 (前几天试了试 Scrapy 所以用的 py2 .血泪的教训告诉我们能用 py3 千万 ...

最新文章

  1. SeekBar的使用(一):实现OnSeekBarChangListener
  2. 使用 Docker 搭建 Tomcat 运行环境
  3. VS2017 安装,建议大家都看一下这个在卸载,真人真事,防止扑街
  4. Java Web之filter、listener、Interceptor
  5. 第十四节: 介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。
  6. JAVA中vector是否存在数据_如何找出std :: vector中是否存在项目?
  7. jQuery原理第三天
  8. iOS oc 线程 进程,同步异步,并发串行,来捋捋
  9. 手机屏大字滚动_LED跑马灯屏-LED跑马灯屏App下载-
  10. RHEL服务器配置BIND以及实现DNS负载均衡
  11. 图书馆管理系统mysql的创建_简单的图书馆管理系统数据库设计
  12. 关键路径算法——AOE网
  13. CISSP考试要涨价了,5月1日起考试费涨为749美元
  14. 一种MOS场效应管H桥电机驱动电路
  15. Matplotlib 配色表
  16. 人工智能在教育方面应用的思考(一)
  17. 机器学习自动化 要学习什么_从电视节目“先生”中学习自动化网络安全。 机器人'
  18. python生成的word表格设置内容居中
  19. HTML 做一个求职简历表
  20. 某数5代Cookies生成算法分析

热门文章

  1. 关于指针,可能是网上最详细的讲解了
  2. C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)
  3. 计算机组成原理,P函数,深入浅出计算机组成原理学习笔记:第五讲
  4. 文件包含——php伪协议(五)
  5. matlab编写数字基带信号程序,数字基带信号的系统仿真与设计matlab程序
  6. sqlite3打开中文路径数据文件失败解决方法
  7. 数学知识在计算机专业中的应用,数学建模在计算机专业中的应用
  8. Java并发(十九):final实现原理
  9. 20165306 我期望的师生关系
  10. mysql5.623 GTID主从复制+半同步复制安装与配置