# 毕业设计
毕业设计-汉语多音字注音研究
## 准确率
计算准确率的方法:
> 某个数据集上的准确率 = 该数据集中所有标注正确的多音字数 / 数据集中含有的多音字总数
**4.10更新**
之前的准确率计算有些问题,将`<unk>`和`<pad>`也算作多音字了,改正之后准确率变为85% - 88%。
我们试着增加了LSTM的层数,发现在当前情况下,随着层数增加,准确率有所降低。
## 调研阶段
查了一些国内外的论文,总结了一下其中用到的方法
见[《问题认识》](https://github.com/hjzin/PolyphoneDisambiguation/blob/master/%E9%97%AE%E9%A2%98%E8%AE%A4%E8%AF%86.md)
## 数据统计
用到的数据见Code里的data目录。
`pinyindata.txt` :汉字拼音库,使用《现代汉语词典》中的拼音数据,汉字数:11017,多音字个数:1217,来自[pinyin-data](https://github.com/mozillazg/pinyin-data)
`polyphones.txt`:将汉字拼音库中的多音字全部提取出来,存入该文件中
统计了一下多音字的读音个数。
| 读音个数 | 多音字个数 |
| :------: | :--------: |
| 2 | 1072 |
| 3 | 124 |
| 4 | 13 |
| 5 | 4 |
| 6 | 3 |
| 7 | 1 |
`polyphones.json`:将所有多音字和读音存储成json文件
`198801.txt`:人民日报1988年一月的新闻语料,一共有19374条新闻,包含5593个多音字,其中有85种不同的多音字,来自[pkuopendata](http://opendata.pku.edu.cn/dataset.xhtml?persistentId=doi:10.18170/DVN/SEYRX5)
`198801output.txt`:存储每个多音字出现的次数,按出现频次从多到少排序
`news.txt`:将所有包含多音字的新闻全部提取出来,存入该文件
`phrase.txt`:带注音的中文短语,一共有96809条,来自[ChineseTone](https://github.com/letiantian/ChineseTone)
`poly_phrase.txt`:将所有含多音字的短语输出到该文件中,共有47289条含多音字的短语。每条短语前面的数字是多音字在短语中的位置(从0开始计算)。
对该文件中的所有句子按多音字出现次数的多少排序,并对每个句子中多音字的个数进行了统计。结果如下。
| 句子中包含的多音字个数 | 句子数量 |
| :--------------------: | :------: |
| 1 | 35072 |
| 2 | 10201 |
| 3 | 1686 |
| 4 | 265 |
| 5 | 50 |
| 6 | 12 |
| 7 | 3 |
`phrase_frequency.txt` :输出包含多音字的短语中所有多音字出现的次数,按出现次数从多到少排序。
`phrase.csv`:将短语和读音转换成特定格式`(text, label)`,text为句子,label为读音,非多音字编码为'NA',多音字编码为其读音。
`correct.csv`:标注正确的语句(只包含一句话中所有多音字均标注正确的句子)
`wrong.csv`:标注错误的语句(一句话中只要有一个多音字标注错误,就输出到该文件中)
## 语料处理
主要是将语料划分为训练集、验证集与测试集,并将句子和读音做tokenize,建立词典,设定batchsize与生成迭代器,使数据能送入模型进行训练。
在进行处理时使用了[torchtext](https://github.com/pytorch/text)库,能方便的对文本进行处理,并且支持csv、tsv等格式的读取。
最终生成的数据集:
`train.csv`:训练集,有29928条短语,包含30041个多音字。
`valid.csv`:验证集,有8723条短语,包含12696个多音字。
`test.csv`:有8638条短语,包含19198个多音字。
## 模型搭建
目前想到用两种方法搭建模型。
两种方法模型大体一致,但在将lstm的输出喂进全连接层时的输入不一样。
> 说明:代码中的各种参数并不是最优的参数,只是一个示例。
### 按照多音字的读音的分类方法
这种方法将训练数据按照其中某个多音字的读音进行分类,如训练数据中含有多音字“都”的句子将分为以下两类:
1. 句子中“都”的读音为`dū`的数据
2. 句子中“都”的读音为`dōu`的数据
此方法最大的弊端就是需要对每个多音字单独训练一个模型并测试,另外当一句话中含有两个及以上的多音字时,该方法并不能完成所有多音字的注音。
## 仿照词性标注问题的分类方法
代码:`code/PolyphoneDisambiguation/disambiguation_pos.py`
这种方法仿照了词性标注的处理思路,将训练数据编码为如下格式:
> ('在古都西安', '都', ['NA', 'NA', 'dū', 'NA', 'NA'])
其中“NA”代表非多音字,多音字则使用读音来编码。
目前主要使用该方法进行注音,已将短语数据送入模型并进行训练,然后使用测试集计算准确率,将标注正确的语句和标注错误的语句输出到相应文件中。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
汉语多音字注音研究 在开始阶段,通过查阅资料,以下是对这个问题的一些认识。 1 . 多音字个数是有限的,要根据其在不同情况下的读音来建立规则,以后再遇到新词时就去匹配这些规则,无法匹配时就更新 规则。应该是通过机器学习实现的。 2 . 对这个问题的研究经历了几个过程 ● 早期是对多音字统计不同读音下的使用频率,以频率最高的读音来标注新词。准确率低 ● 统计法。通过构建词库,建立规则来进行注音,是以词语为单位,准确率有所提升,但仍无法解决多音字前后的字一样但读 音不同的情况。 ● 规则法。语言学家建立规则,再输入到计算机,但无法指定一个很完备的规则集 1 . 论文中的解决方案 《中文文语转换系统中多音字问题研究》 [1]李清. 中文文—语转换系统中多音字问题研究[D].河北大学,2010. ● 对于低频多音字,即某个出现频率很低的多音字,它在绝大多数情况下都读一个音,只在少部分情况下读另一个音时,通过 对每个字建立一个读音表,将相应词条和读音输入,注音时进行匹配即可。如果遇到没有收入的词语,就按高频音来注音。 ● 对于中高频多音字又有三种情况 1 . 某个音只出现在特定的词语或者语境中,
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-汉语多音字注音研究.zip (54个子文件)
PolyphoneDisambiguation-master
问题认识.md 4KB
Code
.DS_Store 8KB
data
sorted_phrase.txt 1.32MB
.DS_Store 6KB
poly_phrase.txt 1.32MB
phrase.csv 1.55MB
198801output.txt 735B
news.txt 5.3MB
polyphones.json 31KB
198801.txt 8.93MB
correct_1layers_300.csv 440KB
valid.csv 305KB
phrase.txt 2.26MB
wrong_1layers_300.csv 287KB
~$wrong.xlsx 171B
polyphones.txt 32KB
phrase_frequency.txt 7KB
train.csv 931KB
pinyindata.txt 223KB
test.csv 350KB
PolyphoneDisambiguation
param_1layer.pkl 12.04MB
.DS_Store 6KB
DataProcessing
__init__.py 102B
.DS_Store 6KB
poly_dic.py 255B
data_analysis.py 7KB
.idea
DataProcessing.iml 459B
vcs.xml 186B
workspace.xml 11KB
misc.xml 379B
modules.xml 280B
preprocessing.py 2KB
configure.py 400B
__pycache__
poly_dic.cpython-37.pyc 400B
poly_dic.cpython-36.pyc 282B
configure.cpython-37.pyc 521B
num_of_polyphone.cpython-37.pyc 1KB
__init__.cpython-37.pyc 245B
preprocessing.cpython-37.pyc 3KB
make_csv_phrase.py 1007B
make_datasets.py 4KB
num_of_polyphone.py 1KB
disambiguation_pos.py 8KB
.idea
PolyphoneDisambiguation.iml 518B
other.xml 186B
vcs.xml 186B
workspace.xml 40KB
misc.xml 314B
modules.xml 298B
param_2layer.pkl 20.3MB
disambiguation.py 3KB
presentations
问题理解.pptx 1.01MB
README.md 5KB
说明_.txt 40B
共 54 条
- 1
资源评论
人工智能教学实践
- 粉丝: 546
- 资源: 308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js-leetcode题解之141-linked-list-cycle.js
- js-leetcode题解之140-word-break-ii.js
- js-leetcode题解之139-word-break.js
- js-leetcode题解之138-copy-list-with-random-pointer.js
- js-leetcode题解之136-single-number.js
- js-leetcode题解之135-candy.js
- js-leetcode题解之134-gas-station.js
- 基于tensorflow的道路桥梁裂缝检测应用源码
- 多台设备循环控制仿真和代码protues仿真
- 多台设备循环控制原理图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功