广西民族大学高级人工智能课程—头歌实践教学实践平台-规则分词法

1、正向最大匹配法

代码文件

def cutA(sentence, dictA):
    # sentence:要分词的句子
    result = []
    sentenceLen = len(sentence)
    n = 0
    maxDictA = max([len(word) for word in dictA])
    
    while n < sentenceLen:
        matched = False
        for i in range(maxDictA, 0, -1):
            if n + i <= sentenceLen:
                word = sentence[n:n + i]
                if word in dictA:
                    result.append(word)
                    n += i
                    matched = True
                    break
        if not matched:
            result.append(sentence[n])
            n += 1
    
    print(result)  # 输出分词结果

# 测试用例
if __name__ == "__main__":
    dictA = set(["南京市", "长江", "大桥"])
    sentences = ["南京市", "南京市长", "长江大桥", "大桥", "南京市长江大桥"]
    
    for sentence in sentences:
        cutA(sentence, dictA)

题目描述

任务描述

本关任务:根据本关所学有关中文分词的基础知识,采用规则分词法,完成正向最大匹配算法程序的编写并通过所有测试用例。

相关知识

为了完成本关任务,你需要掌握:

  1. 中文分词的含义;

  2. 规则分词各个算法的思想。

中文分词简介

在语言理解中,词是最小的能够独立活动的有意义的语言成分。将词确定下来是理解自然语言的第一步,只有跨越了这一步,中文才能像英文那样过渡到短语划分、概念抽取以及主题分析,以至自然语言理解,最终达到智能计算的最高境界。因此,每个 NLP 工作者都应掌握分词技术。

在汉语中,词以字为基本单位的,但是一篇文章的语义表达却仍然是以词来划分的。因此,在处理中文文本时,需要进行分词处理,将句子转化为词的表示。这个切词处理过程就是中文分词,它通过计算机自动识别出句子的词,在词间加入边界标记符,分隔出各个词汇。整个过程看似简单,然而实践起来却很复杂,最主要的困难就在于分词歧义。

现有的分词算法可分为三大类:

    • 20
      点赞
    • 21
      收藏
      觉得还不错? 一键收藏
    • 1
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值