문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
2018_07 [2018/07/19 07:50] ehmoon |
2018_07 [2021/04/13 06:54] (현재) |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ===== 6일 금요일 ===== | + | ===== 06일 금요일 ===== |
+ | |||
+ | [Develop] | ||
웹 페이지를 MHTML 파일로 긁어와 저장하는 프로그램 개발. | 웹 페이지를 MHTML 파일로 긁어와 저장하는 프로그램 개발. | ||
줄 17: | 줄 19: | ||
\\ | \\ | ||
- | ===== 9일 월요일 ===== | + | ===== 09일 월요일 ===== |
+ | |||
+ | [Develop] | ||
chilkat 모듈을 이용하면 깨지는 페이지들이 발생. | chilkat 모듈을 이용하면 깨지는 페이지들이 발생. | ||
줄 36: | 줄 40: | ||
===== 10일 화요일 ===== | ===== 10일 화요일 ===== | ||
+ | |||
+ | [Develop] | ||
Chrome Extension 사용하여 mhtml 파일 저장하는 작업 완료. | Chrome Extension 사용하여 mhtml 파일 저장하는 작업 완료. | ||
줄 60: | 줄 66: | ||
===== 11일 수요일 ===== | ===== 11일 수요일 ===== | ||
+ | |||
+ | [Develop] | ||
기존의 계획상으로는 xlsl 파일로부터 500개 dataSet 읽어와서 mht 파일로 변환하는 작업을 진행하려고 했으나, | 기존의 계획상으로는 xlsl 파일로부터 500개 dataSet 읽어와서 mht 파일로 변환하는 작업을 진행하려고 했으나, | ||
줄 112: | 줄 120: | ||
===== 12일 목요일 ===== | ===== 12일 목요일 ===== | ||
+ | |||
+ | [Develop] | ||
Django 서버에 mainpage 만들어서 DB에 모아두었던 모든 DataSet들 화면에 찍어봄. | Django 서버에 mainpage 만들어서 DB에 모아두었던 모든 DataSet들 화면에 찍어봄. | ||
줄 166: | 줄 176: | ||
===== 13일 금요일 ===== | ===== 13일 금요일 ===== | ||
+ | |||
+ | [Develop] | ||
client에서 생성했던 blob 파일을 다시 서버로 보내기 위해 ajax 의 POST request를 구현하던 중 문제가 발생. | client에서 생성했던 blob 파일을 다시 서버로 보내기 위해 ajax 의 POST request를 구현하던 중 문제가 발생. | ||
줄 222: | 줄 234: | ||
===== 16일 월요일 ===== | ===== 16일 월요일 ===== | ||
+ | |||
+ | [Develop] | ||
blob 객체를 장고 서버에 업로드하기 위해 기본적인 jquery ajax post 통신으로 시도해 봤지만 500에러 발생. | blob 객체를 장고 서버에 업로드하기 위해 기본적인 jquery ajax post 통신으로 시도해 봤지만 500에러 발생. | ||
줄 242: | 줄 256: | ||
===== 17일 화요일 ===== | ===== 17일 화요일 ===== | ||
+ | |||
+ | [Develop] | ||
구글링을 통해 XHR (XML Http Request) 방식으로 ajax 다시 보내봄. | 구글링을 통해 XHR (XML Http Request) 방식으로 ajax 다시 보내봄. | ||
줄 276: | 줄 292: | ||
===== 18일 수요일 ===== | ===== 18일 수요일 ===== | ||
+ | |||
+ | [Develop] | ||
FormData 객체가 잘 생성되고 있는지 확인하기 위해 append 함수로 string 값 넣어놓고 | FormData 객체가 잘 생성되고 있는지 확인하기 위해 append 함수로 string 값 넣어놓고 | ||
줄 336: | 줄 354: | ||
===== 19일 목요일 ===== | ===== 19일 목요일 ===== | ||
+ | |||
+ | [Develop] | ||
1개의 스레드를 돌려서 500개 mht 파일 생성하는 작업 완료. | 1개의 스레드를 돌려서 500개 mht 파일 생성하는 작업 완료. | ||
줄 362: | 줄 382: | ||
내일은 이 작업 마무리하고 논문 리딩 시작. | 내일은 이 작업 마무리하고 논문 리딩 시작. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 20일 금요일 ===== | ||
+ | |||
+ | [Develop] | ||
+ | |||
+ | 쿼리 만들어서 파일 경로 DB에 update하는 작업 진행하다 시간이 너무 많이 소요돼서 | ||
+ | |||
+ | 결국 django 에서 제공해주는 함수 이용하여 작업. | ||
+ | |||
+ | view 단에 setMhtFiles() 메소드 만들고 os 모듈 안에 있는 listdor() 함수 사용하여 | ||
+ | |||
+ | files 폴더 안에 모아놓은 모든 파일의 이름 빼옴. | ||
+ | |||
+ | 현재 디렉터리의 경로를 알기 위해 os.path.realpath() 함수 사용하였고, | ||
+ | |||
+ | 파일명 앞에 붙여서 500개의 절대경로 만들어냄. | ||
+ | |||
+ | 각각의 경로들을 DB에 update 하기 위해 모듈 클래스의 save() 함수 이용하여 작업 완료. | ||
+ | |||
+ | 추가 작업으로 클라이언트에서 시뮬레이션 할때마다 변수값들 바꿔주는 시간 줄이기 위해 | ||
+ | |||
+ | 소스코드 정리한번 하고, startDownload() 함수 안에 strat, end, numberOfTabs, | ||
+ | |||
+ | 파라미터 만들어서 쉽게 옵션 변경 가능하도록 함. | ||
+ | |||
+ | 마지막으로 클라이언트 프로그램 아이콘 만들어서 추가하는 작업 완료. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 23일 월요일 ===== | ||
+ | |||
+ | [Study] | ||
+ | |||
+ | 개발 잠시 접어두고, | ||
+ | |||
+ | 일단, 인공지능 공부를 하는 목적을 명확히 하자면 내 연구의 비교 알고리즘으로 | ||
+ | |||
+ | 구현할 필요가 있을 수 있고, 추후에 있을 CRC 과제에서 딥러닝을 사용한 개발을 | ||
+ | |||
+ | 진행 할 수 도 있기 때문. 그때 가서 공부하기에는 너무 늦기 때문에 지금부터 조금씩 | ||
+ | |||
+ | 진행해 놓을 계획. 공부할 material은 많이 있었지만 나는 실무 위주의 개념이 필요하므로 | ||
+ | |||
+ | 홍콩과기대 김성훈 교수님이 youtube와 github에 공유해 놓으신 강의로 결정. | ||
+ | |||
+ | 이 강의에는 tensorflow를 실제로 사용하는 예제가 있어서 좋음. | ||
+ | |||
+ | 오늘은 기본적인 개론과 tensorflow configuration 정도 진행하고, | ||
+ | |||
+ | machine learning 의 맨 처음으로 나오는 linear regression 은 수업시간에 하도 많이 했으므로 | ||
+ | |||
+ | 빠르게 진도 뺌. tensorflow 사용해보면서 호기심이 많이 생겼고, 이걸로 뭔가 만들어보고 싶다는 | ||
+ | |||
+ | 욕구가 생겼고 익숙하지는 않았지만 오랜만에 좌뇌를 많이 사용한 것 같아서 쫄깃한 재미가 있었음. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 24일 화요일 ===== | ||
+ | |||
+ | [Research] | ||
+ | |||
+ | 하루종일 논문세미나와 CRC 그룹1 미팅 및 회식하느라 개인시간 거의 없었음. 개발이나 공부는 거의 | ||
+ | |||
+ | 못하고 조만간 있을 논문세미나 준비를 조금 진행. 일단 논문 선정을 어떻게할까 고민했는데, | ||
+ | |||
+ | 비교 알고리즘으로 제시할 Automatic Web Content Extraction by Combination of Learning and Grouping | ||
+ | |||
+ | 논문을 발표할까 하다가,, Content extraction에서 scoring 방법론과 관련한 논문을 survey 해서 발표하는 | ||
+ | |||
+ | 것이 좋을것 같다고 판단. 이유는 어차피 내 연구를 진행하려면 조사해야하는 부분이기도 하고, (무엇보다 | ||
+ | |||
+ | 이 논문을 미리 발표하면 교수님의 기대치가 너무 높아질 것 같기때문에.) 내일은 괜찮은 논문 찾아서 | ||
+ | |||
+ | 서베이 진행해야 함. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 25일 수요일 ===== | ||
+ | |||
+ | [Research] | ||
+ | |||
+ | Web Content Extraction 에서의 Scoring 방법론 관련 논문을 찾아보니 생각보다 많이 나오지는 않음. | ||
+ | |||
+ | google scholar 에서 2개 정도 논문 찾음 | ||
+ | |||
+ | (1) Evaluating Web Content Extraction Algorithm | ||
+ | |||
+ | (2) Evaluation Content Extraction on HTML Documents | ||
+ | |||
+ | 첫 번째 논문은 스로베니아의 류블랴나 대학교에서 쓴 학위논문이고, | ||
+ | |||
+ | extraction algorithm을 평가하는 방법에 대해 서베이한다는 것처럼 말하고 있어서 기대했는데 | ||
+ | |||
+ | 막상 읽어보니 서베이라기보단 자신들의 한 가지 방법론을 제시하고 있고 다양한 알고리즘들에 대해서 | ||
+ | |||
+ | 실험해보는 내용임. 여기서 제안하고있는 평가 방법은 Longest Common Subsequence (LCS) | ||
+ | |||
+ | 즉 HTML code 끼리 text 일치성을 비교하겠다는 의미. python으로 구현했고, | ||
+ | |||
+ | 몇가지 아쉬웠던 점은 아이디어가 그닥 신선하지는 않았고, 정답 Set 만드는 과정이 명확하게 제시돼있지 | ||
+ | |||
+ | 않음. 그리고 여기서 제시하는 것처럼 단순히 text로만 비교를 한다면 생기는 논리적 모순이 발생할 것 같음. | ||
+ | |||
+ | 예를들어 비슷한 구조를 갖고있는 생뚱맞은 2개의 영역이 있다고한다면 그 2개는 코드가 비슷할테고 | ||
+ | |||
+ | 일치성이 높게 판단될 것. 단순한 LCS 비교로는 이러한 문제를 잡지 못할것임. | ||
+ | |||
+ | 영역과 면적을 비교한다던지 DOM Tree 를 비교하는 등 구조적인 특징을 잡아야 함. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 26일 목요일 ===== | ||
+ | |||
+ | [Research] | ||
+ | |||
+ | content extraction evaluating 논문 중 두번째 논문 읽음. | ||
+ | |||
+ | 이 논문은 독일의 마인츠 대학교에서 쓴 논문이고 content extraction 분야에서 유명한 논문들이 | ||
+ | |||
+ | reference 했음. 이전 논문에 비해서 좋았던 점은 정답 Set을 정한 기준과 방법에 대해 명확히 제시하고 | ||
+ | |||
+ | 있고, 자신들이 개발한 프레임워크를 설명하는 부분도 있음. | ||
+ | |||
+ | 아직 다 읽어보지는 못했지만 여기서는 어떤 아이디어를 냈나 대충 읽어보니 여기도 역시 | ||
+ | |||
+ | text 비교를 하는것 같음. 이전 논문처럼 LCS를 사용했는지는 아직 모르겠지만 비교 단위를 characters, | ||
+ | |||
+ | sequence of words, bag of words, set of words 등으로 분류하는것을 보아 LCS는 아닌것 같음. | ||
+ | |||
+ | text를 비교한다는 내용 보고 솔직히 기대는 안되지만 뒤에 실험부분이나 output format 같은 부분은 | ||
+ | |||
+ | 도움이 될 것 같음. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 27일 금요일 ===== | ||
+ | |||
+ | [Research] | ||
+ | |||
+ | Evaluation Content Extraction on HTML Documents 논문 읽음. | ||
+ | |||
+ | 어제 대충 읽어봤던대로 이 논문은 content extraction 알고리즘을 평가하는 방법론에 대해 제시하고 있음. | ||
+ | |||
+ | 인상깊었던 점은 date set을 저장하는 방식이 html 방식이였고, | ||
+ | |||
+ | 따로 만들었음. 그리고 정답 set을 정의하는 포맷은 text 형식이었음. recall과 precision을 계산하는 | ||
+ | |||
+ | metric이 text이기 때문에 정답 set 역시 text로 저장해도 무방함. | ||
+ | |||
+ | 나같은 경우에는 xpath로 저장했었는데 나도 만약 text 비교로 성능을 측정한다면 이와 같이 해도 | ||
+ | |||
+ | 좋겠다는 생각을 함. | ||
+ | |||
+ | 프레임워크의 아키텍쳐같은 경우는 내가 만들고 있는 방식이랑 거의 유사했음. 다만 이 논문에서는 | ||
+ | |||
+ | 알고리즘별로 연산시간도 뽑아내고 있으므로 단순한 server가 아닌 proxy server를 사용하고 있음. | ||
+ | |||
+ | baseline으로 제시한 알고리즘은 Plain, BTE, Crunch, DSC, LQF 로 총 5가지. | ||
+ | |||
+ | plain같은 경우는 저자가 proxy 서버에 남아있는 정보를 이용한다는 간단한 아이디어로 구현한것이고 | ||
+ | |||
+ | 나머지 4가지는 기존에 제시된 CE 알고리즘들임. | ||
+ | |||
+ | 성능은 데이터셋의 종류에 따라 제각각이지만 대부분의 경우에서 DSC가 높게 측정됨. | ||
+ | |||
+ | related work로 제시된 논문들은 몇가지 있었으나 딱히 흥미로운 것은 없었음. | ||
+ | |||
+ | 이 분야에서 성능을 측정하는 방법론에 대해 제시된게 거의 없는 것 같음. | ||
+ | |||
+ | 사실 이 논문의 저자도 CE 에서의 성능 측정을 IR 에서의 정보 검색률로 생각한 것임. | ||
+ | |||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 30일 월요일 ===== | ||
+ | |||
+ | 휴가 | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== 31일 화요일 ===== | ||
+ | |||
+ | 휴가 | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ |