from math import log10
from konlpy.tag import Okt
# =======================================
# -- TF-IDF function
# =======================================
def f(t, d):
    # d is document == tokens
    return d.count(t)

def tf(t, d):
    # d is document == tokens
    return 0.5 + 0.5*f(t,d)/max([f(w,d) for w in d])

def idf(t, D):
    # D is documents == document list
    numerator = len(D)
    denominator = 1 + len([ True for d in D if t in d])
    return log10(numerator/denominator)

def tfidf(t, d, D):
    return tf(t,d)*idf(t, D)

def tokenizer(d):
    #noun = okt.nouns(content)
    okt=Okt()
    def keyword_extractor(text):
        tokens = okt.phrases(text)
        tokens = [token for token in tokens if 1 < len(token) < 13]  # 한 글자인 단어는 제외 / 13자 이상인 긴 단어 제외
        count_dict = [(token, text.count(token)) for token in tokens]
        ranked_words = sorted(count_dict, key=lambda x: x[1], reverse=True)[:20]
        return [keyword for keyword, freq in ranked_words]
    return keyword_extractor(d)

def tfidfScorer(D):
    tokenized_D = [tokenizer(d) for d in D]
    result = []
    for d in tokenized_D:
        result.append([(t, tfidf(t, d, tokenized_D)) for t in d])
    return result



""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Data """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
invalid_key = ['학과','융합','공학','학부','전공','학생','대학', '마일', '마일리', '발생 즉시', '2021학년', 'KNU 나', '컴퓨터', '컴퓨터학부', '학년', '선도', '21', '강화', '즉시', '건강', '검진', '19 대응', '발생']

documents = [
    u"독서를 통해 우리 대학 학부생들의 자기주도 학습능력 향상을 도모하고, 도서관 이용 및  학술자료 활성화를 위하여 다음과 같이 다독자 선발을 시행하오니 많은 참여바랍니다.\
가. 선발기간: 2021. 3. 2.(화) ~ 2021. 7. 31.(토)\
나. 대상: 학부 재학생\
다. 시상\
1) 최우수상(1명): 도서관장상 및 100,000원 상당 상품권\
2) 우 수 상(5명): 도서관장상 및 50,000원 상당 상품권\
3) 장 려 상(20명): 30,000원 상당 상품권\
라. 선발 및 시상: 홈페이지를 통해 공지(2021년 8월중)\
마. 선발방법\
1) 선발기준에 따라 인쇄도서 및 e-Book 대출 실적이 우수한 학생을 선발\
2) 동점일 경우 인쇄도서 점수가 높은 대출자 우선 선발\
선발기준\
- 인쇄도서 대출 1권당 1점\
- e-Book 대출 1권당 0.3점\
(최대 100점까지 허용)\
- 독서리뷰 제출자 가산점(0.2점) 부여\
- 도서관 학술정보시스템 대출통계 기준\
제외대상\
- 직전 학기 다독상 수상자\
- 당일 대출/반납, 대출연장\
- 기간 내 장기연체자(10일 이상)\
- 자료 무단반출자, 자료 훼손자\
- 고의로 대출/반납을 반복하는 경우",

    u"‘2021학년도 1학기 첨성인 아너스 클럽 운영 계획’ 에 의거 해당 우수 학생들의 신청을  바랍니다.\
\
가. 운영 개요: 아래 첨성인(첨단, 성찰, 인성) 역량을 갖춘 우수 학생을 선발하여 학위수여식에서 인증서(총장 명의) 및 기념품(100만원 상당) 수여 ※학부과정 졸업예정자 대상\
모든 학생 대상의 졸업자격인정제가 아닌 우수 학생에 대한 보상 성격\
\
❍ (선발 기준) 아래 첨성인 역량을 갖춘 자(학부과정 졸업예정자 대상)\
- 첨성인 역량을 모두 충족하지 않아도 신청 가능\
\
역량\
세부 충족요건 및 제출 서류\
첨단\
(참의/융합)\
∙ 공모전 / 경진대회: 교외 대회만 인정하며(교내 행사 제외) 입상 실적(단순 참가 제외)\
∙ 논문 / 특허: 논문(학술대회 포함, 졸업논문 제외), 특허(출원 혹은 등록)\
∙ 자격증: 전공 관련 공인 자격증 취득 (소속 전공과 관련된 자격증만 인정)\
성찰\
(비판/탐색)\
∙ 인재개발원에서 운영하는 다음 프로그램 중 2개 이상 프로그램에 참여\
- (인증서, 참가증 등) 취업동아리 활동, 직무적성검사(NCS)대비 집중교육, 취업캠프, 현장실습교육과정, 진로탐색(설계) 프로그램, 멘토링 프로그램, 직업기초능력 향상 프로그램, 직무역량강화 프로그램, 진로취업상담 및 특강\
∙ 학습지원센터에서는 운영하는 다음 프로그램 중 2개 이상 프로그램에 참여\
- (인증서, 참가증 등) 대학생 핵심역량진단(K-CESA) 검사(’15 ~ ’17) 또는 첨성인 학습역량 진단 검사(’18~), 첨성인 학습 스터디, 첨성인 학습 포트폴리오\
인성\
(소통/책임)\
∙ 국내외 봉사활동(50시간 이상): YES시스템에 등록된 봉사활동 실적만 인정\
※ 재학 중 봉사활동 내역 중 미등록한 건이 있을 경우 신청기한 전까지 등록하여 신청\
∙ 국제교류처 주관 국제화 프로그램 중 2개 이상 참여\
- (인증서, 참가증 등) 교환학생, 글로벌챌린저, 복수학위, 해외어학연수, 해외인턴, 교내 국제화프로그램: 외국인학생 버디, 튜터, 국제학생대사, 경북대-미군캠프 프로그램 등\
∙ 공인 영어 성적 증명서 (본교 입학 후 취득한 성적)\
- 토플 IBT 80점 혹은 토익 820점 혹은 텝스 700점 이상* (TOEIC Speaking, OPIc 등 다른 영어시험도 인정)\
* (환산근거) CEFR 성적변환표, TEPS Conversion Table 등 참고\
※ 공인영어 성적 외 제2외국어 성적 증명이 가능할 경우 제출 요망 (본교 입학 후 취득한 성적)\
기타\
∙ ① [붙임] 첨성인 아너스 클럽 신청서         ∙ ② 신청 학생 개인의 학업성적표\
※ 상기 요건은 2021-1학기 학부과정 졸업예정자에게 적용, 2021-2학기에는 요건이 변경될 수 있음\
※ (참고사항) 향후 첨성인 역량별 교양교과목 최소 이수 학점 설정 예정(2021학년도 입학생부터 적용)\
\
신청기한 :  2021.07.01 (목) ~ 2021.07.07  (수)    까지\
\
자세한 내용은 첨부 파일을 참좋하여 주시기 바랍니다 .\
붙임1. 2021학년도 1학기 첨성인 아너스 클럽 운영 계획",
u"2021년 지역선도대학육성사업 공공기관 오픈캠퍼스 프로그램 참가학생 모집합니다.\
많은 참여 바랍니다.\
\
■ 참가 신청 안내\
* 참가 신청 기간: 2021. 6. 11.(금) 까지\
* 온라인 참가 신청\
▶ 경북대: 경북대학교 홈페이지 - 학생포털 아이콘 링크: https://my.knu.ac.kr/ - 포털 사이트 로그인\
상단 메뉴 비교과 교육과정 ☞click - KNUCUBE 비교과 교육과정통합관리시스템☞click -\
상단 메뉴 역량개발☞click - 비교과 프로그램 ☞click - \"해당 세미나 제목\" ☞click - \"해당 회차\" ☞click - \"신청\"☞click-\
개인정보 수집.이용 동의서 - 강좌신청 팝업 - 휴대폰, 이메일주소, 졸업예정시점(예시: 2021년 8월) 작성- 장애학생 도움 동의 여부 선택 -\
강좌 신청 후 무단 불참시 규정에 따라 향후 강좌 신청에 제재를 받을 수 있음을 동의합니다 선택 - \"신청\" ☞click\
▶ 타대학: https://forms.gle/x8MxrFwCCJC45ihs6\
※ 이미 구글로 신청하신분들은 다시 KNUCUBE 비교과 교육과정통합관리시스템으로 신청하실 필요없습니다.\
■ 지역선도 마일리지 지원대상\
* SW전공: 컴퓨터학부\
* 연계전공 참여학과: 건설IT(토목공학과), 미디어아트(미술학과), 빅데이터(수학과, 통계학과), 핀테크(경영학부), IT융합(전기공학과, 전자공학부)\
* 융합전공 참여학과: 비즈니스인텔리전스융합(경영학부, 통계학과), IT정치융합(정치외교학과), 디지털정보관리융합(문헌정보학과), 심리정보융합(심리학과),\
생물정보학융합(응용생명과학부 환경생명화학전공), 스마트팜공학융합-농토(농업공학, 농업토목공학), 스마트팜공학융합 - 농기(생물산업기계공학과)\
\
■ 문의: 소프트웨어교육센터 950-7670, ksy87@knu.ac.kr",
u"대구광역시와 (재)대구테크노파크에서는 대학(원)생 주도의 연구동아리를 발굴 육성하고\
아이디어 구상 및 실현과 관련된 문제를 기업과 함께 해결하는 2021년 지역밀착형 연구활동 지원사업을 시행합니다.\
가. 공모 사업명 : 2021년 지역밀착형 연구활동 지원 사업\
나. 접수 기간 : 2021.04.15.(목) ~ 2021.04.28.(수) 17:00까지  (약 2주간)\
다. 신청 방법 : 이메일 접수(ksj2223@knu.ac.kr)\
라. 신청 자격 및 기타 세부내용: [붙임1, 2] 참고\
\
붙임  1. 2021년 지역밀착형 연구활동 지원 사업 공고문 1부.\
2. 2021년 지역밀착형 연구활동 지원 사업 신청서 및 별지 양식 1",
u"제19회 임베디드SW경진대회를  알려 드립니다.\
\
올해 경진대회는 총 6개 부문으로 진행되고 있습니다.\
LG전자가 후원하는 [webOS 부문]과 CNCITY에너지가 후원하는 [4차산업 기반 에너지 부문] 은 기업에서 후원하는 부문으로,\
\
후원기업 실무자가 직접 교육을 진행하고, 후원기업에서 해당 부문 수상자를 대상으로는 취업 연계에도 의지를 보이고 있습니다.\
\
관련해서 대학생들에게 좋은 기회여서 소개드립니다.\
자유공모를 제외한 다른 부문은 6월21일(월)까지 접수이므로, 관심있는 학생들의 참여를 바랍니다 .\
\
http://www.eswcontest.or.kr/\
\
또한 V-log이벤트와 댓글이벤트를\
진행중이니 관심있는 학생들의  참여 바랍니다 .\
\
임베디드SW경진대회 사무국\
02-2046-1436\
\
contest@fkii.org\
http://www.eswcontest.or.kr/",
u"2021년도 ICT 산업기능요원(병역대체복무제도) 실태조사(대학생) \
2021년도 ICT 산업기능요원(병역대체복무제도) 실태조사(대학생) \
2021년도 ICT 산업기능요원(병역대체복무제도) 실태조사(대학생) \
가. 조사명: 2021년 ICT 산업기능요원 실태조사나. 조사기간: 2021년 6~7월다. 조사대상: 고등학생(마이스터고ㆍ특성화고) 및 이공계 대학생라. 조사내용: 산업기능요원 지원의향, 복무희망 시기ㆍ분야ㆍ연봉 등마. 관련문의: 최은주 팀장  02-3215-2643바. 이메일 회신: survey-kedkorea@naver.com\
\
​본 조사의 대상자는 남학생 1,2학년 입니다.(군미필자만 가능합니다)\
작성자 인적사항은 통계목적과 조사의 신뢰를 위함으로 꼭 빠짐없이 작성바랍니다.",
u"2021년 KNU 전공알림단 모집 \
2021년 KNU 전공알림단 모집 \
2021년 KNU 전공알림단 모집 \
본교 재학생들이 고교현장에 방문하여 전공을 소개하는 ‘2021년 KNU 전공알림단’의 단원을 아래와 같이 모집합니다.\
가. 접수기간: 2021. 4. 15.(목) ~ 2021. 4. 30.(금) 17:00까지\
\
나. 지원대상: 본교 2~3학년 재학생(휴학생 포함) 38명 내외\
다. 주요내용: KNU전공알림단을 희망하는 고교에 방문하여 우리대학 전공 소개 및 안내\
\
라. 지원방법: 이메일(tjdfud324@knu.ac.kr)로 지원서 접수 (붙임2 참조)\
문의처: 입학처 입학과 입학2팀 김도훈(☎.053)950-2785)",
u"??\
실습용 노트북 18, 19학번 글솝 편입생, 전과생 대상 대여 안내\
신청 및 수령기간 : ~2021. 3. 16.(화) 오후 5시까지 (해당 기간 종료 시 상황에 따라 재 공지 예정)\
신청대상 : 18, 19학번 글솝 편입생, 전과생(재학생에 한함) *휴학생 등 현재 재학이 아닌 학생은 대여가 불가합니다.\
신청방법 : lej205@knu.ac.kr , 이메일로 신청바랍니다. 회신 이메일로 대여 가능 여부 및 수령 날짜 알려드립니다.\
수령장소 : 공과대학 9호관 413호 프라임사업단 사무실(이은주 선생님)\
실습 노트북 종류 : 삼성 노트북 (맥북아님)\
\
※ 실습용 노트북 남은 수량에 한해서 대여 예정 , 선착순 대여 예정 , 남은 수량 없을 시 대여 불가(양해바람)",
u"⚬  공모주제  - 한국사회보장정보원이 제공중인 사회보장정보 및 공공·민간데이터를 활용한 창업기획 및 사업화 아이디어⚬  시상내역  - 대상  700만원  (1팀)  - 최우수상  500만원  (2팀)  - 우수상  300만원  (2팀)  - 장려상  100만원  (6팀)  - 입선  30만원  (10팀)⚬  응모일정  - 모집공고 : ~2021.05.31.(월)  - 서류심사 : 2021.06.04.(금)  - 인터뷰 : 2021.06.17.(목)  - 발표심사 : 2021.06.24.(월)  - 시상 : 7월초  ⚬  제출방법  ① 홈페이지(www.ssis.or.kr)에서 공모전 양식 다운로드 및 작성   ② 이메일 제출 (data@ssis.or.kr)⚬  문의처  - 한국사회보장정보원 사회보장데이터연구소 사회보장데이터센터  (02-6360-4602 / data@ssis.or.kr)\
- 한국사회보장정보원이 제공중인 사회보장정보 및 공공·민간데이터를 활용한 창업기획 및 사업화 아이디어\
⚬  시상내역\
- 대상  700만원  (1팀)\
- 최우수상  500만원  (2팀)\
- 우수상  300만원  (2팀)\
- 장려상  100만원  (6팀)\
- 입선  30만원  (10팀)\
\
⚬  응모일정\
- 모집공고 : ~2021.05.31.(월)\
- 서류심사 : 2021.06.04.(금)\
- 인터뷰 : 2021.06.17.(목)\
- 발표심사 : 2021.06.24.(월)\
- 시상 : 7월초\
⚬  제출방법\
① 홈페이지(www.ssis.or.kr)에서 공모전 양식 다운로드 및 작성\
② 이메일 제출 (data@ssis.or.kr)\
\
⚬  문의처\
- 한국사회보장정보원 사회보장데이터연구소 사회보장데이터센터  (02-6360-4602 / data@ssis.or.kr)"
]
