KU Open Source SW
[Assignment]
week 2 ~ week 8 : OpenSrcSW-ass/src/sw/simpleIR/
week 9 : OpenSrcSW-ass/python(week9-week14)/ or OpenSrcSW-ass/tree/python
week 10 - 14 : OpenSrcSW-ass/tree/python
- 폴더에 저장되어 있는 HTML 파일을 읽어온 후, 요구하는 양식에 따라 XML 파일로 저장하기.
- makeCollection.java
- $ java -cp jsoup-1.13.1.jar; kuir -c ./HtmlFiles
- collection.xml 파일은 ./data/collection.xml 에 저장함
- 저장되어 있는 collection.xml 을 읽고 kkma 를 이용하여 keyword 뽑아서 index.xml 만들기
- makeKeyword.java
- command line 으로 실행
- $ java -cp ./lib/kkma-2.1.jar; kuir -k ./data/collection.xml
- index.xml 파일은 ./data/index.xml 에 저장함
- 저장되어 있는 index.xml 파일로부터 index.post 파일 만들기
- index.post 는 inverted file 로, 단어 빈도수를 기준으로 가중치를 계산하여 만들기
- $ java kuir -i ./data/index.xml
- index.post 파일은 ./data/index.post 로 저장함
- HashMap 형태로 저장하는데, Key = 단어, value = 가중치 계산한 값. (단, 단어가 문서에 등장하지 않는 경우는 포함하지 않음)
- 저장되어 있는 index.post 와 collection.xml 를 이용해서 입력 query 와 문서의 유사도 계산 (Calcsim)
- searcher.java
- command line 으로 실행
- $ java -cp ./lib/kkma-2.1.jar; kuir -s ./data/index.post -q QUERY
- 유사도 상위 3개 문서 title 출력
- 예시: $ java -cp ./lib/kkma-2.1.jar; kuir -s ./data/index.post -q "라면에는 면, 분말, 스프가 있다."
- 결과:
- master 브랜치에 searcher.java 만들고 CalcSim 함수 수정 후 feature 브랜치와 Merge (conflict)
- feature 브랜치의 searcher.CalsSim() 을 InnerProduct() 로 변경하고 conflict 해결
- sercher.java
- InnerProduct() 를 이용하여 CalcSim 에서 코사인 유사도(cosine similarity) 계산
- command line 으로 실행
- $ java -cp ./lib/kkma-2.1.jar; kuir -s ./data/index.post -q QUERY
- 유사도 상위 3개 문서 title 출력
- (단, 유사도 0 인 문서는 출력하지 않는다. 또한, 모든 문서에서 유사도가 0 이면 "검색 결과가 없습니다." 출력)
- 예시: $ java -cp ./lib/kkma-2.1.jar; kuir -s ./data/index.post -q "라면에는 면, 분말, 스프가 있다."
- 결과: