分词的那些事

简介: 使用阿里云学习分词,分词就是指将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列的过程。

我是某211大学信息管理与信息系统专业的学生,目前正在学习机器学习和前后端项目的开发,在大学学习的过程中不可避免地遇到前后端项目服务器部署、机器学习和深度学习跑模型等需要,在同班同学的安利下,我知道了阿里云平台,特别是“飞天加速计划·高校学生在家实践”活动。
我认为资金是大学生群体做研究的困难点之一,而阿里云平台提供地这个计划就很好地解决学生的需求,可以低价甚至免费使用服务器,帮助了我们去做比赛、做项目和做研究。

我最近在学习机器学习的自然语言处理方面,分词是一个比较基础内容,这是我的分享:

分词就是指将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列的过程。like this👇
image.png

基于词典的分词算法
基于词典的分词算法,实质上是字符串匹配。将待匹配的字符串使用一定的算法规则,和一个足够大的词典中的词条进行字符串匹配,若在词典中找到某个字符串匹配命中,则可以分词。
根据不同的匹配策略,可以将基于词典的分词算法进行分类。按照字符串匹配时扫描方向的不同,可分为正向匹配法、逆向匹配法与双向匹配法。按照匹配的字符串长度的不同,可分为最大匹配法与最小匹配法。按照匹配时是否与词性标注过程相结合,可分为单纯分词法与分词与标注相结合法。
1️⃣正向最大匹配算法

首先设置分词词典中的最长词有n个字符,然后从左到右切分文本的n个字符作为匹配字段,接着查找词典并进行匹配,若恰好与词典中的某个字符串匹配成功,则将这个匹配字段作为一个词切分出来;若匹配失败,将匹配字段中的最后一个字去掉,对此时剩下的字串重新与分词词典进行匹配,如此下去直到匹配成功切分出所有词为止。

2️⃣逆向最大匹配算法
逆向最大匹配算法是正向最大匹配的逆向思维,从右到左对语句进行切分,与词典匹配,匹配不成功,则将匹配字段的最前一个字去掉,直到最后匹配成功切分出所有词为止。
3️⃣双向最大匹配法
双向最大匹配法就是将正向最大匹配法得到的分词结果和逆向最大匹配法的得到的结果进行比较,根据大颗粒度词越多越好,非词典词和单字词越少越好的原则,选取其中一种分词结果输出。

基于统计机器学习的分词算法
基于统计的分词算法的基本原理是按照字符串在语料库中出现的统计频率来决定其是否构成词。词是字的组合, 相邻的字同时出现的次数越多,构成词组得可能性越大。该算法不需要建立词典,但需要大规模的训练文本用来训练模型参数。
1️⃣N元模型(N-gram)
N-gram模型思想:第$n$个词的出现依赖于前$n-1$个词,整句的概率就是各个词出现概率的乘积。给定一个由 $n$ 个词组成的序列$\lbrace w_1,w_2,...w_n \rbrace $,根据链式法则可得,

然而,当n取值比较大时,乘法链式后面几项的计算会变得非常困难,这时需要用合理的假设来简化计算,即假设当前这个词仅仅跟前面几个有限的词相关,而不必追溯到最开始的那个词,这样便可以大幅减小计算量。
设$\lbrace w_1,w_2,...w_n \rbrace$是长度为$n$的字符串,若规定任意词$w_i$只依赖于其前一个词,可得到一元模型(unigram model) ,即

若规定任意词$w_i$只依赖于前两个词,可得到二元模型(bigram model) ,即

若规定任意词$w_i$只与它的前两个相关,可得到三元概率模型(trigram) ,即

在实践中bigram和trigram应用比较广泛,而且效果可观。高于四元的模型应用的相对较少,因为训练它需要更庞大的语料,而且数据稀疏严重,时间复杂度也高,精度却难以提高。
2️⃣隐马尔科夫模型(Hidden Markov Model,HMM)
隐马尔科夫模型在人工智能领域应用十分广泛,它包含观测序列和隐藏序列两部分。观测序列数据是能观测到的,而隐藏序列数据是不能观察到的。利用HMM模型可实现根据观测值序列查找对应的隐藏状态值序列。
对应到NLP分词中,我们的语句是观测序列,而分词后的序列标注结果是隐藏序列,因此基于HMM进行分词实质上可以看作是一个序列标注问题,即一个考虑上下文的字分类问题,可以先通过大量带序列标注结果的分词语料来训练出一个序列标注模型,然后再用这个模型对无标注的语料进行分词。
首先,我们可根据字在词中的位置给语句中的所有字进行分类。实践中一般采用{B:begin, M:middle, E:end, S:single}这4个类别来描述一个分词样本中每个字所属的类别。其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。

“王小红在教室里认真地写程序”,标注后结果为“BMESBESBESBME”,对应的分词结果为“王小红/在/教室/里/认真/地/写程序/”。接着,将标注好的分词训练集输入HMM模型,便可得到HMM模型的相关参数,然后利用viterbi算法来计算待分词文本最可能的隐藏序列,最终就得到最佳分词结果。

① 输入:小红本科毕业于北京大学

② 通过算法,我们成功预测出各个字位对应的分词标签:BEBEBMEBEBE

③ 根据这个状态序列我们可以进行切词: BE/BE/BME/BE/BMME

④ 切词结果如下: 小红/本科/毕业于/北京大学

3️⃣条件随机场(CRF)
CRF亦是描述输入序列与输出序列之间的关系。与HMM模型不同的是,HMM存在独立性假设,导致其不会考虑前后文特征,局限了特征的可用范围,而CRF基于条件概率来描述模型的,它不对单独的节点进行归一化,而是对所有特征进行全局归一化,获取全局的最优值。
HMM模型围绕的是一个关于序列X和Y的联合概率分布P(X,Y),而CRF则围绕条件概率分布模型(Y|X)展开,用特征函数的方法来将前后文的观测序列连接起来,后期利用优化的viterbi算法来计算待分词文本最可能的隐藏序列,最终就得到最佳分词结果。

基于神经网络的分词算法
传统的中文分词方法是基于有监督的学习算法,需要大量的人工标记语料,同时还会存在所提取的局部特征稀疏的问题。现如今,随着深度学习的发展,各种神经网络已广泛用于解决NLP任务,给NLP带来了诸多新的机遇。
1️⃣双向长短时记忆神经网络(Bilstm)
LSTM为循环神经网络(RNN)中的一种,在一定程度上解决了RNN在训练过程中梯度消失和梯度爆炸的问题。LSTM是有方向的,使用LSTM模型可以捕捉到无限距离的前文依赖关系,但无法编码从后到前的信息。而通过BiLSTM却可以有效捕捉到双向的语义依赖,分别从句子的前文和后文对输入进行处理,将上下文信息进行编码,通过softmax分类层完成对每个位置的分类,提升预测效果。
LSTM模型由$t$时刻的输入词$X_t$,细胞状态 $C_t$,临时细胞状态$\widetilde{C_t}$ ,隐层状态$h_t$,遗忘门$f_t$,记忆门$i_t$,输出门$O_t$组成。
LSTM的计算过程可以概括为:通过对细胞状态中信息遗忘和记忆新的信息使得对后续时刻计算有用的信息得以传递,而无用的信息被丢弃,并在每个时间步都会输出隐层状态$h_t$,其中遗忘、记忆与输出由通过上个时刻的隐层状态$h_{t-1}$和当前输入$X_t$计算出来的遗忘门$f_t$、记忆门$i_t$与输出门$O_t$来控制。
image.png
Bilstm是由前向LSTM与后向LSTM组合而成,将前向和后向的隐向量进行拼接得到最终的隐层状态$h_t$。
image.png

欢迎随时指导~

相关文章
|
5月前
|
人工智能 监控 算法
AI搜索引擎内容、GEO优化工具开发工程的“可信赖”基石:内容真实性、权威性与ADSM工程化闭环
在AI搜索主导信息入口的今天,生成式引擎优化(GEO)成为新焦点。内容不仅是流量载体,更是可信赖的知识资产。依托ADSM技术框架,最新上架的GEO特工队AI等工具实现算法洞察、真实性验证与权威投放闭环,确保品牌内容在豆包、千问等平台中成为“黄金信源”,构建长期可信认知。
398 0
|
存储 Prometheus 监控
评估系统的可用性时间
评估系统可用性时间是指对系统在预定时间内正常运行的能力进行测量和分析,以确保其稳定性和可靠性满足用户需求。这通常涉及对系统故障率、恢复时间和维护周期的综合考量。
|
机器学习/深度学习 算法 Python
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
543 7
|
9月前
|
开发者
阿里云百炼&支付宝MCP开通教程
本文介绍了如何在支付宝开放平台创建应用并配置MCP服务,包括创建网页/移动应用、设置密钥信息、应用审核上线等步骤,随后详细说明了在阿里云百炼平台开通并使用支付宝MCP服务的流程。内容适用于希望接入支付宝支付功能的开发者和企业用户。
1593 1
阿里云百炼&支付宝MCP开通教程
|
10月前
|
人工智能 搜索推荐 安全
AI时代基于AI的面向消费者产品,会遇到什么难题呢?
本文AI产品专家三桥君探讨了AI消费产品面临的五大核心挑战:高昂成本限制了普及应用,可靠性不足影响用户体验,隐私保护存在争议,安全隐患带来滥用风险,以及用户界面设计亟待优化。作者三桥君指出,虽然AI技术发展迅猛,但真正融入日常生活仍需解决这些关键障碍,涉及技术改进和社会接受度等多方面因素。文章强调AI商业化落地是一个长期过程,需要行业持续投入和创新,才能实现技术的普惠价值。
307 0
|
机器学习/深度学习 算法 5G
基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
本文介绍了基于Matlab 2022a的几种信道估计算法仿真,包括LS、OMP、NOMP、CoSaMP及改进的BP神经网络CoSaMP算法。各算法针对毫米波MIMO信道进行了性能评估,通过对比不同信噪比下的均方误差(MSE),展示了各自的优势与局限性。其中,BP神经网络改进的CoSaMP算法在低信噪比条件下表现尤为突出,能够有效提高信道估计精度。
445 2
|
数据采集 自动驾驶 算法
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
|
前端开发 JavaScript Java
开发做前端好还是后端好?
开发做前端好还是后端好?
timedatectl 如何关闭
【5月更文挑战第24天】timedatectl 如何关闭
622 0