Loading

[최상단 공지사항]
※view 버튼과 제목 옆 +1 버튼을 눌러주시면...제 기분이 좋아집니다(-_-;) 많이 눌러주세요.

SchoolDayz 2013.09.16 03:08

공시생용 단어장봇 제작 과정



간만에 글 쓰는데 게임글이 아니라 죄송합니다. 아마 이 글은 저만 알아볼 수 있을듯. 새벽녘에 3일간의 근성작업을 끝내고 쓰는 거다 보니...


공무원시험 준비를 시작하고 이런저런 것들을 하다 보니 수능 단어장, 토익 단어장용 트위터 봇은 있는데 공무원시험 준비하는 사람용 단어장 봇이 없어서 직접 만들어 보았습니다. 공시쪽의 단어 수준은 수능과 비교하면 좀 더 난이도가 있고 토익보다는 쉽죠. 이걸 만족시킬 단어를 뽑아서 만드는 것이 관건입니다. 그리고 덤으로, 핸드폰의 단어장이 너무 구질구질해서 이걸 한방에 정리할 타이밍이기도 했고. 겸사겸사 시작했는데 3일이나 걸렸습니다.



그러러면 일단 단어 원 데이터가 필요합..니다만, 이걸 어디서 구할 수 있는 방법은 사실상 존재하지 않기 때문에 직접 손으로 전부 입력해 기초 데이터를 만들었습니다.


근데 저같은 경우는 단어장을 을 이미 사용중이었기 때문에 이런저런 단어장을 이미 몇개 만들어 둔 상태였습니다. 다만, 정확한 단어의 중요도 파악을 위해선 기출 단어장이 필요했기 때문에 이걸 구해서 따로 입력을 진행했습니다. 대략 1800여개. 대략 1주일


단어장과 별개로 숙어장도 기출 데이터가 필요했는데 이건 서울시 시험 전에 신문에 무료로 실린 것이 있어서 이것도 1000개를 수동입력 완료. 대략 4일.


이제 결합만 하면 됩니다.



아까 만든 기출 단어장, 기출 숙어장 외에 3개 선생 4개의 단어+숙어장을 확보해서 엑셀을 다 입력했다면 이를 한꺼번에 합칩니다. 그러면 대략 6000여개의 거대한 엑셀 지옥이 펼쳐지죠.

이것을 중요도 순으로 골라내야 하는데 저 같은 경우 '똑같은 단어가 몇 번 반복되는가'로 정했습니다. 서로 다른 교수가 똑같이 중요하다고 집어넣은 것, 거기에 기출까지 되었다면 그야말로 최빈출 단어라 할 만하죠. 그래서 그걸 1단계로 두고 그 이하 중복된 개수가 많을 수록 높은 순위를 가지도록 재배치합니다. 이 작업이 단어 1일, 숙어 1일 해서 총 2일. 각종 단어장에서 2회 이상 중복되었던 단어와 숙어는 약 1만개 중 2천개 정도였습니다.



이 다음부터는 좀 쉬워집니다. 이 앞까지의 과정은 정말 헬게이트가 펼쳐지는 신세계이므로 패기만으로 시작하는 것은 금물. 영타속도가 딸리면 더더욱 무리.

앞서 말했던 각 단계별 단어+숙어들을 각각의 파일로 저장합니다. 그리고 단어의 순서를 무작위로 재배치합니다. 이걸 몰라서 한참을 찾은 적이 있는데 가장 편한 방법은,


1. 입력된 단어들 옆에 (예를 들어) RAND라는 이름의 열을 하나 만듭니다.

2. 그 밑의 칸에 =RAND() 라고 입력하면 0~1 사이의 난수를 만들게 됩니다. 이걸 단어장 끝까지 복사.

3. 엑셀 자동 필터를 적용한뒤 RAND열을 오름차순 or 내림차순 정렬합니다.

4. RAND 열을 지우고 저장


뭐 스크립트까지 쓰는 방법을 봤지만...이게 가장 편하네요. 여기서 단어를 무작위로 배열하지 않으면 알파벳 순서대로 된 것을 다음 단계에서 수동으로 복붙해야 하는데 이러면 시간 너무 걸립니다. 여기서 무작위로 한번 섞어주고 진행하는게 확실히 빠름.



자동 트윗을 하는 서비스는 여러개 있지만 역시 twittbot 사이트가 가장 많이 이용하고 있죠. 일단 단어장봇 계정으로 로그인한 뒤, 세팅 메뉴에서 자동트윗 방식을 정해둔 뒤 tweet 메뉴를 통해 자동으로 올릴 단어들을 올립니다. 이게 꼬박 하루 걸렸습니다.

원래라면 그냥 아무렇게나 집어넣으면 되는데 첫 단어는 무조건 최빈출 단어로 하고 하는 나름대로의 규칙성이 있는데 여기에 적어봤자 별로 중요한 것도 아니고...아무튼 작업 전부 일단락되었으니 슬슬 자야겠네요.


---


-mazefind (미투 / 트윗 / 페북 / 구플)
* 제 글은 퍼갈 수 있습니다. 단, 출처를 인터넷 주소(maplestory.pe.kr)로 남겨주세요.

저작자 표시 비영리
신고
comments powered by Disqus