enhance cut_all=True mode

pull/16/head
Sun Junyi 12 years ago
parent ddc48d792f
commit 400889b25c

@ -55,25 +55,17 @@ print >> sys.stderr, "Trie has been built succesfully."
def __cut_all(sentence): def __cut_all(sentence):
N = len(sentence) dag = get_DAG(sentence)
i,j=0,0 old_j = -1
p = trie for k,L in dag.iteritems():
while i<N: if len(L)==1 and k>old_j:
c = sentence[j] yield sentence[k:L[0]+1]
if c in p: old_j = L[0]
p = p[c]
if '' in p:
yield sentence[i:j+1]
j+=1
if j>=N:
i+=1
j=i
p=trie
else: else:
p = trie for j in L:
i+=1 if j>k:
j=i yield sentence[k:j+1]
old_j = j
def calc(sentence,DAG,idx,route): def calc(sentence,DAG,idx,route):
N = len(sentence) N = len(sentence)

Loading…
Cancel
Save