- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
零基础⼊门--中⽂命名实体识别(BiLSTM+CRF模型,含代码)
⾃⼰也是⼀个初学者,主要是总结⼀下最近的学习,⼤佬见笑。
中⽂分词
说到命名实体抽取,先要了解⼀下基于字标注的中⽂分词。
⽐如⼀句话
我爱北京天安门”。
分词的结果可以是
“我/爱/北京/天安门”。
那什么是基于字标注呢?
“我/O 爱/O 北/B 京/E 天/B 安/M 门/E”。
就是这样,给每个字都进⾏⼀个标注。我们可以发现这句话中字的标注⼀共有四种。他们分别代表的意义如下。
B | 词⾸
M | 词中
E | 词尾
O | 单字
B表⽰⼀个词的开始,E表⽰⼀个词的结尾,M表⽰词中间的字。如果这个词只有⼀个字的话,⽤O表⽰。
命名实体识别
数据处理
了解了中⽂分词,那么实体识别也差不多。就是把不属于实体的字⽤O标注,把实体⽤BME规则标注,最后按照BME规则把实体提取出来
就ok了。
这个数据集⼀个包含了6个实体类别:
time: 时间
location: 地点
person_name: ⼈名
org_name: 组织名
company_name: 公司名
product_name: 产品名
例 :
{{product_name:浙江在线杭州}}{{time:4⽉25 ⽇}}讯 (记者{{person_name: 施宇翔}} 通讯员 {{person_name:⽅英}})。
每个实体⽤都⽤⼤括号括了起来,并标明实体类别。当然⾃⼰标注的时候也不⼀定要这么标,只要能提取出来就可以。
然后我们要做的就是把原始数据按照BMEO规则变成字标注的形式,以便模型训练。这使⽤python实现还是⽐较简单的,嫌⿇烦的可以看
我github⾥的代码。按字标注后结果如下。
浙/B_product_name 江/M_product_name 在/M_product_name 线/M_product_name 杭/M_product_name
州/E_product_name 4/B_time ⽉/M_time 2/M_time 5/M_time ⽇/E_time 讯/O (/O 记/O 者/O /B_person_name
施/M_person_name 宇/M_person_name 翔/E_person_name /O 通/O 讯/O 员/O /O ⽅/B_person_name
英/E_person_name )。
然后我们习惯按照标点符号把⼀个长句分成⼏个短句,反正⼀般实体⾥⾯也没有标点符号。结果如下。
浙/B_product_name 江/M_product_name 在/M_product_name 线/M_product_name 杭/M_product_name
州/E_product_name 4/B_time ⽉/M_time 2/M_time 5/M_time ⽇/E_time 讯/O
记/O 者/O /B_person_name 施/M_person_name 宇/M_person_name 翔/E_person_name /O 通/O 讯/O 员/O /O
⽅/B_person_name 英/E_person_name
然后的思路就是建⽴⼀个word2id词典,把每个汉字转换成id。这⾥习惯现按照数据集中每个汉字出现的次数排序,id从1开始。
再建⽴⼀个tag2id词典,把每⼀个字标注的类型转换成id。这⾥的顺序我就随便搞的。
之后就把刚按标点分开的数据,按照⼀⼀对应的顺序,把汉字和每个字的标签转换成id,分别存到两个数组⾥⾯,⼀起保存到⼀个pkl⽂件
中,这样模型使⽤时候就可以直接读取,不⽤每次都处理数据了。这⾥习惯把每⼀句话都转换成⼀样的长度。这个长度当然是⾃⼰设置的,
⽐它长的就把后⾯舍弃,⽐它短的就在后⾯补零。
这⾥第⼀个数组⾥是这句话汉字转换成的id,第⼆个数组⾥存的是这句话每个字的标注转换成的id。
训练
我的 github ⾥有两个版本,pytorch 版直接⽤的pytorch tutorial⾥的 Bilstm+crf 模型。
运⾏ train.py 训练即可。由于使⽤的是 cpu,⽽且也没有使⽤ batch,所以训练速度⽐较慢。想简单跑⼀下代码的话,建议只使⽤部分数
据跑⼀下。pytorch 暂时不再更新。
开始训练
使⽤ python train.py 开始训练,训练的模型会存到 model ⽂件夹中。
使⽤预训练的词向量
使⽤ python train.py pretrained 会使⽤预训练的词
您可能关注的文档
- 工程力学(静力学和材料力学)第2版课后习题答案范钦珊主编第2章力系的简化.pdf
- 空调制冷制热原理456.pdf
- 原电池及化学反应速率(一).pdf
- 自己喜欢的一件艺术品作文500字.pdf
- 苏教版七年级生物上册期末测试卷及答案.pdf
- 沪教版5年级英语上册期中考试卷测试.pdf
- 苏教版七年级《生物》上册期末考试卷及答案【完整版】.pdf
- IntermecEasycoderPF4C高端智能工业型条码标签打印机说明书.pdf
- 粘度计十大品牌及厂家.pdf
- 管理教研室课程总结1.pdf
- 2024-2030年中国创业投资基金行业发展分析及发展趋势预测报告.docx
- 2024-2030年中国化妆品级角鲨烷行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国化妆镜行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国化妆品包装机械行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国动物药行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国化妆棉行业竞争态势与营销前景预测报告.docx
- 2024-2030年中国全电动注塑机行业竞争动态及供需前景预测报告.docx
- 2024-2030年中国全自动牙科高压灭菌器行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国内冷电极行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国光伏银浆行业需求潜力及前景运营战略规划研究报告.docx
文档评论(0)