intelligent-paper-search

Introduction: SpringBoot + OpenNLP + Neo4j + Spark 朴素贝叶斯分类器实现石油相关论文的智能分析问答系统
More: Author   ReportBugs   
Tags:

Spring-Boot + OpenNLP + Neo4j + Spark 的朴素贝叶斯分类器实现石油相关论文的智能分析问答系统

写在前面

打算仿照Spring-Boot-Neo4j-Movies做一个基于石油相关论文的智能分析系统。 分析了下这个电影知识问答系统,底层功能实现是操作 cypher 语句,前台的业务:
1.汉语分词器 HanLP 将原始语句分词
2.语句抽象化(提高匹配问题模板标签准确率)
3.获取模板标签,使用模板将句子转化成系统可以识别的结果
4.cypher 语句获取结果返回前台
既然涉及问答系统,中途也看了微软小冰和其他的语料库资料,感觉自己做出一个偏向应用的石油相关智能问答系统的可能性不大,首先自己不做 爬虫就语料库这个问题也解决不了的,要真有现成的语料库那也就没我做的必要了。

区别

对比自己想做的石油论文智能分析系统,我的数据来源都是国外网站,用户的原始语句是英文就用不到分词,但词汇库就复杂了,需要自己去找英 文人名词汇表,提取论文信息生成全文搜索词汇表。所以对这个项目我抱的期望不是很大,先罗列几个比较困难的点,做出来更新:
1.项目中通过稠密向量来生成训练集,而每个局部向量是由词汇表来确定的,电影知识问答系统中是个 190 词的电影相关汉语词汇表,但石油相关 词汇都是英语网站的数据,所以词汇表内容都是英语词汇,解决办法是在有些数据后生成这个表,但是搞爬虫的同学还在准备中期考试 ~、~
2.问题归类,英语比较吃力了,同样的一个问题怎么来问,同一个问题预设问法越多,模型在学习后识别同类问题的准确率才会更高。
3.。。。

10.31 更新

已完成工作量:数据模拟、cypher 查询、index.html、questionService
在做句子抽象化这里,两个点:人名识别、关键词识别。运气比较好,先做的人名识别。最开始以为要自己准备一个词汇库,在网上找资料,发现 了 ner(named entity recognition),然后延申到机器学习的 NLP,发现了很多成型的 nlp 项目(英文和国内的汉语都有)而且可以直接使用的。随便 挑选了 apache 的 OpenNLP 拿来做人名识别。

11.5 更新

3 号把整体功能做完了,自己暂时不想做, 目前可以继续补充的工作:

  • 目前只提供了两个问题模板,继续补充 questionPattern 的和对应 service 中的 cypher
  • 优化前端页面,衍生其他功能(比如热门数据展示的工作,需要修改实体类表或者融合 redis)
  • 问题模板的生成应该是根据需求确定,不应该自己空想来设定

当前数据量为零,增添数据量之后的工作:

  • 对算法精度做一个测试
  • 对算法选择做出一个决策
  • 思考怎么设计出数据实时更新、活的系统
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools