-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest.py
198 lines (166 loc) · 14.9 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
from Model.Dee_albert import Dee
import albert.tokenization as tokenization
from create_record import process
from create_record import get_path
class Config(object):
"""CNN配置参数"""
def __init__(self):
self.seq_length = 256
self.batch_size = 1
self.bert_config_path = './albert/config/albert_config_tiny.json'
self.lr = 1e-3
self.lamdba = 0.2
self.hidden_size = 312
self.sentence_size = 64
self.fields_size = 35
self.event_type_size = 5
self.embedding_size = 128
self.num_attention_heads = 6
self.initializer_range = 0.02
self.pos_size = 49
self.vocab_size = 21128
self.print_per_batch = 100 # 每多少轮输出一次结果
self.dev_per_batch = 1000 # 多少轮验证一次
self.train_path = './tfrecord/train.record'
self.dev_path = './tfrecord/sample_train.record'
self.num_epochs = 100
def get_all_number(self):
rt = {}
for key, value in vars(self).items():
rt[key] = value
return rt
from tools import read_json
cache = read_json('./tfrecord/ner_tag.json')
tag_map = {}
for k in cache.keys():
tag_map[cache[k]] = k
def get_ner_index_and_ner_list_index(ner_logits, content, sentence_mask):
sentence_mask = np.array(sentence_mask, np.int32)
sentence_mask = np.reshape(sentence_mask, [-1, 64])[0]
content = np.array(content, np.int32)
sentences_size = sentence_mask.argmin(axis=0)
ner_logits = ner_logits[:sentences_size]
content = content[:sentences_size]
ner_map = {}
for index, x in enumerate(ner_logits):
cache = [index, -1, -1]
x_c = [str(_) for _ in content[index]][:sentence_mask[index]]
for index_y, y in enumerate(x[:sentence_mask[index]]):
if '_B' in tag_map[y]:
if cache[1] != -1:
cache[2] = index_y + 1
name = '-'.join(x_c[cache[1]:cache[2]])
if name not in ner_map.keys():
ner_map[name] = []
ner_map[name].append(cache)
cache = [index, index_y, -1]
else:
cache[1] = index_y + 1
if 'O' == tag_map[y] and cache[1] != -1:
cache[2] = index_y + 1
name = '-'.join(x_c[cache[1]:cache[2]])
if name not in ner_map.keys():
ner_map[name] = []
ner_map[name].append(cache)
cache = [index, -1, -1]
# 处理最后一个字符也是实体的情况
if cache[1] != -1:
cache[2] = index_y + 1
name = '-'.join(x_c[cache[1]:cache[2]])
if name not in ner_map.keys():
ner_map[name] = []
ner_map[name].append(cache)
ner_list_index = [0]
ner_index = []
for k in ner_map.keys():
ner_index.extend(ner_map[k])
ner_list_index.append(len(ner_index))
return ner_logits, np.array(ner_index, np.int32), np.array(ner_list_index, np.int32)
if __name__ == '__main__':
import os
import numpy as np
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
config = Config()
oj = Dee(config)
# cache = [
# "证券代码:300142证券简称:沃森生物公告编号:2016-072",
# "云南沃森生物技术股份有限公司关于股东解除股权质押的公告",
# "本公司及董事会全体成员保证信息披露内容的真实、准确和完整,没有虚假记载、误导性陈述或重大遗漏。",
# "云南沃森生物技术股份有限公司(以下简称“公司”)日前接到股东李云春先生函告,获悉李云春先生所持有的本公司部分股份解除质押,具体情况如下:",
# "李云春先生曾于2015年5月7日同招商证券股份有限公司就其持有的13596398股公司股票办理了股票质押回购业务,质押期限自2015年5月7日起",
# "至质权人向中国证券登记结算有限责任公司深圳分公司办理解除质押登记为止(详见公司在证监会指定的信息披露网站巨潮资讯网披露的第2015-048号公告)。",
# "李云春先生于2016年5月6日在中国证券登记结算有限责任公司深圳分公司办理了40789194股(含除权后派送的27192796股股份)公司股份的质押解除手续。",
# "李云春先生本次解除质押的公司股份占公司股份总数的2.91%,占其所持公司股份的25.16%。",
# "截至本公告披露日,李云春先生共持有公司股份162103218股,占公司股份总数的11.55%。",
# "李云春先生共质押其持有的公司股份86304393股,占公司股份总数的6.15%,占其所持公司股份的53.24%。",
# "特此公告。",
# "云南沃森生物技术股份有限公司",
# "董事会",
# "二〇一六年五月九日"
# ]
cache = []
cache.append(['四川和邦生物科技股份有限公司(以下简称“公司”)控股股东四川和邦投资集团有限公司(以下简称“和邦集团”)持有公司的股份总数为2496945803股,占公司总股本比例28.27%',
'本次股份解质后,和邦集团剩余质押的股份数量为2339806603股,占其持股总数比例为93.71%,占公司总股本比例为 26.49%',
'和邦集团及其一致行动人贺正刚先生合并持有公司股份2909577803股,占公司总股本比例32.95%',
'本次股份解质后,和邦集团及其一致行动人贺正刚先生合并剩余质押的股份数量为2505806603股,占其持股总数比例为86.12%,占公司总股本比例为28.37%'])
cache.append(["深圳市艾比森光电股份有限公司(以下简称“公司”或“本公司”)于2019年11月29日召开的第三届董事会第三十八次会议和第三届监事会第二十六次会议,审议通过了《关于回购公司股份方案的议案》,",
"同意公司使用自有资金以集中竞价交易方式回购公司股份,用于实施员工持股计划及/或股权激励。",
"本次回购资金总额不低于人民币3200万元(含)且不超过人民币6000万元(含),回购价格不超过人民币13元/股(含),具体回购股份的数量以回购结束时实际回购的股份数量为准。",
"回购股份实施期限为自董事会审议通过本次回购股份方案之日起不超过12个月。"])
cache.append([
"1、浙江富春江环保热电股份有限公司(以下简称“公司”)拟使用自有资金以集中竞价交易方式回购公司部分已发行社会公众股份,",
"回购股份的种类为公司发行的A股股份,本次回购的股份将予以注销,以减少公司的注册资本,提升每股收益水平。",
"本次回购资金总额不低于人民币1.7亿元、不超过人民币2.2亿元,回购价格为每股不超过人民币10.50元/股。",
"按回购金额下限1.7亿元、回购价格上限10.50元/股进行测算,预计可回购股份不低于16,190,476股;按回购金额上限2.2亿元、回购价格上限10.50元/股进行测算,预计回购股份总数不超过20952380股。"])
cache.append([
"上海汉得信息技术股份有限公司(以下简称“汉得”或“公司”)于2019年11月15日召开的第四届董事会第四次(临时)会议、第四届监事会第四次(临时)会议,分别审议通过《关于回购公司股份方案的议案》,该议案已经由公司2019年12月2日召开的2019年第四次临时股东大会审议通过。",
"公司拟使用自有资金以集中竞价交易方式回购公司部分社会公众股份,用于实施股权激励计划或者员工持股计划(以下简称“本次回购”)。",
"本次回购总金额不低于人民币5000万元(含)且不超过人民币10000 万元(含),回购股份的价格不超过人民币15元/股(含),具体回购股份的数量以回购期满时实际回购的股份数量为准。",
"本次回购的有效期为自股东大会审议通过回购股份方案之日起12个月内"])
cache.append([
"根据《上市公司回购社会公众股份管理办法(试行)》、《关于上市公司以集中竞价交易方式回购股份的补充规定》、《深圳证券交易所上市公司回购股份实施细则》等法律法规、规范性文件的有关规定,回购期间,公司应当在以下时间及时披露回购进展情况:每个月的前三个交易日内披露截至上月末的回购进展情况。",
"现将公司回购股份进展情况公告如下:截至 2019 年 11 月 30 日,公司通过集中竞价方式累计回购股份数量为12103163股,占公司总股本的0.60%,最高成交价为18.91元/股,最低成交价为17.16元/股,成交总金额为212997593.36元(不含交易费用)。"])
cache.append(["根据《深圳证券交易所上市公司回购股份实施细则》等相关规定,上市公司在回购期间应当在每个月的前三个交易日内披露截至上月末的回购进展情况。",
"现将公司回购股份的进展情况公告如下:截至2019年11月30日,公司通过回购专用证券账户以集中竞价交易方式回购公司股份数量为45,877,213股,占公司目前总股本的4.6430%,最高成交价为3.85元/股,最低成交价为3.07元/股,成交总金额为163,852,265.69元(不含交易费用)。",
"本次回购股份符合公司回购方案及相关法律法规的要求。"])
cache.append(["根据《深圳证券交易所上市公司回购股份实施细则》相关规定,公司在回购期间应当在每个月的前3个交易日内公告截至上月末的回购进展情况。",
"现将公司回购进展情况公告如下: 截止2019年9月30日,公司通过股票回购专用证券账户以集中竞价交易方式累计回购股份5,941,079股,约占公司总股本的0.50%,最高成交价为9.94元/股,最低成交价为9.52元/股,支付的总金额为5,800.70万元(含交易费用)。"])
cache.append(["近日,无锡新宏泰电器科技股份有限公司(以下简称“公司”)收到控股股东、实际控制人赵汉新先生关于其所持公司部分股份解除质押的通知,具体情况如下: ",
"一、本次股东股份解除质押的基本情况 ",
"2019年8月6日,赵汉新先生将其质押给国联证券股份有限公司的13,120,000股公司无限售条件流通股解除质押。",
"二、股东股份质押情况 截至2019年8月6日,赵汉新先生持有公司股份57,700,000股,占公司总股本的38.94%,本次解除质押后,赵汉新先生已无质押公司股票的情形。",
"赵汉新先生及其一致行动人赵敏海、沈华合计持有公司无限售流通股86,500,000股,占本公司总股本的58.38%,其中质押股票合计18,000,000股,占本公司总股本的12.15%,占其合计所持有公司股票的20.81%。",
"特此公告。",
"无锡新宏泰电器科技股份有限公司董事会"])
cache.append(["2019年3月14日,本公司接到公司股东盈投控股有限公司及其一致行动人深圳嘉年实业股份有限公司“关于解除天科股份(16.330, 0.70, 4.48%)股权质押的通知”,具体情况如下:",
"一、盈投控股有限公司 盈投控股有限公司(以下简称“盈投控股”)将其于2018年8月22日质押给广东华兴银行股份有限公司深圳分行用于办理短期融资借款业务的所持有的天科股份1200万股无限售条件流通股(具体详见天科股份公告临2018-061)全部解除质押。",
"截至本日,盈投控股持有本公司股份7050.38万股无限售条件流通股,占本公司总股本的8.42%。",
"本次股权解除质押后,盈投控股累计质押其持有的本公司股份4787万股无限售流通股,占盈投控股持有本公司股份的67.90%,占本公司总股本的5.72%。",
"二、深圳嘉年实业股份有限公司",
"深圳嘉年实业股份有限公司(以下简称“深圳嘉年”)将其于2018年8月22日质押给广东华兴银行股份有限公司深圳分行用于办理短期融资借款业务的所持有的天科股份860万股无限售条件流通股全部解除质押。",
"截至本日,深圳嘉年持有本公司股份860万股无限售条件流通股,占本公司总股本的1.03%。",
"本次股权解除质押后,深圳嘉年未质押本公司股份。",
"特此公告",
"四川天一科技股份有限公司"])
cache.append(["青海创鑫工程咨询股份有限公司股权司法冻结的公告 ",
"本公司及董事会全体成员保证公告内容的真实、准确和完整,没有虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、准确性和完整性承担个别及连带法律责任。",
"一、股权司法冻结概述",
"(一)基本情况",
"公司股东余林涛持有公司股份12,580,000股被司法冻结,占公司总股本62.9%。",
"在本次被冻结的股份中,12,580,000股为有限售条件股份,0股为无限售条件股份。",
"该司法冻结期限为2018年5月28日起至2021年5月27日止。冻结股份将在中国结算办理司法冻结登记。",
"(二)发生本次股权司法冻结的原因",
"公司股东余林涛于2018年6月30日收到广东省东莞市第一人民法院民事裁定判决书及查封(扣押)财产清单。",
"根据广东省东莞市第一人民法院(2017)粤1971民初65号之二民事裁定,因孙坚诉余林涛民间借贷纠纷事项,法院裁定立即冻结被申请人余林涛820000元的款项,或查封、扣押被申请人余林涛相应价值820000元的财产作为保全金额。",
"根据查封(扣押)财产清单,查封了余林涛所持有的青海创鑫工程咨询股份有限公司股权12,580,000股。",
"后经公司股东余林涛提出财产查封异议申请,广东省东莞市第一人民法院受理后已解冻12,274,030股,待法院作出正式文书后再行公告。"
"公告编号:2018-016"])
max_length = [64, 256]
vocab = tokenization.FullTokenizer('./albert/config/vocab.txt')
for c in cache:
data = process(c, vocab, max_length)
rt = oj.predict('./save/20191207170805/model.ckpt', data, c)
# get_ner_index_and_ner_list_index(rt, data[0], data[1])
# print('')
paths = get_path(rt)
print(paths)