当前位置: 首页 > 工具软件 > smallseg > 使用案例 >

简易中文分词算法(python)_Python 中文分词:用纯python实现 / FMM 算法 / pymmseg-cpp / smallseg / judou 句读 / BECer-GAE...

海宁
2023-12-01

最近想在google app engine上实现站内的全文检索。于是想写一个纯python实现的中文分词程序。

目标如下:

1,实用,能满足绝大部分网络文章的分词需要。

2,快速,分词过程中不会抛出DeadlineExceededError错误。

3,低内存占用,不会因为内存占用超过限制而每个实例运行一次之后就被强制kill掉。

最初的思路是:将分词词库排序好保存在一个list对象里,然后用bisect库对词库进行快速查找。因为bisect默认是c实现的,所以匹配速度非常快,但是list对象保存的词库过于耗费内存,加载速度非常慢。完全不适合在google app engine上使用。

解决的办法是:把词库中不同长度的词分开存储在不用的str对象中,使用跟bisect库同样的二分法对词库进行匹配。

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

High performance Chinese word segmenting module for Python。

pymmseg-cpp is a Python port of the rmmseg-cpp project. rmmseg-cpp is a MMSEG Chinese word segmenting algorithm implemented in C++ with a Ruby interface.

DFA Based Chinese Word Segmentation Library of Python and Java。

特点:可自定义词典、速度快、可在Google App Engine上运行。

开放的中文分词项目,高性能、高可用性分词系统。主要由好看薄的蚂蚁同学维护。

BECer是纯python实现,专门为google app engine而开发的中文分词和全文搜索模块,BECer的特点是快速而且低内存占用,每秒处理三万字,词库和分词模块仅占3M内存,完全适用google app engine环境.不必担心google app engine的cpu时间限制和内存限制.

 类似资料: