如何从题库中提取出题干,选项,答案各类要素?

2017-07-13 00:14:10 +08:00
 elone

这段时间要做一个答题 APP,有个导入题库的功能 ,题库来自于 word 文档,格式如下:

单选题 
1.财务核算中心下设报账中心,报账中心配备会计主管 1 名,总行及各分支机构分别配备记账员和( )。 ( 0.09 分)
 A . 会计员
 B . 库管员
 C . 出纳员
 D . 柜台人员
标准答案 :C

(此处省略多道单选题 )

多选题 
750.农合机构对被投资企业不具有控制权,投资期限届满或者投资期限超过 11 年,且被投资企业资不抵债的,农合机构无法收回的股权可认定为呆账,其申报材料包括( )。 ( 0.12 分)
 A . 被投资企业破产证明
 B . 财产追偿证明
 C . 被投资企业投资期证明
 D . 工商部门吊销证明
 E . 破产清算证明
标准答案 :A, B, C, D, E

(此处省略多道多选题 )

判断题 
1094.金融企业根据相关法律法规对其涉农贷款和中小企业贷款进行风险分类后,按照一定的比例计提的贷款损失准备金,准予在计算应纳税所得额时扣除,其中次级类贷款计提比例为 50%。 ( 0.06 分)
  正确
  错误
标准答案:错误
(此处省略多道判断题 )

有三种类型的题 ,单选多选判断,如何提取出题目类型,主题,答案选项,正确答案,分数。 google 解决方法的时候,看到似乎可以用正则来解决,无奈我正则不太灵光,总是写不好,在这里跟大家求个思路,谢谢了。

本人主打语言:Go

2029 次点击
所在节点    问与答
3 条回复
bestrenxs
2017-07-13 00:17:38 +08:00
可以尝试一下解析 word 的库
geelaw
2017-07-13 01:01:35 +08:00
这题目难道不是平凡的吗?

单选题\s+
[0-9]+\.\s*(.*?)\s*
(\s*([0-9]*\.[0-9]+|[0-9]+)\s*分)\s*
(\s*[A-Za-z]\s*\.\s*(.*?)\s*)+
标准答案\s*:\s*
([A-Za-z])
|
多选题\s+
[0-9]+\.\s*(.*?)\s*
(\s*([0-9]*\.[0-9]+|[0-9]+)\s*分)\s*
(\s*[A-Za-z]\s*\.\s*(.*?)\s*)+
标准答案\s*:\s*
([A-Za-z]\s*,\s*)*([A-Za-z])
|
判断题\s+
[0-9]+\.\s*(.*?)\s*
(\s*([0-9]*\.[0-9]+|[0-9]+)\s*分)\s*
\s*正确\s*
\s*错误\s*
标准答案\s*:\s*
(正确|错误)

以上这个正则表达式,忽略表达式内空白,所有你需要的内容都在捕获组里面了,使用之前把 Word 文档的正文另存为文本文件。
mooncakejs
2017-07-13 01:10:32 +08:00
用正则像刀尖上跳舞,有几个字不匹配就玩玩,写一个类似 sax 解析的方法,感觉比较靠谱。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374923

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX