从 无规则文本中提取单项选择题/多选题/判断题的题目信息 算法与实战

2018-04-10 16:08:00

引言

  • 最近负责学校的党校培训管理系统的开发维护,领导要求新增加一个题库,并把题库的Work文档发给我,让我录入数据库。 Imgur
  • 打开三个文档,总共800多道题目,因为当时题库题目都是手工录入,所以,是时候写一个自动提取题目数据的算法了。

问题分析

  • 选择题样例 选择题
  • 选择题提取遇到的问题与分析:

    • 答案()的不规范,可能中间存在空格,这里我通过找括号取中间文本
    • ()可能内可能是题目描述的说明内容,而不是我们想要提取的答案
    • 题目选项间隔不规范,还是空格问题,这里我是之间搜索ABCD选项字母找到下一个选项的内容
    • 题目选项可以是1~4行的无规则性,我这里通过判断下一行首字符是字母还是数字,如果字母,就是题目选项
    • 题目选项内容之间存在空格,如上图17题,中间空格,可能容易判断是下一个选项
    • 题目选项内容可能包含字母与数字情况
    • 如题目描述,1.1999年……,应该表示第一题,题目描述为1999年……,提取或出现错误
    • 等等
  • 判断题样例 判断题

  • 判断题提取遇到的问题与分析:
    • 题目答案的空格问题
    • 句尾有多余空格问题
    • 题目描述以数字开头问题

编程实现

效果展示

Imgur Imgur Imgur

结语

仅供参考,实用价值有局限,需满足我描述的文本特点

我是如何搭建 Ghost 博客系统

前言 写博客,我喜欢 简洁、轻便的博客系统 用数据库做文章储存方式 专注于文字,支持Markdown编辑 在尝试了WordPress、hexo博客系统之后,Ghost让我眼前一亮。 搭建Ghost博客,主要实现了我以下功能: NodeJs驱动,Mysql保存数据,Nginx反向代理 实现Https安全访问 百度统计 做访问量统计 畅言 做博文评论系统 搭建环境 阿里云学生主机 Linux系统:Ubuntu 16.04 SSL证书是阿里云的免费CA证书 安装Ghost博客系统所需的系统环境 安装Nginx sudo apt-get install nginx 安装Node,Npm sudo apt-get install nodejs sudo apt-get install npm * 安装Nvm nvm用于控制node版本,因为下文运行ghost系统时,可能出现提醒node版本太高/低,nvm能自由切换版本