Dream To Me

总有些什么留下来并被惦记

Time To Say Goodbye 2013

感觉完全不一样啊摔

裸切的效果果然不堪入目

就当继续练语法了吧


逆向切分:

#!/usr/bin/python3

MaxLen = 0
WordLib ={}
def LoadDict(filename):
    global WordLib
    global MaxLen
    try:
        for line in open(filename,'r'):
            key = line.split('\t')
            tmp = len(key[0])
            MaxLen = MaxLen > tmp and MaxLen or tmp
            if WordLib.get(key[0]) is None:
                WordLib[key[0]] = key[-1]
    except:
        print("file error")


def SearchWord(word):
    return WordLib.get(word) is not None


def RightCut(says):
    src = says
    dst = ""
    temp = src[len(src)-MaxLen:]
    i = 0
    while len(src):
        #print(src)
        #print(temp)
        if SearchWord(temp) or len(temp) == 1:
            dst = temp + '/' + dst
            src = src[:len(src) - len(temp)]
            temp = src[len(src) - MaxLen:]
            #print(dst)
        else:
            temp = temp[1:]
    print(dst)


def main():
    LoadDict('libdic.txt')
    RightCut('在拍摄第一集之前,曾有人建议拍摄幕后纪录片,奥古斯特后悔当初拒绝了,因为制作人之间的争吵要比剧集精彩得多。最终,奥古斯特被解雇了,回到洛杉矶的他感到应对自己创造的人物和招募的演员负有责任。在筹备期间,他和演员们都成了朋友,梅丽莎·麦卡西也应邀出演,结果被困在没有奥古斯特的剧集中。而那些剧中人物,也变成了被作者抛弃的孤儿。')


if __name__ == '__main__':
    main()


结果:

在拍摄/第一集/之前/,/曾/有人/建议/拍摄/幕后/纪录片/,/奥古斯特/后悔/当初/拒绝了/,/因为/制作人/之间/的/争吵/要比/剧集/精彩/得多/。/最终/,/奥古斯特/被/解雇/了/,/回到/洛杉矶/的/他/感到/应对/自己/创造/的/人物/和/招募/的/演员/负/有责任/。/在/筹备/期间/,/他和/演员/们/都/成了/朋友/,/梅丽莎/·/麦/卡西/也/应邀/出演/,/结果/被困/在/没有/奥古斯特/的/剧/集中/。/而/那些/剧中/人物/,/也/变成了/被/作者/抛弃/的/孤儿/。/

[Finished in 0.3s]



放一个半年前码的正向切分,写的够渣:

import string
import sys

#最大词长
MaxLen = 0

#载入词典
filename = "labdic.txt"
words = {}
for line in open(filename,"r",encoding='utf-8'):
    key = line.split("\t")
    ll = len(key[0])
    #获取词典中的最大词长
    MaxLen = MaxLen > ll and MaxLen or ll
    if words.get(key[0]) is None:
        kk = key[1].replace("\n","").split("|")
        words[key[0]] = []
        for i in range(0,len(kk)-1):
            words[key[0]].append(kk[i])
print("dict finish")


def search(keys):
    return not words.get(keys) is None
def opstring():
    global s1,s2,w
    s2 += w +"/"
    s1 = s1[len(w):]

say = "是一个很强大的编辑器,最近开始获得了很高的人气 - 这不是没有理由的。它是商业软件"
#正向切分
s1 = say
s2 = ""
w = s1[0:MaxLen]
while len(s1):
    if search(w) or len(w) == 1:
        opstring()
        w = s1[0:MaxLen]
    #elif w.isalpha():
       # opstring()
    else:
        w = w[0:len(w)-1]

print(s2)
print("ok")


结果:

dict finish

在拍摄/第一集/之前/,/曾有/人/建议/拍摄/幕后/纪录片/,/奥古斯特/后悔/当初/拒绝了/,/因为/制作人/之间/的/争吵/要比/剧集/精彩/得多/。/最终/,/奥古斯特/被/解雇/了/,/回到/洛杉矶/的/他/感到/应对/自己/创造/的人/物/和/招募/的/演员/负有/责任/。/在/筹备/期间/,/他和/演员/们/都/成了/朋友/,/梅丽莎/·/麦/卡西/也应/邀/出演/,/结果/被困/在/没有/奥古斯特/的/剧集/中/。/而/那些/剧中人/物/,/也/变成了/被/作者/抛弃/的/孤儿/。/

ok

[Finished in 0.4s]