python实现中文分词FMM算法实例

时间:2023-05-16 08:04:55 其他范文 收藏本文 下载本文

python实现中文分词FMM算法实例(精选9篇)由网友“Peony”投稿提供,这里给大家推荐分享一些python实现中文分词FMM算法实例,供大家参考。

python实现中文分词FMM算法实例

篇1:python实现中文分词FMM算法实例

作者:Sephiroth 字体:[增加 减小] 类型:

这篇文章主要介绍了python实现中文分词FMM算法,实例分析了Python基于FMM算法进行中文分词的实现方法,涉及Python针对文件、字符串及正则匹配操作的相关技巧,需要的朋友可以参考下

本文实例讲述了python实现中文分词FMM算法,分享给大家供大家参考。具体分析如下:

FMM算法的最简单思想是使用贪心算法向前找n个,如果这n个组成的词在词典中出现,就ok,如果没有出现,那么找n-1个...然后继续下去。假如n个词在词典中出现,那么从n+1位置继续找下去,直到句子结束。

import re def PreProcess(sentence,edcode=“utf-8”): sentence = sentence.decode(edcode) sentence=re.sub(u“[。,,!……!\”‘::?\?、\|“”‘‘;]“,” “,sentence) return sentence def FMM(sentence,diction,result = [],maxwordLength = 4,edcode=”utf-8“): i = 0 sentence = PreProcess(sentence,edcode) length = len(sentence) while i < length: # find the ascii wordtempi=itok=sentence[i:i+1]while re.search(”[0-9A-Za-z\-\+#@_\.]{1}“,tok)None: i= i+1 tok=sentence[i:i+1]if i-tempi>0: result.append(sentence[tempi:i].lower.encode(edcode)) # find chinese wordleft = len(sentence[i:])if left == 1: ”“”go to 4 step over the FMM“”“ ”“”should we add the last one? Yes, if not blank“”“ if sentence[i:] ” “: result.append(sentence[i:].encode(edcode)) return resultm = min(left,maxwordLength)for j in xrange(m,0,-1): leftword = sentence[i:j+i].encode(edcode)# print leftword.decode(edcode) if LookUp(leftword,diction): # find the left word in dictionary # it‘s the right one i = j+i result.append(leftword) break elif j == 1: ”“”only one word, add into result, if not blank“”“ if leftword.decode(edcode) ” “:result.append(leftword) i = i+1 else: continue return result def LookUp(word,dictionary): if dictionary.has_key(word):return True return False def ConvertGBKtoUTF(sentence): return sentence.decode(‘gbk‘).encode(‘utf-8‘)dictions = {} dictions[”ab“] = 1 dictions[”cd“] = 2 dictions[”abc“] = 1 dictions[”ss“] = 1 dictions[ConvertGBKtoUTF(”好的“)] = 1 dictions[ConvertGBKtoUTF(”真的“)] = 1 sentence = ”asdfa好的是这样吗vasdiw呀真的daf dasfiw asid是吗?“ s = FMM(ConvertGBKtoUTF(sentence),dictions) for i in s: print i.decode(”utf-8“)test = open(”test.txt“,”r“) for line in test: s = FMM(CovertGBKtoUTF(line),dictions) for i in s:print i.decode(”utf-8")

运行结果如下:

asdfa

好的

vasdiw

真的

daf

dasfiw

asid

希望本文所述对大家的Python程序设计有所帮助,

篇2:python实现simhash算法实例

最近更 新

解决python写的windows服务不能启动的问题

python实现simhash算法实例

python解析json实例方法

rhythmbox中文名乱码问题解决方法

Python 元类使用说明

2款Python内存检测工具介绍和使用方法

Python3.x和Python2.x的区别介绍

python实现异步回调机制代码分享

python正则表达式判断字符串是否是全部小

python二叉树的实现实例

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

篇3:python实现数独算法实例

作者:不吃皮蛋 字体:[增加 减小] 类型:

这篇文章主要介绍了python实现数独算法,实例分析了Python数独算法的实现技巧,需要的朋友可以参考下

本文实例讲述了python实现数独算法的方法,分享给大家供大家参考。具体如下:

# -*- coding: utf-8 -*-‘‘‘Created on -10-5@author: Administrator‘‘‘from collections import defaultdictimport itertoolsa = [ [ 0, 7, 0, 0, 0, 0, 0, 0, 0], #0 [ 5, 0, 3, 0, 0, 6, 0, 0, 0], #1 [ 0, 6, 2, 0, 8, 0, 7, 0, 0], #2 # [ 0, 0, 0, 3, 0, 2, 0, 5, 0], #3 [ 0, 0, 4, 0, 1, 0, 3, 0, 0], #4 [ 0, 2, 0, 9, 0, 5, 0, 0, 0], #5 # [ 0, 0, 1, 0, 3, 0, 5, 9, 0], #6 [ 0, 0, 0, 4, 0, 0, 6, 0, 3], #7 [ 0, 0, 0, 0, 0, 0, 0, 2, 0], #8# 0, 1, 2, 3,|4, 5, 6,|7, 8 ]#a = [# [0, 0, 0, 0, 0, 0, 0, 0, 0], #0# [0, 0, 0, 0, 0, 0, 0, 0, 0], #1# [0, 0, 0, 0, 0, 0, 0, 0, 0], #2# ## [0, 0, 0, 0, 0, 0, 0, 0, 0], #3# [0, 0, 0, 0, 0, 0, 0, 0, 0], #4# [0, 0, 0, 0, 0, 0, 0, 0, 0], #5# ## [0, 0, 0, 0, 0, 0, 0, 0, 0], #6# [0, 0, 0, 0, 0, 0, 0, 0, 0], #7# [0, 0, 0, 0, 0, 0, 0, 0, 0], #8## 0, 1, 2, 3,|4, 5, 6,|7, 8# ]exists_d = dict((((h_idx, y_idx), v) for h_idx, y in enumerate(a) for y_idx , v in enumerate(y) if v))h_exist = defaultdict(dict)v_exist = defaultdict(dict)for k, v in exists_d.items: h_exist[k[ 0]][k[ 1]] = v v_exist[k[ 1]][k[ 0]] = vaa = list(itertools.permutations(range(1, 10), 9))h_d = {}for hk, hv in h_exist.items(): x = filter(lambda x:all((x[k] == v for k, v in hv.items())), aa) x = filter(lambda x:all((x[vk] != v for vk , vv in v_exist.items() for k, v in vv.items() if k != hk)), x)# print x h_d[hk] = xdef test(x, y): return all([y[i] not in [x_[i] for x_ in x] for i in range(len(y)) ])def test2(x): return len(set(x)) != 9s = set(range(9))sudokus = []for l0 in h_d[0 ]: for l1 in h_d[ 1]: if not test((l0,), l1): continue for l2 in h_d[ 2]: if not test((l0, l1), l2): continue # 1,2,3行 进行验证 if test2([l0[ 0], l0[ 1], l0[ 2], l1[ 0], l1[ 1], l1[ 2], l2[ 0], l2[ 1], l2[ 2]]) : continueif test2([l0[ 3], l0[ 4], l0[ 5], l1[ 3], l1[ 4], l1[ 5], l2[ 3], l2[ 4], l2[ 5]]) : continueif test2([l0[ 6], l0[ 7], l0[ 8], l1[ 6], l1[ 7], l1[ 8], l2[ 6], l2[ 7], l2[ 8]]) : continuefor l3 in h_d[ 3]: if not test((l0, l1, l2), l3): continue for l4 in h_d[ 4]: if not test((l0, l1, l2, l3), l4):continue for l5 in h_d[ 5]:if not test((l0, l1, l2, l3, l4), l5): continue# 4,5,6行 进行验证if test2([l3[ 0], l3[ 1], l3[ 2] , l4[ 0], l4[ 1], l4[ 2] , l5[ 0], l5[ 1], l5[ 2] ]) : continue if test2([l3[ 3], l3[ 4], l3[ 5] , l4[ 3], l4[ 4], l4[ 5] , l5[ 3], l5[ 4], l5[ 5] ]) : continue if test2([l3[ 6], l3[ 7], l3[ 8] , l4[ 6], l4[ 7], l4[ 8] , l5[ 6], l5[ 7], l5[ 8] ]) : continue for l6 in h_d[ 6]: if not test((l0, l1, l2, l3, l4, l5,), l6): continue for l7 in h_d[ 7]: if not test((l0, l1, l2, l3, l4, l5, l6), l7): continue for l8 in h_d[ 8]: if not test((l0, l1, l2, l3, l4, l5, l6, l7), l8): continue # 7,8,9行 进行验证 if test2([l6[ 0], l6[ 1], l6[ 2], l7[0 ], l7[1 ], l7[2 ], l8[0 ], l8[1 ], l8[2 ]]) : continueif test2([l6[ 3], l6[ 4], l6[ 5], l7[3 ], l7[4 ], l7[5 ], l8[3 ], l8[4 ], l8[5 ]]) : continueif test2([l6[ 6], l6[ 7], l6[ 8], l7[6 ], l7[7 ], l7[8 ], l8[6 ], l8[7 ], l8[8 ]]) : continueprint l0 print l1 print l2 print l3 print l4 print l5 print l6 print l7 print l8 sudokus.append((l0, l1, l2, l3, l4, l5, l6, l7, l8))

希望本文所述对大家的Python程序设计有所帮助,

篇4:Python实现的几个常用排序算法实例

最近更 新

python二叉树遍历的实现方法

python解决字典中的值是列表问题的方法

python实现的二叉树算法和kmp算法实例

python 获取et和excel的版本号

python cookielib 登录人人网的实现代码

python抓取京东价格分析京东商品价格走势

linux系统使用python监测网络接口获取网络

python中查找excel某一列的重复数据 剔除

python Django连接MySQL数据库做增删改查

Python操作json数据的一个简单例子

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

篇5:Python实现的Kmeans++算法实例

-02-02zbar解码二维码和条形码示例

-11-11Python类的基础入门知识

2014-06-06Python程序员鲜为人知但你应该知道的17个问题

-11-11跨平台python异步回调机制实现和使用方法

2014-06-06pycharm 使用心得(六)进行简单的数据库管理

2014-03-03用Python和MD5实现网站挂马检测程序

2014-04-04python中的实例方法、静态方法、类方法、类变量和实例变量浅析

2014-01-01python练习程序批量修改文件名

2013-11-11使用python搭建Django应用程序步骤及版本冲突问题解决

2013-02-02windows下安装python paramiko模块的代码

篇6:Python实现的Kmeans++算法实例

最近更 新

python下函数参数的传递(参数带星号的说明

python在linux中输出带颜色的文字的方法

Python 字符串操作方法大全

布同 Python中文问题解决方法(总结了多位

ptyhon实现sitemap生成示例

python文件比较示例分享

python实现的阳历转阴历(农历)算法

Python读写Excel文件的实例

Python语言技巧之三元运算符使用介绍

python使用百度翻译进行中翻英示例

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

篇7:python实现的希尔排序算法实例

作者:pythoner 字体:[增加 减小] 类型:

这篇文章主要介绍了python实现的希尔排序算法,实例分析了基于Python实现希尔排序的相关技巧,需要的朋友可以参考下

本文实例讲述了python实现希尔排序算法的方法,分享给大家供大家参考。具体如下:

def shellSort(items): inc = len(items) / 2 while inc: for i in xrange(len(items)):j = itemp = items[i]while j >= inc and items[j-inc] >temp: items[j] = items[j - inc] j -= incitems[j] = temp inc = inc/2 if inc/2 else (0 if inc==1 else 1)a = [35, -8, 11, 1, 68, 0, 3];shellSort(a)print a # [-8, 0, 1, 3, 11, 35, 68]

希望本文所述对大家的Python程序设计有所帮助,

篇8:python实现排序算法

-03-03python局部赋值的规则

-02-02python发布模块的步骤分享

2014-03-03Python 列表(List)操作方法详解

2014-02-02go和python调用其它程序并得到程序输出

2014-04-04python中的实例方法、静态方法、类方法、类变量和实例变量浅析

2014-05-05Python random模块(获取随机数)常用方法和使用例子

-12-12python cookielib 登录人人网的实现代码

-09-09Python httplib,smtplib使用方法

2013-11-11pyramid配置session的方法教程

2014-03-03python实现k均值算法示例(k均值聚类算法)

篇9:python实现排序算法

最近更 新

用python实现的去除win下文本文件头部BOM

Python实现的金山快盘的签到程序

python操作MySQL数据库具体方法

python操作日期和时间的方法

删除目录下相同文件的python代码(逐级优化

python 中的列表解析和生成表达式

Python实例分享:快速查找出被挂马的文件

python列表去重的二种方法

python查找第k小元素代码分享

Python 网络编程说明

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

python实现中文输出的两种方法

《递归算法的实现》教学设计

python开发的小球完全弹性碰撞游戏代码

排序算法总结

python基础教程之基本内置数据类型介绍

Python使用稀疏矩阵节省内存实例

Lua数据类型介绍

Python中type的构造函数参数含义说明

Python translator使用实例

python使用正则表达式检测密码强度源码

python实现中文分词FMM算法实例
《python实现中文分词FMM算法实例.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【python实现中文分词FMM算法实例(精选9篇)】相关文章:

word 怎么将doc转成pdf格式2022-05-08

python使用循环实现批量创建文件夹示例2022-10-04

近邻作文2022-10-26

程序员必读的书籍排行榜2023-04-27

shell问答16:批量修改文件名后缀Unix系统2022-11-25

“COPY”行动作文2022-04-29

python基础教程之字典操作详解2023-04-25

Python导入oracle数据的方法2023-06-20

讲解Python中fileno方法的使用2023-02-27

详解加密技术概念、加密方法以及应用2024-02-19