传统语言学根据词的结构将世界语言分为三类:孤立语、黏着语、屈折语
利用前趋字串和后继字串在词法、句法、语义、语用方面的信息。
中文词汇切分技术大体上可以分为: 1.基于词典的词汇切分方法(又称机械词汇切分) 2.基于统计的词汇切分方法 3.基于理解的词汇切分方法 4.词典与统计相结合的词汇切分方法
本质上是字符串匹配的方法,将一串文本中的文字片段和已有的词典进行匹配,如果匹配到,则此文字片段就作为一个分词结果。 1)正向最大匹配法(从左到右的方向); 2)逆向最大匹配法(从右到左的方向); 3)最小切分(每一句中切出的词数最小) 4)双向最大匹配(进行从左到右、从右到左两次扫描
ch_dict = ['基于', '解析', '语义解析', '方法', '逻辑', '逻辑形式', '产生','更可', '解释', '可解释', '推理过程']
sentence = '基于语义解析的方法由于逻辑形式而产生了更可解释的推理过程'
segment_list = [] # 存放分词后的分词词组
# print(sentence)
# 例句不为空时,循环地进行分词操作
while len(sentence) >= 1:
# 最大匹配单词的长度为5,当然实际意义从3开始即可,因为词典最大单词长度为3
max_match_len = 5
# 当匹配单词长度大于1时,循环判断分词
while max_match_len > 1:
# 判断前 max_match_len 个字符是否存在于字典
if sentence[0:max_match_len] in ch_dict:
segment_list.append(sentence[0:max_match_len]) # 追加到分词词组中
sentence = sentence[max_match_len:len(sentence)] # 将符合的词语从原例句中截取
# 退出循环,重新从max_match_len最长匹配数开始匹配截取
break
max_match_len -= 1 # max_match_len累减,开始匹配4个字符,3个字符,,,
# 只剩下一个汉字时,说明当前不再存在任何符合的词语,直接截取一个汉字作为词组
if max_match_len == 1:
segment_list.append(sentence[0:1]) # 追加单个汉字词语
sentence = sentence[1:len(sentence)] # 截取例句
# 输出进行分词后的例句
print('/'.join(segment_list))
基于/语义解析/的/方法/由/于/逻辑形式/而/产生/了/更可/解释/的/推理过程
利用词典匹配和统计模型的方法,结合了基于词典的规则和基于统计的概率模型,以提高分词准确性和效率。