Duyu commited on
Commit
6e96ab3
·
verified ·
1 Parent(s): 1800539

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +18 -8
README.md CHANGED
@@ -1,8 +1,8 @@
1
- ---
2
- license: apache-2.0
3
- language:
4
- - zh
5
- ---
6
 
7
  ## 基于预训练隐马尔可夫模型的汉语拼音序列转汉字语句序列程序
8
 
@@ -12,6 +12,8 @@ language:
12
 
13
  本项目基于 **隐马尔可夫模型 (HMM)** 实现汉语拼音序列到汉字序列的转换。HMM是一种概率模型,假设观察序列(拼音)由隐藏状态序列(汉字)生成,并通过状态转移和发射概率描述序列关系。模型训练时,程序首先加载训练数据,提取拼音和汉字构建词汇表,并统计初始状态、状态转移和发射概率矩阵。训练过程中,HMM使用**最大似然估计**优化这些概率,以捕捉拼音与汉字的映射关系。解码阶段,利用**维特比算法 (Viterbi Algorithm)** 寻找最可能的汉字序列作为输出结果。本项目适合处理语言序列建模和序列标注等的任务。
14
 
 
 
15
  ### 数据集准备
16
 
17
  - 需要`CSV`格式文件,其应包含两列,要求第一列为由汉语拼音构成的句子,第二列为由汉字构成的句子。
@@ -25,9 +27,17 @@ language:
25
  | 这是什么啊? | zhe4 shi4 shen2 me a ? |
26
  | 我会尽量不打扰你复习。 | wo3 hui4 jin3 liang4 bu4 da3 rao3 ni3 fu4 xi2 。 |
27
 
 
 
 
 
 
 
 
 
28
  ### 训练和推理方法
29
 
30
- 修改`py2hz.py`的主函数代码以运行。我们已开源了基于多领域文本的预训练的模型权重`hmm_model.pkl.bz2`和`hmm_model_large.pkl.bz2`,可以直接使用。`hmm_model.pkl.bz2`规模稍小,可满足日常汉语的转换需求,其解压缩后约为800MB左右;`hmm_model_large.pkl.bz2`覆盖了几乎所有汉字的读音,并在规模更大的语料库上进行训练,其解压缩后约为4.5GB左右。
31
 
32
  若需自行训练则取消train函数的注释,并修改函数参数。训练完成后模型将会被压缩保存,原因是模型中存在非常稀疏的大矩阵,适合压缩存储。
33
 
@@ -42,7 +52,7 @@ if __name__ == '__main__':
42
 
43
  ### 预训练模型效果
44
 
45
- 下表展示了预训练模型`hmm_model.pkl.bz2`的使用效果。
46
 
47
  | 输入 | 输出 |
48
  | ----- | ----- |
@@ -61,4 +71,4 @@ Faculty of Computer Science and Technology, Qilu University of Technology (Shand
61
  <div><b>Number of Total Visits (All of Duyu09's GitHub Projects): </b><br><img src="https://profile-counter.glitch.me/duyu09/count.svg" /></div>
62
 
63
  <div><b>Number of Total Visits (py2hz): </b>
64
- <br><img src="https://profile-counter.glitch.me/py2hz/count.svg" /></div>
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - zh
5
+ ---
6
 
7
  ## 基于预训练隐马尔可夫模型的汉语拼音序列转汉字语句序列程序
8
 
 
12
 
13
  本项目基于 **隐马尔可夫模型 (HMM)** 实现汉语拼音序列到汉字序列的转换。HMM是一种概率模型,假设观察序列(拼音)由隐藏状态序列(汉字)生成,并通过状态转移和发射概率描述序列关系。模型训练时,程序首先加载训练数据,提取拼音和汉字构建词汇表,并统计初始状态、状态转移和发射概率矩阵。训练过程中,HMM使用**最大似然估计**优化这些概率,以捕捉拼音与汉字的映射关系。解码阶段,利用**维特比算法 (Viterbi Algorithm)** 寻找最可能的汉字序列作为输出结果。本项目适合处理语言序列建模和序列标注等的任务。
14
 
15
+ **GitHub URL:** https://github.com/duyu09/Pinyin2Hanzi_HMM
16
+
17
  ### 数据集准备
18
 
19
  - 需要`CSV`格式文件,其应包含两列,要求第一列为由汉语拼音构成的句子,第二列为由汉字构成的句子。
 
27
  | 这是什么啊? | zhe4 shi4 shen2 me a ? |
28
  | 我会尽量不打扰你复习。 | wo3 hui4 jin3 liang4 bu4 da3 rao3 ni3 fu4 xi2 。 |
29
 
30
+ ### 运行环境
31
+
32
+ 基于`Python 3.x`,版本不限,需要`numpy`、`pandas`、`hmmlearn`库,参考以下命令安装:
33
+ ```
34
+ python3 -m pip install numpy pandas hmmlearn
35
+ ```
36
+ 硬件环境:假设训练语料数据包含 $2.65$ 万个不同的汉字,则推理至少需要 $6GB$ 左右的内存,训练至少需要 $8GB$ 左右的内存。
37
+
38
  ### 训练和推理方法
39
 
40
+ 修改`py2hz.py`的主函数代码以运行。我们已开源了基于多领域文本的预训练的模型权重`hmm_model.pkl.bz2`和`hmm_model_large.pkl.bz2`,可以直接使用。`hmm_model.pkl.bz2`规模稍小,可满足日常汉语的转换需求,其解压缩后约为 $800MB$ 左右;`hmm_model_large.pkl.bz2`覆盖了几乎所有汉字的读音,并在规模更大的语料库上进行训练,其解压缩后约为 $4.5GB$ 左右。
41
 
42
  若需自行训练则取消train函数的注释,并修改函数参数。训练完成后模型将会被压缩保存,原因是模型中存在非常稀疏的大矩阵,适合压缩存储。
43
 
 
52
 
53
  ### 预训练模型效果
54
 
55
+ 下表展示了预训练模型`hmm_model_large.pkl.bz2`的使用效果。
56
 
57
  | 输入 | 输出 |
58
  | ----- | ----- |
 
71
  <div><b>Number of Total Visits (All of Duyu09's GitHub Projects): </b><br><img src="https://profile-counter.glitch.me/duyu09/count.svg" /></div>
72
 
73
  <div><b>Number of Total Visits (py2hz): </b>
74
+ <br><img src="https://profile-counter.glitch.me/py2hz/count.svg" /></div>