博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匹配分词
阅读量:6510 次
发布时间:2019-06-24

本文共 1558 字,大约阅读时间需要 5 分钟。

规则分词:    简单高效,但是词典的维护是一个庞大的工程。 正向分词:  1、统计分词词典,确定词典中最长词条的字符m;  2、从左向右取待切分语句的m个字符作为匹配字段,查找词典,如果匹配成功,则作为一个切分后的词语,     否则,去掉待匹配字符的最后一个继续查找词典,重复上述步骤直到切分出所有词语。 dictA = ['南京市', '南京市长', '长江大桥',  '大桥'] maxDictA = max([len(word) for word in dictA]) sentence = "南京市长江大桥" def cutA(sentence):     result = []     sentenceLen = len(sentence)     n = 0     while n < sentenceLen:         matched = 0         for i in range(maxDictA, 0, -1):             piece = sentence[n:n+i]             if piece in dictA:                 result.append(piece)                 matched = 1                 n = n + i                 break         if not matched:             result.append(sentence[n])             n += 1     print(result) cutA(sentence)  # ['南京市长', '江', '大桥'] dictB = ['南京市', '南京市长', '长江大桥',  '大桥'] maxDictB = max([len(word) for word in dictA]) sentence = "南京市长江大桥" def cutB(sentence):     result = []     sentenceLen = len(sentence)     while sentenceLen > 0:         word = ''         for i in range(maxDictB, 0, -1):             piece = sentence[sentenceLen-i:sentenceLen]             if piece in dictB:                 word = piece                 result.append(word)                 sentenceLen -= i                 break         if word is '':             sentenceLen -= 1             result.append(sentence[sentenceLen])     print(result[::-1]) cutB(sentence)  # ['南京市', '长江大桥'] # 双向最大匹配法 # 思想: 如果正反向分词结果词数不同,则取分词数量较少的那个         如果分词结果词数相同:                  分词结果相同,则说明没有歧义,返回任意一个                  分词结果不同,返回单字较少的那个

转载于:https://www.cnblogs.com/hapyygril/p/9916351.html

你可能感兴趣的文章
云存储应用Upthere获7700万美元股权债务融资
查看>>
国家互联网应急中心何世平博士主题演讲
查看>>
洗茶,你误会了多少年?
查看>>
移动大数据“后市场”受青睐 亟需数据深度学习人才
查看>>
贵阳高新区力争打造“千亿级大数据园区”
查看>>
安防众筹不止于卖产品 思维拓展刺激消费
查看>>
OpenSSH曝高危漏洞 会泄露私钥
查看>>
艾特网能获2016APCA用户满意品牌大奖
查看>>
《CCNP TSHOOT 300-135学习指南》——第2章 结构化故障检测与排除进程
查看>>
《Java EE 7精粹》—— 2.5 非阻塞I/O
查看>>
《Python数据科学实践指南》一2.2 字符串
查看>>
《R数据可视化手册》——1.1 安装包
查看>>
《iOS创意程序设计家》——导读
查看>>
spring-aop
查看>>
android RecycleView Adapter简单封装
查看>>
PgSQL · 案例分享 · 递归收敛优化
查看>>
Dart的数据库操作
查看>>
Codeforces 591 B Rebranding【Codeforces Round #327 (Div. 2)】
查看>>
命名难,难于上青天
查看>>
做完和做好不一样
查看>>