优德88app娱乐优德88app娱乐


w88官网

【开源】C#信息抽取系统【招募C#队友】

复赛马上就要开始了,招募C#队友。(有兴趣的私信我)管理员请不要删除。内容会持续更新的。

最近在参加阿里巴巴的天池比赛:A股上市公司公告信息抽取https://tianchi.aliyun.com/competition/introduction.htm?spm=5176.100066.0.0.4a7833af7P0pmx&raceId=231659

按照道理来说,这个比赛官方是推荐使用Python的。本人Python小白,而且考虑到需要做成泛用的抽取器,所以使用C#作为开发语言。(其实现在NetCore的ML.net发布之后,NetCore做ML的项目也不是不可能了,感觉微软有能力将C#和机器学习结合起来。同时TensorSharp的发布也预示着TensorFlow也开始向其他语言上发展了。当然希望微软不要脑残,给Python做嫁衣,继续坑C#的程序员)

先上初赛之后的代码:https://github.com/magicdict/FDDC

对于信息抽取,其实大致两种做法,通过大量的业务规则建立模型,或者通过NLP的技术进行训练。由于没有经过正规的NLP训练,所以,暂时以撸业务规则起步。

信息抽取,其实包含了从原文中抽取关键信息的候选值,然后,通过一套置信度系统,选择可信度最高的一个答案。官方提供的赛题语料是PDF和HTML的,所以,需要做一些预处理。

这里使用的是Python的pdfminer作为PDF转TXT的工具。以下是Win上bat文件生成用代码

var ContractPath_TEST = Program.DocBase + @"FDDC_announcements_round1_test_b_20180708重大合同"; Logger.WriteLine("mkdir " + ContractPath_TEST + "\txt"); foreach (var filename in System.IO.Directory.GetFiles(ContractPath_TEST + @"pdf")) { Logger.WriteLine("pdf2txt.py " + filename + " >" + filename.Replace("pdf", "txt")); } Logger.Close();return;

当然TXT文件获得之后,就可以使用LTP工具,获得DP,NER,SRL文件了。这里使用的是哈工大的LTP工具。(注:3.3.4在多个平台上SRL阶段无法运行,因为其使用了Dynet神经网络库,可能需要GPU驱动)以下是MAC上sh文件生成用代码

Logger.WriteLine("mkdir /Users/hu/Desktop/FDDCTraing/TrainingSrl"); foreach (var filename in System.IO.Directory.GetFiles(ContractPath_TRAIN)) { var srlPath = "/Users/hu/Desktop/FDDCTraing/TrainingSrl/"; var fi = new FileInfo(filename); var xml = fi.Name.Replace("txt", "xml"); if (!xml.Contains("xml")) xml += ".xml"; Logger.WriteLine("./ltp_test --input " + filename + " > " + srlPath + xml); }

欢迎阅读本文章: 何鹏

w88优德官网

w88官网