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]
