# -*- coding: utf-8 -*-
'''
功能:递归实现前向匹配分词
说明:zhuanma这个包借鉴自jieba分词源代码用于
将任意格式编码的字符串转换为unicode编码,统一
字典和待分词语句的编码后,便于句子切分和分词.
Author: <jianzhang.zhang@foxmail.com>
Date : 2016-04-16
'''
import re
from zhuanma import strdecode
# 递归前向匹配分词
def seg(chunk,maxLength,dicList,result):
# 句子块长度
cLength = len(chunk)
# 句子块小于最大词长
if cLength <= maxLength:
# 判断整个句子块是否在词典中
if chunk in dicList:
result.append(chunk)
# 前向匹配分词
else:
for i in range(1,cLength):
if chunk[:-i] in dicList:
result.append(chunk[:-i])
seg(chunk[-i:],maxLength,dicList,result)
# 句子块长度大于最大词长
elif cLength > maxLength:
# 按照最大词长截取子串进行分词
subChunk = chunk[:maxLength]
# 最大词长截取的子串在字典中
if subChunk in dicList:
result.append(subChunk)
seg(chunk
递归实现前向匹配分词
最新推荐文章于 2022-09-20 22:10:51 发布
本文介绍了如何使用递归实现前向匹配分词算法,该算法适用于自然语言处理。通过读取分词字典并确定最大词长,对输入的待分词语句进行分块和分词,最终输出分词结果。代码示例中,演示了对'中华人民共和国成立了,中华民族迎来了新的时代'这句话的分词过程。
摘要由CSDN通过智能技术生成