- by Brainchild
- 判斷該新聞內文是否含有AML相關焦點人物,並擷取出焦點人物名單
- create_model.ipynb - 製作model
- predict_aml.ipynb - predict function
- api - 使用flask 將model佈署至GCP
- docs - 相關說明文件
- BERT
- BERT-Base, Chinese: Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters
用Bert分別訓練四階段模型
- 犯罪模型(Bert + BiLSTM + Dense):將有犯罪事實標為1,與犯罪無關標為0的資料訓練。初步篩選包含犯罪之新聞。
- AML犯罪模型(Bert(微調) + Dense):將犯罪且與AML有關標為1,犯罪且與AML無關標為0的資料訓練。篩選有AML相關犯罪之新聞。
- NER模型(Bert + BiLSTM + CRF):用CKIP初步辨識並篩選出人名(包含三字、兩字簡稱及單名),以此訓練NER模型。
- 人名AML模型(Bert(微調) + Dense):取官方原始331筆包含AML人名新聞中所有人名的前後句訓練,將含有AML人名的前後句標為1,含有非AML人名的標為0。篩選最終AML人名。
- 資料前處理:
(1) 將原始新聞刪除< >、【】、()、〔〕中的字
(2) 排除記者…報導及「」中長度四以下的字,防止假名納入 - 犯罪模型、AML犯罪模型:
(1) 若長度大於512則取首尾256字預測 - NER模型:
(1) 用維基百科內百家姓協助判斷並篩選正確人名 - 人名AML模型:
(1) 取包含該人名的句子,並加上前後各一句(以。,?;切)
(2) 若前後句遇到句點則取到該句為止,或從句點開始取
(3) 若前後句包含其他人名則捨棄該句
(4) 若中間句包含其他人名則置換成空字串 - 規則:
(1) 若中間句及後句含有:無罪定讞、確定無罪、無罪確定、罪嫌不足、罪證不足、不起訴則從預測結果排除
(2) 若中間句及後句人名前含有:檢察官、員警等職稱,人名後含有:說、調查、辦理、偵訊、訊問、諭令等字眼則從預測結果排除(此為CKIP斷詞後取其動詞統計後之結果)
- 環境: GCP ubuntu 18.04
- flask + gunicorn
- 主要package
- tensorflow-gpu==1.15.3
- Keras==2.3.1
- keras-bert==0.84.0
- sudo gunicorn -w 1 --thread=4 -b 0.0.0.0:8080 --timeout=600 api:app --daemon