1004 at tsix.net 의 요청으로, 개인별 문제 출제 점유율을 표시하는 기능을 넣었다.
설명하면 읽는 사람도 귀찮고 쓰는 사람도 귀찮은 동시에 이해가 안갈 수도 있으니까, 여느때처럼 스크린샷을 올리고 도망간다.
어제 퍼키님과의 번개에서 알콩달콩 이 얘기 저 얘기 하다가, 타자방 정확도 체크하기에 아주 좋은 녀석을 알아냈다.
파이썬의 difflib 이였다. 오전에 회사에서 살짝 삽질을 해보니
from difflib import ndiff
from string import join
join(ndiff('dkssudgktpdy', 'dkssudgktldb'), '')
이렇게만 하면 되는 이런 간단한 녀석을 봤나! 같으면 앞에 0x20이 2개, 추가면 +, 있어야되는데 없으면 - (diff와 같다) 이제 .. 밀려쓰는 오타가 나도 정확도를 잘 평가할 수 있을 것이다.
문제: '동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세' 답안1: '도해물과 ..' 답안2: '동ㅇ해물과 백두산이 마르ㅗㄱ 닳도록...'
현 구조에서는 답안을 QWERTY로 바꿔서 체크를 하기 때문에 위의 2가지 답안 모두 정확도가 10% 미만으로 인식이 안된다. 답안1에서 동해물과에서는 '동'의 종성이 입력되지 않았고, 답안2에서는 수전증으로 인해 ㅇ이 2회 입력되고 '마르고' 입력시 순서가 뒤바뀌어 한칸 밀리기까지 했으니 말이다.
아아 difflib으로 이제 '#오타' 명령까지 만들 수 있겠구나~!
그런데 아직 연동되지 못했다. 그 이유는..
타자봇은 자바라서 JNI로 C에서 Python을 pure로 임베딩해서 difflib 모듈을 로드하고.. 뽕뽕 하게 해놨는데, 이녀석이 이상하게도.. 그냥 C에서 임베딩만 했을때는 difflib 모듈이 잘 로드되고 실행도 잘 되는데, 이상하게 이녀석을 JVM에서 로드해서 사용하면 difflib을 찾을 수 없다고 한다.
Py_NoStruct 가 undefined symbol 이라나 뭐라나 .. 이거가지고 1시간 넘게 삽질하다가 잠시 접어두고 회사일 했다. --; 구글링해도 맘에 드는 답을 못찾았으니.. 런쳐만 C나 Python으로 만든담에 이녀석이랑 자바 타자봇이랑 통신해버려?;;;
주중에는 회사일을 열심히 해야겠다.
Comments
6 thoughts shared
rath
difflib.ndiff 보다 덜 직관적이여서 좀 헤매긴했는데 잘 되네요 흐흐. 고마워요~ -ㅇ- 짬뽕안하고 그냥 bmsi.util 써야겠어요 :D
rath
오, 파라미터에 double minimum이 있는게 아주 인상적이군요. 리턴값도 double 이고.. ㅎㅎ
rath
리턴값이 double에 파라미터도 double 뿐이라 게임에 쓰기는 어렵겠군요..
rath
퍼키님의 많은 도움으로 -ㅇ-; bmsi.util.Diff를 공부해서 문장인식 및 오타 보여주는 부분 다 만들었어요. ㅎㅎㅎ 아이 뿌듯~ 뿌듯~
Continue Reading
Discover more thoughts and insights
Efficiency Trap 일상 생활 버전
어느 곳에서는, 어떤 시간대에는, 누구를 만났을 때는, 왠지 그 일을 해야할 것만 같은 기분이 든다. 1.s. 나는 런던에 왔다. 1.a. 그러니까 나는 런던에서 할 수 있는 무엇인가를 하는 게 더 효율적일테니
발렌티나 리시차 공연 후기
지난 일요일 발렌티나 리시차의 연주는 말도 안 되게 훌륭했다. 유튜브나 정규앨범 FLAC으로 듣는 것과는 차원이 달랐다. Appassionata 3악장은 숨도 제대로 못 쉬고 내가 다 힘들었다. 눈물이 좀 났는데
친구들과 한 잔
오늘(편의상 금요일) 약속이 없었다면 집에 와서 하고 싶었던 것들을 마구 만들었겠지만 퇴근 후 중학교 친구들을 대거 만나 우럭, 광어에 산사춘을 맛나게 먹고 초딩 친구들의 연락을 받고 신천으로 고고싱! 오늘은