普通方法
思路:
读入词典中的词,每个词对应一个概率;
读入句子,得到所有可能的句子的划分,返回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)

最低0.47元/天 解锁文章
1229





