计算机

计算机 · 圈子

8557 位酷友已加入

计算机圈子中包含常用的技术文档、源代码、模型、数据集、学习教程、技术报告等干货资料,加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

资源

基于Bilstm+CRF的命名实体识别模型

基于Bilstm+CRF的命名实体识别模型 基于字向量的CNN池化双向BiLSTM与CRF模型的网络,可能一体化的完成中文和英文分词,词性标注,实体识别。主要包括原始文本数据,数据转换,训练脚本,预训练模型,可用于序列标注研究.注意:唯一需要实现的逻辑是将用户数据转化为序列模型。分词准确率约为93%,词性标注准确率约为90%,实体标注(在本样本上)约为85%。 tips 中文分词,词性标注,实体识别,在使用上述模型时,本质是就是标注问题!!! 如果你第一次使用相关的模型,只需要将 self.class_dict 里的词典改为你所需要的词典,然后将你的文本数据转换成列向量(竖着的数据形式,第三步的样子即可)。文本数据各种各样,对于很多第一次入门的小伙伴来说,最难的部分反而是数据转换。运行成功后,可以对参数,超参数,网络结构进行调参即可。 主要实现使用了基于字向量的四层双向LSTM与CRF模型的网络.该项目提供了原始训练数据样本与转换版本,训练脚本,预训练模型,可用于序列标注研究.把玩和PK使用. 项目介绍 医学实体识别是让计算机理解病历、应用病历的基础。基于对病历的结构化,可以计算出症状、疾病、药品、检查检验等多个知识点之间的关系及其概率,构建医疗领域的知识图谱,进一步优化医生的工作. CCKS2018的电子病历命名实体识别的评测任务,是对于给定的一组电子病历纯文本文档,识别并抽取出其中与医学临床相关的实体,并将它们归类到预先定义好的类别中。组委会针对这个评测任务,提供了600份标注好的电子病历文本,共需识别含解剖部位、独立症状、症状描述、手术和药物五类实体。 领域命名实体识别问题自然语言处理中经典的序列标注问题, 本项目是运用深度学习方法进行命名实体识别的一个尝试. 实验数据 一, 目标序列标记集合O非实体部分,TREATMENT治疗方式, BODY身体部位, SIGN疾病症状, CHECK医学检查, DISEASE疾病实体, 二, 序列标记方法 采用BIO三元标记 三, 数据转换 模型输出样式: 模型搭建 本模型使用预训练字向量,作为embedding层输入,然后经过两个双向LSTM层进行编码,编码后加入dense层,最后送入CRF层进行序列标注. 模型效果 模型的训练: 模型 模型的测试: python lstm_predict.py, 对训练好的实体识别模型进行测试,测试效果如下: 总结 1,本项目针对医学命名实体任务,实现了一个基于Bilstm+CRF的命名实体识别模型 2,本项目使用charembedding作为原始特征,训练集准确率为0.9649,测试集准确达到0.8451 3,命名实体识别可以加入更多的特征进行训练,后期将逐步实验其他方式. 转载自:https://github.com/liweimin1996/Min_NLP_Practice

资源

基于CTPN和DENSENET的中文文本检测和识别

项目简介 为了能将一张图像中的多行文本识别出来,可以进行任务分为两步: 检测图像中每一行文本的位置 根据位置从原始图像截取一堆子图像 只需识别出子图像的文字,再进行排序组合即可 因此,采用两类模型: 文本检测:CTPN 文本识别:Densenet + ctc 安装 运行环境 操作系统:win10 Python:3.6 安装步骤 1.安装tensorflow 1.9.0,如果电脑配置了gpu环境,请选择gpu版本,否则选择cpu版本 安装该包 执行速度 使用 OCR 用于识别一张图片中的文字 编程方式 get_or_create() 支持以下参数用于使用自己训练的模型: ctpn_weight_path ctpn_config_path densenet_weight_path densenet_config_path dict_path 命令行方式 1.ctpn模型权重文件位置不指定默认使用weights/weights-ctpnlstm-init.hdf5 2.ctpn模型配置文件位置不指定默认使用config/ctpn-default.json 3.densenet模型权重文件位置不指定默认使用weights/weights-densent-init.hdf5 4.densenet模型配置文件位置不指定默认使用config/densent-default.json 5.字典文件位置不指定默认使用dictionary/char_std_5990.txt 示例 CTPN 用于定于图像中文字的位置 编程方式 命令行方式 1.权重文件位置不指定默认使用weights/weights-ctpnlstm-init.hdf5 2.配置文件位置不指定默认使用config/ctpn-default.json 示例 Densenet 用于识别固定图像高度中的文字,默认图像高度为32 编程方式 命令行方式 1.权重文件位置不指定默认使用weights/weights-densent-init.hdf5 2.配置文件位置不指定默认使用config/densent-default.json 3.字典文件位置不指定默认使用dictionary/char_std_5990.txt 示例 训练 数据集说明 CTPN 训练使用的数据集格式与VOC数据集格式相同,目录格式如下: VOCdevkit VOC2007 Annotations ImageSets JPEGImages Densenet + ctc 使用的数据集分为3部分 文字图像 标注文件:包括图像路径与所对应的文本标记(train.txt, test.txt) 字典文件:包含数据集中的所有文字 (char_std_5990.txt) 数据集链接: ctpn: 链接: https://pan.baidu.com/s/19iMHzjvNfQS22NdFjZ_2XQ 提取码: nw7a densenet: 链接: https://pan.baidu.com/s/1LT9whsTJx-S48rtRTXw5VA 提取码: rugb 关于创建自己的文本识别数据集,可参考:https://github.com/Sanster/text_renderer。 CTPN 训练 ctpn 的训练需要传入2个必要参数: 图像目录位置 标注文件目录位置 <模型配置文件位置> 用于指定模型的一些参数,若不指定,将使用默认配置: <保存模型训练权重文件位置> 若不指定,会保存到当前目录下的model文件夹 训练情况: Densenet 训练 Densnet 的训练需要4个必要参数: 训练图像位置 字典文件位置 训练文件位置 测试文件位置 <模型配置文件位置> 用于指定模型使用的配置文件路径,若不指定,默认配置如下: <保存模型训练权重文件位置> 若不指定,会保存到当前目录下的model文件夹 训练情况: 训练好的权重文件 链接: https://pan.baidu.com/s/1HaeLO-fV_WCtTZl4DQvrzw 提取码: ihdx 转载自:https://github.com/GlassyWing/text-detection-ocr

计算机

计算机·圈子   首发

侧卫 更新了
资源

人工智能2020:落地挑战与应对-爱分析

内容 过去的一段时间内,人工智能进入了技术成熟度曲线的低谷期,技术炒作的泡沫破裂,行业关注重心开始转变为人工智能如何产业落地。 然而由于技术和业务需求之间的鸿沟,人工智能在走向产业落地的过程中面临一系列的挑战。企业在应用人工智能技术推进业务转型升级的过程中,必须要了解这些问题并加以有效应对。 为了分析上述问题,报告回顾了人工智能的行业概况,并结合实践案例分析了人工智能技术给产业带来的具体价值创造和各行业落地进展和未来应用趋势。同时报告系统地分析了人工智能落地产业中,在数据、算法模型、业务场景理解、服务方式、投入产出比等各方面面临的挑战和应对方法,希望帮助企业推动人工智能的价值落地。 目录 1 人工智能走向产业应用 2 人工智能助力企业数字化转型 3 人工智能落地挑战及应对 4 人工智能应用趋势展望 结语 发布单位:爱分析 发布时间:2020

资源

【数据集】SmoothNLP 金融文本数据集

SmoothNLP 金融文本数据集(公开)|Public Financial Datasets for NLP Researches API接口服务 推荐研究方向 Embedding (Word2Vec, Bert, 等) 实体识别 - NER 无监督聚类: 基于企业描述信息, 进行竞品聚类 企业行业分类 标题总结 - Text Summary 序列分类 - Sequence Classification 数据展示 投资机构 投资事件 企业工商信息 金融资讯新闻 专栏资讯 36氪新闻 来源https://github.com/smoothnlp/FinancialDatasets

问答

怎么用python代码实现MobileNet?

包括其中的一些变量怎么设置参数

资源

【数据集】CMRC 2018中文跨度提取机阅读理解数据集

CMRC 2018 该存储库包含CMRC 2018和DRCD这个公开的中文跨度提取机阅读理解数据集(如SQuAD)以及其BERT基线系统。 数据集 CMRC 2018(简体中文):https://github.com/ymcui/cmrc2018 DRCD(繁体中文):https://github.com/DRCSolutionService/DRCD 你可以通过上面的链接下载这些数据集,或者,也可以直接从本资源下载。 请注意,我们使用类似于SQuAD的CMRC 2018数据集,可以通过链接进行访问。 有关更多中文机器阅读理解数据集,请参考:https://github.com/ymcui/Chinese-RC-Datasets 基线系统 依赖要求 除了TensorFlow == 1.12之外,没有其他特殊的依赖要求。 也可以在其他版本的TensorFlow上使用(未经测试)。 该代码基于run_squad.py的官方BERT实现。 可查:https://github.com/google-research/bert/blob/master/run_squad.py 用法 步骤1:下载BERT权重(如果有,请跳过) 中文(基础) 多语种(基础) 步骤2:设定正确的局部变数 $ PATH_TO_BERT:BERT权重的路径(TensorFlow版本) $ DATA_DIR:数据集的路径 $ MODEL_DIR:模型的输出目录 步骤3:训练 然后,我们使用以下脚本进行训练。 我们以CMRC 2018数据集和多语言BERT为例。 步骤4:评估 我们对CMRC 2018和DRCD使用官方评估脚本。 请注意,由于DRCD官方不提供评估脚本,因此我们也将cmrc2018_evaluate.py用于DRCD。 基准结果 我们提供BERT-Chinese和BERT-multilingual的基准线。 请注意,为了获得可靠的结果,每个基准线均进行10次运行,并对它们进行了平均评分(不适用于隐藏集)。 来源https://github.com/ymcui/cmrc2018

资源

分布式WEB指纹识别平台

w11scan w11scan是一种分布式的WEB指纹识别系统(包括CMS识别,js框架,组件容器,代码语言,WAF等),管理员可以在WEB端添加/修改指纹,建立批量的扫描任务,并支持多种搜索语法。 安装 软件本身安装非常简单,比较复杂的是一些框架,数据库的安装。 安装 码头安装 流程演示视频 演示视频地址: https://pan.baidu.com/s/1SMgd9QVHqaEGerI2oJl1Ig 密码:qkew 使用的技术和思路 框架 之前编写的扫描器追求的是轻巧方便,安装简单(甚至不需要安装其他库),但是这一版使用了很多框架,python3为主要编成语言。端数据库是mongodb,WEB用的Django。 识别技术 w11scan内置了1800多条常见的指纹,可以识别多个538种常见CMS,而且WEB端可以添加这些CMS指纹。另外也集成了builtwith和Webeye https ://github.com/zerokeeper/WebEye/。 在此表示感谢。 特色 每个指纹都会有一个命中率标记,每次识别成功后,相应指纹命中率会增加,使用指纹时优先使用命中中率高的指纹。 优先使用命中率最高的指纹,其次,将指纹按照访问路径分类排序,再优先使用访问路径次数最多的指纹。 一个指纹识别成功后,会停止识别该URL的其他指纹,开始下一个任务 搜索功能支持多种语法,全文搜索(mongodb特性) 支持将内容下载为报表 预览可参见:https://x.hacking8.com/post-256.html 结果展示 转载自:https://github.com/w-digital-scanner/w11scan

资源

基于CNN、BI-LSTM的文本分类

项目介绍 中文情感分析的实质是文本分类问题,本项目分别采用CNN和BI-LSTM两种模型解决文本分类任务,并用于情感分析,达到不错的效果。 两种模型在小数据集上训练,在验证集的准确率、号回率及F1因子均接近90% 项目设计的目标可以接受不同语料的多种分类任务,只要语料按照特定格式准备好,就可以开始调参训练、导出、serving。 环境 在 python3.6 & Tensorflow1.13 下工作正常 其他环境也许也可以,但是没有测试过。 还需要安装 scikit-learn package 来计算指标,包括准确率回召率和F1因子等等。 语料的准备 语料的选择为 谭松波老师的评论语料,正负例各2000。属于较小的数据集,本项目包含了原始语料,位于 data/hotel_comment/raw_data/corpus.zip 解压 corpus.zip 后运行,并在raw_data运行 python fix_corpus.py 将原本gb2312编码文件转换成utf-8编码的文件。 词向量的准备 本实验使用开源词向量chinese-word-vectors 选择知乎语料训练而成的Word Vector, 本项目选择词向量的下载地址为 https://pan.baidu.com/s/1OQ6fQLCgqT43WTwh5fh_lg ,需要百度云下载,解压,直接放在工程目录下 训练数据的格式 参考 data/hotel_comment/*.txt 文件 step1 本项目把数据分成训练集和测试集,比例为4:1, 集4000个样本被分开,3200个样本的训练集,800的验证集。 对于训练集和验证集,制作训练数据时遵循如下格式: 在{}.words.txt文件中,每一行为一个样本的输入,其中每段评论一行,并用jieba分词,词与词之间用空格分开。 除了 地段 可以 , 其他 是 一塌糊涂 , 惨不忍睹 。 和 招待所 差不多 。 帮 同事 订 的 酒店 , 他 老兄 刚 从 东莞 回来 , 详细 地问 了 一下 他 对 粤海 酒店 的 印象 , 说 是 硬件 和 软件 : 极好 ! 所以 表扬 一下 在{}.labels.txt文件中,每一行为一个样本的标记 NEG POS 本项目中,可在data/hotel_comment目录下运行build_data.py得到相应的格式 step2 因为本项目用了index_table_from_file来获取字符对应的id,需要两个文件表示词汇集和标志集,对应于vocab.labels.txt和vocab.words.txt,其中每一行代表一个词或者是一行代表一个标志。 本项目中,可在data/hotel_comment目录下运行build_vocab.py得到相应的文件 step3 由于下载的词向量非常巨大,需要提取训练语料中出现的字符对应的向量,对应本项目中的data/hotel_comment/w2v.npz文件 本项目中,可在data/hotel_comment目录下运行build_embeddings.py得到相应的文件 CNN 结构: 中文词Embedding 多个不同长度的定宽卷积核 最大池化层,每个滤波器输出仅取一个最大值 全连接 CNN模型的训练,在cnn目录底下运行 python main.py CNN模型训练时间 在GTX 1060 6G的加持下大概耗时2分钟 CNN模型的训练结果 在model目录底下运行 python score_report.py cnn/results/score/eval.preds.txt 模型二: BI-LSTM 中文词Embedding bi-lstm 全连接 BI-LSTM模型的训练,在lstm目录底下运行 python main.py BI-LSTM模型训练时间 在GTX 1060 6G的加持下大概耗时5分钟 BI-LSTM模型的训练结果 在model目录底下运行 python score_report.py lstm/results/score/eval.preds.txt 模型的导出和serving(BI-LSTM为例) 模型导出 在lstm目录底下运行 python export.py 导出estimator推断图,可以用作prediction。本项目已上传了saved_model,可以不通过训练直接测试。 在model/lstm目录底下运行 python serve.py可以利用导出的模型进行实体识别。详情见代码。 训练结果 虽然模型由真实评论数据训练而成,这些数据长短不一(有的分词后长度超过1000),但由上图可得,模型对短评论表现尚可。 转载自:https://github.com/linguishi/chinese_sentiment

资源

TideFinger——指纹识别小工具

TideFinger 一个开源的指纹识别小工具,使用了传统和现代检测技术相结合的指纹检测方法,让指纹检测更快捷、准确。 介绍 通过分析web指纹的检测对象、检测方法、检测原理及常用工具,设计了一个简易的指纹搜集脚本来协助发现新指纹,并提取了多个开源指纹识别工具的规则库并进行了规则重组,开发了一个简单快捷的指纹识别小工具TideFinger,并实现了一套在线的指纹识别平台“潮汐指纹” http://finger.tidesec.net 通过对各种识别对象、识别方法、识别工具的分析,发现大家的指纹库各式各样,识别方式也是各有千秋,传统的md5、url路径的方式居多,识别header信息的也是不少,但没有一个能集众家之长的小工具和指纹库。 于是本项目参考了webfinger和whatcms的部分代码并进行了整合优化,做了一个小工具TideFinger。 安装 识别脚本的安装和使用都比较简单。 安装python2依赖库 执行脚本 指纹识别界面如下: 技术原理及实现 指纹库整理 本项目搜集了大量的开源指纹识别工具,从中提取了指纹库,进行了统一的格式化处理并进行去重,最终得到了一个大约2078条的传统指纹库。本来想把fofa的库也合并进来,发现格式差异有些大,便保持了fofa指纹库,并把WebEye的部分指纹和fofa指纹进行了合并。这样就保留了两个指纹库,其中cms指纹库为传统的md5、url库,大约2078条指纹,可通过关键字、md5、正则进行匹配,fofa库为2119指纹,主要对Header、url信息进行匹配。 指纹库优化 在对指纹库整理去重后,对每个指纹进行了命中率的标识,当匹配到某个指纹时该指纹命中率会加1,而在使用指纹时会从优先使用命中率高的指纹。 然后从互联网中爬取了10W个域名进行了命中率测试,然后对一些误报率比较高的指纹进行了重新优化,得到了一份相对更高效的指纹库。 未知指纹发现 目前新指纹的识别基本还是靠人工发现然后分析规则再进行添加,所以各平台都有提交指纹的功能,但是由于没有这种资源,只能另想办法。 于是想到了一个比较笨的方法:从网站中爬取一些静态文件,如png、ico、jpg、css、js等,提取url地址、文件名、计算md5写入数据库,这样再爬下一个网站,一旦发现有相同的md5,就把新的url也加入到那条记录中,并把hint值加1,这样爬取10W个站点后,就能得到一个比较客观的不同网站使用相同md5文件的数据了。 有兴趣的可以查看具体代码https://github.com/TideSec/TideFinger/blob/master/count_file_md5.py文件。 爬取的结果如下: 里面肯定很多都属于误报,比如上图中第一个其实是个500错误页面,所以出现的比较多,第二个是政府网站最下边那个常见的“纠错”的js,所以用的也比较多。 经过一些分析整理也发现了一些小众的CMS和建站系统的指纹,比如三一网络建站系统的newsxx.php,比如大汉JCM的jhelper_tool_style.css等等,后续会持续把这些新的指纹丰富到指纹库中去。 指纹识别脚本 有了指纹库之后,识别脚本就相对比较简单了,已有的一些也都比较成熟了,直接使用了webfinger和whatcms的部分代码并进行了整合优化,于是就有了TideFinger。 1、功能逻辑都比较简单,先用fofa库去匹配,然后获取一定banner,如果banner中识别除了cms,则返回结果,如果未识别到cms,则会调用cms规则库进行匹配各规则。 2、脚本支持代理模式,当设置了-p参数,且proxys_ips.txt文件包含代理地址时,脚本会随机调用代理地址进行扫描,以避免被封ip,不过这样的话效率可能会低一些。毕竟搜集的免费代理质量还是差一些,速度会慢很多。有钱人可以找收费代理池,然后每个规则都用不同代理去请求,这样肯定不会被封! 代理地址的搜集可以使用我修改的另一个代理池https://github.com/TideSec/Proxy_Pool 提供了自动化的代理ip抓取+评估+存储+展示+接口调用。 3、经测试,一般网站把所有指纹跑一遍大约需要30秒时间,个别的网站响应比较慢的可能耗时更长一些,可以通过设置网站超时时间进行控制。 指纹识别平台 在有了指纹库和识别脚本之后,由于想继续完善下这个功能,于是又加入了其他一些功能,有个这个在线指纹查询平台http://finger.tidesec.net。 开始想加的很多,但后来在速度和时间方面不得不进行了一定的取舍,于是就有了目前如下的功能。 1、网站信息:网站标题、状态码、302跳转信息等; 2、IP地址信息:IP归属地、IP服务商信息、GPS信息; 3、CDN识别:对目标是否使用CDN进行检测,但目前CDN识别指纹还不多,对部分识别出使用CDN的目标还会列出来CNAME; 4、中间件识别:主要通过http头信息中的XPB、server等字段获取中间件信息,如nginx、iis、tomcat等; 5、更多banner:主要是调用了whatweb和Wapplyzer进行更多banner信息的获取,如jquery、bootstrap等; 6、操作系统识别:识别比较简单,通过ttl值和文件大小写是否敏感...用nmap去识别的话速度太慢... 7、本来还加入了子域名发现、端口扫描和waf探测等等,但发现耗时相对较长,而且比较容易被封IP,所以又去掉了。 待解决的问题 1、指纹库的继续完善 2、代理问题:虽然集成了代理功能,但经实际使用来看,搜集的免费代理质量还是差一些,速度会慢很多。 3、IP会被封:有的网站防护对目录枚举或一些路径非常敏感,会封IP地址; 4、下一步尝试对http头进行语义分析,从海量网站中提取分析header的共性,更高效的发现未知指纹。 转载自:https://github.com/TideSec/TideFinger

  • 1
  • 99
  • 100
  • 101
  • 168
前往