# LtpApiService **Repository Path**: icat-510lab/LtpApiService ## Basic Information - **Project Name**: LtpApiService - **Description**: 封装哈工大Ltp语言云平台数据存储的api 存储方法采用的mongodb - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-11-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### LtpApiService 即Ltp语言云平台数据导存标准化接口,是根据ltp的API接口生成的数据获取服务,该服务以restful api形式提供给开发人员使用完成语料分析,并将其转化为标准语料数据--依赖关系型数据。 该服务目前只支持xml格式的数据转化,并将数据持久化,存储在mongodb中。 ### 技术点 该项目以多线程服务为基础,并使用spirng boot 提供restful api接口。 在sdu.icat.ltp.api包中,封装了LtpAPIConnection 并使用factory工厂模式,提供API对象资源池。 为了提高数据获取的效率,本项目在该包中封装了线程池,线程池大小根据cpu核数,与任务阻塞系数(暂定为0.8),确定线程池的大小 ResultCache类 是一个封装好的队列,它除了完成任务解耦功能之外,还可以完成一些自定义参数的绑定,例如一般简单句默认存储在mongodb的 simple collection里,但在自定义参数中预设了该项的匹配,使其具有可扩展性 在sdu.icat.ltp.mongo包中。完成了mongodb连接的封装,以及mongodbFascade模式的创建,fascade模式是二十一种设计模式中的外观模式,它的应用可以隐藏具体实例的创建调用,只给用户提供外观性的调用。(当然这里的解释不一定准确,有兴趣可以百度一下) 在sdu.icat.ltp.persistant包中,该服务定义了AbstractPersistant的抽象接口,利用该接口,开发者可以定义不同的具体实例,例如本项目定义了mongodb的持久化实例,预设的枚举类中有,sql型,file型,mongo型,redis型,hadoop型等。开发者有兴趣可以自行完善。 在sdu.icat.ltp.web使用spring boot 提供api接口,由于本项目的持久化是自定义封装的MongodbConnection,因此关闭了spring boot的mongo 自启动。 本项目架构使用ltp语言云平台,致力于提供可重用的公共服务。