前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stata | 整理调查问卷修改内容清单

Stata | 整理调查问卷修改内容清单

作者头像
PyStaData
发布2020-07-21 11:03:36
1.3K0
发布2020-07-21 11:03:36
举报
文章被收录于专栏:PyStaDataPyStaData

前言

小伙伴们好久不见呀!最近出来调研(猜猜上图是哪里),好几天没更新推文。但是今天鼓捣了调研中遇到的问题,觉得有必要记录一下。

问题是这样的:入户过程中发调查问卷中的一些问题,项目组出发前每天更新修改清单,让我们出发前先修改问卷。每天公布的修改内容如上图(出于内容保密加了马赛克)。

显而易见,累加要修改的内容越来越多。而且有个麻烦的问题,那边给的清单没有按照题号先后顺序排,手动修改起来要前后翻页(问卷有18页...)。直到今早我花了半小时前后翻着改问卷,我有点坐不住,所以决定写点什么。

实现思路

实现思路很简单,先调用 Python 从图片中提取文本,之后在 Stata 中对文本进行清理,最后提取出题号,按题号字母排序。

实现过程

代码语言:javascript
复制
******************Python*****************
python:
import pytesseract
from PIL import Image

# 从图片识别文本
image = "问卷修改清单.jpg"
f = open("问卷修改内容.txt", "a")
text = str(((pytesseract.image_to_string(Image.open(image), lang='chi_sim'))))
text = text.replace(' ', '')
f.write(text)
f.close()
end
********************End******************

* 文本清理
import delimited "问卷修改内容.txt", clear encoding("gb18030")
gen content = v1 + v2
drop if ustrregexm(content, "(.*)月(.*)日") == 1 | ///
ustrregexm(content, "修改|改动|注意事项") == 1
keep content
duplicates drop

replace content = usubinstr(content, "I","1",1) ///
if ustrregexm(content,"[A-Z]I|[A-Z]L\d+") == 1
gen number = ustrregexs(0) if ustrregexm(content,"[A-Z]\d+") == 1
sort content
order number content

最后整理出来的效果是这样的:

虽然没做到百分之百的准确和整洁,但是大致按照题号前后顺序排列,对照修改的时候会省去前后来回翻页的时间。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyStaData 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 实现思路
  • 实现过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档