赞
踩
1. 作业目的
熟悉NLP中某一项任务的概念以及发展。
2. 作业内容
默认任务:中文分词。
通过查阅互联网、博客、书籍、论文等资源,详细介绍中文分词任务的定义、目标、主要技术、发展、例子、主要实现方法,并测试jieba、thunlp、snownlp等python库在解决中文分词时的效果,做出自己的总结和思考。
测试文本:(1)张叔叔抓到小偷偷偷偷东西。(2)请把手拿开,门把手坏了。
【注】也可以换成其他感兴趣的任务,给出定义、任务发展、主要方法、典型技术或典型产品(含例子测评)、个人总结等内容。
3. 要求
(1)独立完成,严禁抄袭(抄袭和被抄袭均判为0分)。
(2)作业报告排版合理,内容详实,必要时配截图。
(3)在规定时间范围内提交,否则判为0分。
定义与任务:
中文分词(Chinese Word Segmentation,CWS)是指将连续字序列转换为对应的词序列的过程,也可以看做在输入的序列中添加空格或其他边界标记的过程。
中文的语言特点是没有明显的词语边界,因此中文分词任务的目标是将连续的文本序列切分成词语,以方便后续的文本理解和处理。
中文分词任务可以形式化表示为:输入中文句子 c1c2 · · · cn,其中 ci 为单个字符,输出词序列 w1w2 · · · wm, 其中 wj 是中文单词。
主要技术:
Ex: 基于最大匹配的中文分词方法
最大匹配(Maximum Matching)分词算法主要包含前向最大匹配,后向最大匹配以及双向最 大匹配等三类。这些算法试图根据给定的词典,利用贪心搜索策略找到分词方案。 前向最大匹配算法的基本思想是,从左向右扫描句子,选择当前位置与词典中最长的词进行 匹配,对于句子中的一个位置 i, 依次考虑子串 c[i : i + L − 1], c[i : i + L − 2], . . . , c[i : i],其中 c[i : j] ≜ cici+1 . . . cj 表示从第 i 个字到第 j 个字构成的字串(每一个这样的字串对应于一个候选 词),L 表示词典中词的最大长度。当某一个 c[i : j] 能够对应字典中的一个词时,输出这个词并从 j + 1 开始重复以上的过程直至整个句子被遍历完成。
后向最大匹配和正向最大匹配思想相同,区别在于对句子从右向左扫描。双向最大匹配则是 同时进行前向最大匹配和反向最大匹配,当两者的分词结果不同时,可以使用启发式的规则决定 选取哪一个结果作为最终的输出(例如选择平均词长较大的一个)。 可以看到,基于词典的分词方法具有简单、快速、可控、仅依赖词表等优点。但对于没有在 词典中出现的词没有很好的处理方案,同时对于分词歧义的处理能力也不足。
Ex: 基于线性链条件随机场的中文分词方法
根据中文分词任务定义,我们可以将分词过程看做是对于字的分类。具体来说,对于输入句 子中的每一个字 ci,根据它在分词结果中的位置赋予不同的标签。可以假设一个字在词语中有四 个位置:开始(B)、中间(I)、结尾(E)以及单独成词(S)。
Ex:基于双向长短期记忆网络的中文分词方法
随着深度学习技术的发展,很多中文分词算法也采用了基于神经网络模型。循环神经网络(Recurrent Neural Network, RNN)相较于前馈神经网络等要求固定输入长度的神经网络结构而言,更 适用于处理长度不固定的序列数据。特别符合文本、语音等在内的数据特性,广泛应用于自然语 言处理任务的很多任务中。长短期记忆网络(Long Short-Term Memory, LSTM)[53, 54] 是循环神经网 络的一个变体,可以在一定程度上缓解简单循环神经网络的梯度消失和梯度爆炸问题。 LSTM 网络循环单元结构如图2.2所示,网络引入了新的内部状态(Internal State)ct ∈ R D,专 门用来进行信息传递。此外,LSTM 网络还引入了门控机制(Gating Mechanism)来控制信息传递 路径。通过遗忘门 ft 控制上一个时刻的内部状态 ct−1 需要遗忘多少信息。输入门 it 用来控制当 前时刻的候选状态 c˜t 有多少信息需要保存。输出门 ot 控制当前时刻内部状态 ct 有多少信息需要 输出给外部状态 ht。
发展历程:
1.初期阶段:基于规则和词典的简单方法。
2.统计学习方法的兴起:随着统计学习方法的应用,中文分词取得了较大的进展,HMM和CRF成为主流。
3.深度学习方法的崛起:随着深度学习技术的发展,深度学习方法在中文分词任务中表现出色,成为当前主流方法。
示例:
"张叔叔抓到小偷偷偷偷东西。" 分词结果可能是 "张叔叔 / 抓到 / 小偷 / 偷偷 / 偷 / 东西"。
"请把手拿开,门把手坏了。" 分词结果可能是 "请 / 把 / 手 / 拿开 / , / 门把手 / 坏 / 了 / 。"。
主要实现方法:
1.jieba:jieba是一款常用的中文分词工具,采用了基于前缀词典构建有向无环图(DAG)的方法,利用动态规划算法进行分词。它支持三种分词模式:精确模式、全模式和搜索引擎模式。
2.THULAC(清华大学中文分词工具):THULAC是清华大学自然语言处理与社会人文计算实验室开发的中文分词工具,采用了基于词语和字的条件随机场(CRF)模型。它具有较高的分词准确率和速度。
3.SnowNLP:SnowNLP是一个基于Python的自然语言处理工具包,其中包含了中文分词功能。它主要利用了基于统计的方法进行分词,同时也包含了一些文本情感分析和文本分类等功能。
调用库函数测试:
(总结对该任务学习心得,也可以列出对该任务的问题、疑惑与思考)
1.多样性:中文分词任务具有多样性,不同的文本场景、行业、领域可能需要不同的分词方法和模型。因此,在实际应用中需要根据具体情况选择合适的分词工具和技术。
2.方法比较:常见的中文分词方法包括基于规则的方法、基于统计学习的方法和基于深度学习的方法。不同方法各有优缺点,需要根据实际需求进行选择和比较。
3.工具选择:针对中文分词任务,有许多开源工具可供选择,如jieba、THULAC、SnowNLP等。每个工具都有其特点和适用场景,需要结合具体任务进行选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。