word_dict = ['中国', '政府', '基本', '大量', '赌博', '和谐', '菲律宾', '人民', '游客', '菲律宾', '机械', '大量', '活动', '从事', '然后', '他们', '追捕',
'进入']
test_str = '''在中国政府的支持下菲律宾宣布对大量中国人进行追捕,他们基本上以游客身份进入菲律宾,然后从事中国禁止的网络赌博活动。'''
# 获取分词
def getSeg(text):
# 句子为空
if not text:
return ''
# 句子成为一个词
if len(text) == 1:
return text
# 此处写了一个递归方法
if text in word_dict:
return text
else:
small = len(text) - 1
text = text[0:small]
return getSeg(text)
def main():
global test_str, word_dict
test_str = test_str.strip()
# 正向最大匹配分词测试 最大长度5
max_len = max(len(word) for word in word_dict)
result_str = [] # 保存分词结果
result_len = 0
print('input :', test_str)
while test_str:
tmp_str = test_str[0:max_len]
seg_str = getSeg(tmp_str)
seg_len = len(seg_str)
result_len = result_len + seg_len
if seg_str.strip():
result_str.append(seg_str)
test_str = test_str[seg_len:]
print('output :', result_str)
if __name__ == '__main__':
main()
给思原同学点赞!