0%

NLP交接文档

自动摘要: 一:您需掌握的: 1.期望您了解pandas处理,这样能让您快速的满足需求; 2.期望您了解flask库,这样能让您快速让你理清整体思路; 3.期望您少用try进 ……..

一:您需掌握的:

  1. 期望您了解pandas处理,这样能让您快速的满足需求;
  2. 期望您了解flask库,这样能让您快速让你理清整体思路;
  3. 期望您少用try进行异常处理,多用if进行判断,让错误了然,方便后续修正;
  4. 期望您了解NLP实体提取,这样可以帮助您快速解决问题。
  5. 期望您耐心分析需求,明确需求,反复确认后在行动,以免造成不必要的努力及时间;
  6. 期望您不要为做而做,掌握技术,为公司把握当下,迎接未来;

二:现阶段问题:

  1. 需求未明确,只有短期需求,没有真正的需求。需求是反复在反复,妥协在妥协出来的结果,才是甲方真正的需求(个人理解);
  2. 代码中存在大量try,请不要生气,这是为了及时满足甲方需求造成的,如有余力请及时修正;
  3. 里面用了nlp模型-BERT,凭感觉是在做中文分词,但现在NLP开源库集成的中文分词其实效果已经很不错;
  4. 公司没有配备开发服务器,只配备了部署服务器(受限,什么都不能操作,库都不能在线安装),请用winscp工具会让你舒服点。数据库只能通过部署服务器连接,当然你可以拷贝数据库做本地开发,当如果你时间紧迫,请不要做这些尝试;
  5. 现阶段等级进行修正了(详见后面),但是结果“riskfactor”内字典需要修正(未做),您只需在app后面对等级修正模块加入以下代码(伪代码);
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 创建个新字典,用于保存修正后的数据;
    data=原始数据["riskfactor"]

    # 实现字典相加
    def sum_dict(a,b):
    temp = dict()
    for key in a.keys() | b.keys():
    temp[key] = sum([d.get(key, 0) for d in (a, b)])
    return temp

    # 判断等级符合数据
    for i in 等级字典:
    if 1<原始数据["earlywarning_level"]:
    data["riskfactor"]=sum_dict(i["riskfactor"],data["riskfactor"])
    else:
    print("原始数据["earlywarning_level"] 小于1"

三:需求目的:

对公司进行风险等级预测,规则:公司触发了几个数据库,预警等级就为几级。

四:问题及要求:

  1. 公司的信用代码统一用表15中的匹配,匹配不到此条数据不要;
  2. 格式问题,地址:XX省XX地市XX区县,地市:XX市,区县:XX县;
  3. alert_time选取问题,不同数据的alert_time可能不同,怎么选取;
  4. 同一个表里,出现两次或多次同一个公司名称,匹配的关键词可能一样,也可能不一样,那么触发发表次数算1次还是多次;
  5. 公司名、信用代码、地址、地市、区县、alert_time、预警时间risk_time、内容字段riskTitle、hash_unique_name、hash_unique有一个为空,此条数据不要;
  6. 同一个表有两条完全相同的数据,此条数据要,因为索引不一样;
  7. 不同表里有两条完全相同的数据,此条数据要,因为索引不一样;

五:算法流程:

补充资料:

1. 等级规则:如果个数为1,数据舍弃;若个数大于等于2,则输出相应的等级;2. 输出格式约束

  1. 同一张表,同一条数据触发2个或多个关键词时,要在”riskfactor”中加如下信息:{“riskname”: “行政处罚_2”,”tabel”: “szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old”,”hash_unique_name”: “hash_unique”,”hash_unique”: “b966687335f1a566bdfbf96c5995491a”,”risk_time”: “2022-02-19 02:00:27”,”riskTitle”: “tsnr”}举例:如匹配了两个关键词实列如下(黑部分关键词:行政处罚、漏电):

    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
    {
    "company": "浙江英博雁荡山啤酒公司",
    "company_creditcode": "91330201MA28337824",
    "alert_time": "2022-02-19 02:00:27",
    "earlywarning_level": "3",
    "data": {
    "industry": "FINANCIALSECURITY",
    "landcity": "温州市",
    "districtcounty": "乐清市",
    "detailedaddress": "浙江省温州市乐清市",
    "riskfactor": [
    {
    "riskname": "行政处罚",
    "tabel": "szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old",
    "hash_unique_name": "hash_unique",
    "hash_unique": "b966687335f1a566bdfbf96c5995491a",
    "risk_time": "2022-02-19 02:00:27",
    "riskTitle": "tsnr"
    }
    {
    "riskname": "漏电",
    "tabel": "szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old",
    "hash_unique_name": "hash_unique",
    "hash_unique": "b966687335f1a566bdfbf96c5995491a",
    "risk_time": "2022-02-19 02:00:27",
    "riskTitle": "tsnr"
    }
    ]
    }
    }
  2. 不同表中同一个公司名称数据要整合在一起,如来源于表szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old和hbt_hj_biz_043_fxyjbxx_valid_old,那么结果如下

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
{
"company": "浙江英博雁荡山啤酒公司",
"company_creditcode": "91330201MA28337824",
"alert_time": "2022-02-19 02:00:27",
"earlywarning_level": "3",
"data": {
"industry": "FINANCIALSECURITY",
"landcity": "温州市",
"districtcounty": "乐清市",
"detailedaddress": "浙江省温州市乐清市",
"riskfactor": [ {
"riskname": "行政处罚",
"tabel": "szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old",
"hash_unique_name": "hash_unique",
"hash_unique": "b966687335f1a566bdfbf96c5995491a",
"risk_time": "2022-02-19 02:00:27",
"riskTitle": "tsnr"
}
{
"riskname": "漏电",
"tabel": "szfw_hj_biz_012_z_form_xinfangshangbaocs1_valid_old",
"hash_unique_name": "hash_unique",
"hash_unique": "b966687335f1a566bdfbf96c5995491a",
"risk_time": "2022-02-19 02:00:27",
"riskTitle": "tsnr"
}
{
"riskname": "灭火器过期",
"tabel": "hbt_hj_biz_043_fxyjbxx_valid_old",
"hash_unique_name": "hash_unique",
"hash_unique": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"risk_time": "2022-02-19 02:00:27",
"riskTitle": "tsnr"
}
]
}
}

欢迎关注我的其它发布渠道