python实现分词(普通&维特比算法)

普通方法

思路:

读入词典中的词,每个词对应一个概率;
读入句子,得到所有可能的句子的划分,返回unigram得分最大的一个分割;

其中得到所有可能的分割采用递归的方法,当前词在词典中,就继续递归划分后半段;

概率原理:P(x1,x2,x3,xn)=P(x1)* P(x2)*…*P(xn)
可以转化成-log的加法,返回最小值

代码:

#切割代码
def seg_all(string):
#     string:读入的待分割的句子,递归进行
    def to_seg(string,start,seg):
    #  start是子字符串开始下标 seg是string已经切割部分
        if start >= len(string):
            segments.append(list(seg))
            print("segments_all",segments_all)
            return True
            # 遍历当前位置所有可能的切割
        for i in range(start+1,len(string)
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值