自然语言处理--基于HMM+维特比算法的词性标注

自然语言处理作业2--基于HMM+维特比算法的词性标注

一、理论描述

词性标注是一种自然语言处理技术,用于识别文本中每个词的词性,例如名词、动词、形容词等;

词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术;

词性标注可以由人工或特定算法完成,使用机器学习方法实现词性标注是自然语言处理的研究内容。常见的词性标注算法包括隐马尔可夫模型、条件随机场等;

词性标注是对文本进行语言学分析的重要工具,可以帮助计算机理解和处理自然语言文本。通过词性标注,计算机可以更准确地理解句子的结构和含义,从而实现诸如信息抽取、文本分类、句法分析等自然语言处理任务。它主要被应用于文本挖掘和NLP领域,是各类基于文本的机器学习任务(如语义分析、指代消解)的预处理步骤,是自然语言处理中一项非常重要的基础性工作。

二、算法描述

本文实现HMM+维特比算法,具体算法描述如下:

维特比算法是一种动态规划算法,通过计算每个观测节点的不同隐状态的最大概率,并记录路径,最终返回最大概率的路径

函数的输入参数包括观测序列的长度(observation_len)、隐含序列的长度(hidden_len)、初始概率(init_p)、转移概率矩阵(trans_p)和发射概率矩阵(emit_p)

函数首先创建两个二维数组max_probabilities和paths,用于存储每个观测节点的不同隐状态的最大概率和路径

然后,函数通过遍历第一个观测节点的每个隐状态,计算其最大概率,并记录路径。接着,函数遍历后续的每个观测节点,根据维特比算法的公式计算累计概率,得到每个隐状态的最大概率,并更新路径

最后,函数返回最大概率的路径

三、详细描述

以"Bear is move"为例,使用HMM+维特比算法进行词性标注的详细描述如下:

观测序列:['Bear', 'is', 'move']

隐序列:['AT', 'BEZ', 'IN', 'NN', 'VB', 'PERIOD']

输出:Bear/VB is/BEZ move/NN

初始概率:

|-----|-----|-----|-----|-----|--------|
| AT | BEZ | IN | NN | VB | PERIOD |
| 0.2 | 0.1 | 0.1 | 0.3 | 0.2 | 0.1 |

转移概率矩阵(已经进行数据平滑): 由当前词性转移到下一个词性的概率

|--------|----------------|----------------|----------------|----------------|----------------|----------------|
| | AT | BEZ | IN | NN | VB | PERIOD |
| AT | 2.05503381e-05 | 2.05503381e-05 | 2.05503381e-05 | 9.99506792e-01 | 2.05503381e-05 | 4.11006761e-04 |
| BEZ | 7.50570342e-01 | 3.80228137e-04 | 1.62357414e-01 | 7.14828897e-02 | 3.80228137e-04 | 1.48288973e-02 |
| IN | 6.97049170e-01 | 1.60895868e-05 | 2.13347921e-02 | 2.78591196e-01 | 1.60895868e-05 | 2.99266315e-03 |
| NN | 1.31783520e-02 | 4.59144641e-02 | 5.24061598e-01 | 1.45282693e-01 | 7.58865773e-03 | 2.63974236e-01 |
| VB | 4.33630846e-01 | 3.07033202e-03 | 3.39807212e-01 | 1.05462335e-01 | 9.28239914e-03 | 1.08746876e-01 |
| PERIOD | 5.33187018e-01 | 5.05453578e-03 | 3.09723331e-01 | 8.84543762e-02 | 6.35142325e-02 | 6.65070497e-05 |

发射概率矩阵(已进行数据平滑):由隐序列到观测序列的概率

|--------|----------------|----------------|----------------|
| | Bear | is | move |
| AT | 1.44877144e-05 | 1.44877144e-05 | 1.44877144e-05 |
| BEZ | 9.92752904e-05 | 9.99305073e-01 | 9.92752904e-05 |
| IN | 1.82083030e-04 | 1.82083030e-04 | 1.82083030e-04 |
| NN | 2.02205882e-02 | 1.83823529e-03 | 6.80147059e-02 |
| VB | 2.34042553e-01 | 5.31914894e-03 | 7.12765957e-01 |
| PERIOD | 2.04846672e-05 | 2.04846672e-05 | 2.04846672e-05 |

最大概率矩阵:

V 0​(j )=init (jbj ​(o0​) (init为初始概率,b发射概率矩阵)

Vt ​(j )=max (Vt −1​(iaij ​)×bj ​(ot​) (a为转移概率矩阵,b为发射概率矩阵)

使用paths更新并保存j(观测状态)条路径取到最大概率时的i(隐状态),用于回溯

根据最大概率矩阵 max_probabilities,找到最后一个观测状态 "move" 对应的最大概率的隐状态,作为最终的词性标注结果

四、软件演示

五、问题和总结

  • 模型参数的选择会影响标注结果的准确性
  • 数据集较小,模型训练效果可能不够理想
相关推荐
nn在炼金3 分钟前
大模型领域负载均衡技术
人工智能·算法·负载均衡
久菜盒子工作室9 分钟前
【A股复盘】2025.12.30
人工智能·经验分享·金融
EMQX14 分钟前
利用 EMQX 消息队列解决关键物联网消息传递挑战
人工智能·后端·物联网·mqtt·emqx
凌峰的博客19 分钟前
基于深度学习的图像修复技术调研总结(下)
人工智能·深度学习
知识进脑的肖老千啊24 分钟前
LangGraph简单讲解示例——State、Node、Edge
人工智能·python·ai·langchain
falldeep25 分钟前
Pandas入门指南
数据结构·算法·leetcode·pandas
Deepoch27 分钟前
智能硬件新纪元:Deepoc开发板如何重塑机器狗的“大脑”与“小脑”
人工智能·具身模型·deepoc·机械狗
Mintopia28 分钟前
🐱 LongCat-Image:当AI绘画说上了流利的中文,还减掉了40斤参数 | 共绩算力
人工智能·云原生·aigc
Mintopia28 分钟前
量子计算会彻底改变 AI 的运算方式吗?一场关于"量子幽灵"与"硅基大脑"的深夜对话 🎭💻
人工智能·llm·aigc
natide29 分钟前
表示/嵌入差异-4-闵可夫斯基距离(Minkowski Distance-曼哈顿距离-欧氏距离-切比雪夫距离
人工智能·深度学习·算法·机器学习·自然语言处理·概率论