From 400889b25ce911a3a0c25dc7f2defcddf8b1eeae Mon Sep 17 00:00:00 2001 From: Sun Junyi Date: Fri, 23 Nov 2012 15:59:15 +0800 Subject: [PATCH] enhance cut_all=True mode --- jieba/__init__.py | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/jieba/__init__.py b/jieba/__init__.py index 1f8c6a2..485d138 100644 --- a/jieba/__init__.py +++ b/jieba/__init__.py @@ -55,25 +55,17 @@ print >> sys.stderr, "Trie has been built succesfully." def __cut_all(sentence): - N = len(sentence) - i,j=0,0 - p = trie - while i=N: - i+=1 - j=i - p=trie + dag = get_DAG(sentence) + old_j = -1 + for k,L in dag.iteritems(): + if len(L)==1 and k>old_j: + yield sentence[k:L[0]+1] + old_j = L[0] else: - p = trie - i+=1 - j=i - + for j in L: + if j>k: + yield sentence[k:j+1] + old_j = j def calc(sentence,DAG,idx,route): N = len(sentence)