扫码关注“自然语言处理与算法”,学习更多NLP知识~
待标注文本(text.txt):
河南宏光正商置业有限公司2019年非公开发行公司债券(第一期)(品种二)定于2019年12月3日起在本所综合协议交易平台进行转让,现将有关事项通知如下:河南宏光正商置业有限公司2019年非公开发行公司债券(第一期)(品种二)证券代码“114613”,证券简称“19正商02”,发行总额7.5亿元,票面利率7.2%,债券期限3年,附第1年末和第2年末发行人调整票面利率选择权及投资者回售选择权。深圳证券交易所二○一九年十一月二十九日
荣盛石化股份有限公司2019年面向合格投资者公开发行绿色公司债券(第一期)定于2019年12月2日起在本所集中竞价系统和综合协议交易平台同时交易,现将有关事项通知如下:荣盛石化股份有限公司2019年面向合格投资者公开发行绿色公司债券(第一期)证券代码“112914”,证券简称“19荣盛G1”,发行总额10亿元,票面利率5.42%,债券期限2年。特此通知深圳证券交易所二○一九年十一月二十九日
经BERT分字之后的待标注文本(token_text.txt):
利用BERT的wordPiece进行分字青看我的另一篇文章:使用Bert自带的WordPiece分词工具将文本分割成单字
河 南 宏 光 正 商 置 业 有 限 公 司 2019 年 非 公 开 发 行 公 司 债 券 ( 第 一 期 ) ( 品 种 二 ) 定 于 2019 年 12 月 3 日 起 在 本 所 综 合 协 议 交 易 平 台 进 行 转 让 , 现 将 有 关 事 项 通 知 如 下 : 河 南 宏 光 正 商 置 业 有 限 公 司 2019 年 非 公 开 发 行 公 司 债 券 ( 第 一 期 ) ( 品 种 二 ) 证 券 代 码 [UNK] 114 ##61 ##3 [UNK] , 证 券 简 称 [UNK] 19 正 商 02 [UNK] , 发 行 总 额 7 . 5 亿 元 , 票 面 利 率 7 . 2 % , 债 券 期 限 3 年 , 附 第 1 年 末 和 第 2 年 末 发 行 人 调 整 票 面 利 率 选 择 权 及 投 资 者 回 售 选 择 权 。 深 圳 证 券 交 易 所 二 ○ 一 九 年 十 一 月 二 十 九 日
荣 盛 石 化 股 份 有 限 公 司 2019 年 面 向 合 格 投 资 者 公 开 发 行 绿 色 公 司 债 券 ( 第 一 期 ) 定 于 2019 年 12 月 2 日 起 在 本 所 集 中 竞 价 系 统 和 综 合 协 议 交 易 平 台 同 时 交 易 , 现 将 有 关 事 项 通 知 如 下 : 荣 盛 石 化 股 份 有 限 公 司 2019 年 面 向 合 格 投 资 者 公 开 发 行 绿 色 公 司 债 券 ( 第 一 期 ) 证 券 代 码 [UNK] 112 ##91 ##4 [UNK] , 证 券 简 称 [UNK] 19 荣 盛 g1 [UNK] , 发 行 总 额 10 亿 元 , 票 面 利 率 5 . 42 % , 债 券 期 限 2 年 。 特 此 通 知 深 圳 证 券 交 易 所 二 ○ 一 九 年 十 一 月 二 十 九 日
标注字典(dict.txt):
注:标注字典是通过其他工具从待标注文本中得到,如借助结巴分词词性标注。
河南宏光正商置业有限公司
荣盛石化股份有限公司
标注代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def labeling():
dict_list = []
token_list = []
token_label_list = []
text_list = []
with open('./dict.txt', 'r', encoding='utf-8')as f:
for line in f.readlines():
dict_list.append(line.strip())
with open('./text.txt', 'r', encoding='utf-8')as f1:
for line in f1.readlines():
text_list.append(line.strip())
with open('./token_text.txt', 'r', encoding='utf-8')as f2:
for line in f2.readlines():
token_list.append(line.strip())
assert len(dict_list) == len(text_list) == len(token_list)
ff = open('./token_label.txt', 'w', encoding='utf-8')
#cnt = 0
for token, dict_Bio, text in zip(token_list, dict_list, text_list):
word_list = token.strip().split(' ')
label_list = ['O' for i in range(len(word_list))]
index = -1
index = text.find(dict_Bio)
print(index)
#cnt+=1
#if cnt ==8:break
for j in range(len(word_list)):
if word_list[j].startswith('#'):
label_list[j] = '[##WordPiece]'
if index >= 0:
label_list[index] = 'B-ORG'
for i in range(index+1, len(dict_Bio)+index):
label_list[i] = 'I-ORG'
#print(*label_list,len(label_list))
label_text = ''
for label in label_list:
label_text += label + ' '
token_label_list.append(label_text.strip())
ff.write(label_text + '\n')
ff.close()
labeling()
标注好的label(token_label.txt):
B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O [##WordPiece] [##WordPiece] O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O
B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O [##WordPiece] [##WordPiece] O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O