자연어처리(73)
-
Language Modeling
Language Model(=LM) : 문장 또는 단어의 연쇄의 확률을 계산하는 것 1) Chain Rule 2) Markov Assumption (ex) Unigram Model (ex2) Bigram Model Bigram의 Maximum Likelihood Estimate 이러한 LM의 문제점 1) 언어는 long distance dependency : 한 단어로부터 엄청 멀리 있는 단어에게도 영향을 받는다 2) 일반화 능력이 부족하다 : training data와 test data에 쓰이는 단어들이 같아야만 성능 좋음, 유의어 고려 못 함 이에 대한 해결 방법 1) Add-one (Laplace) Smoothing : 모든 단어를 한 번 더 본 셈 친다 * N-gram처럼 0이 너무 많은 분야에선..
2019.12.04 -
Minimum Edit Distance
Edit Distance : 한 스트링이 다른 스트링으로 되기까지 필요한 editing operation의 최소 횟수 editing operation : insertion(1), deletion(1), substitution(2) (괄호 안은 각 operation의 cost, Levenshtein) * Levenshtein은 substitution의 cost를 2로 본다 ∵ insertion(1) + deletion(1) = substitution(2) 모든 distance 계산하기 어려움. 그래서 Dynamic Programming 도입 Dynamic Programming - 복잡한 계산 = subproblems를 합쳐서 구해가기 - bottom-up 방식 예를 들어, INTENTION을 EXECUTI..
2019.12.04 -
넷플릭스/네이버 시놉시스 어휘 단계 분석하기
같은 영화/드라마에 대한 넷플릭스와 네이버의 시놉시스를 크롤링해 이들의 문체 차이를 분석하려 한다. 이번엔 사용한 어휘의 단계를 비교해볼 것이다. 어휘 단계는 국립국어원이 제공한 '한국어 학습용 어휘 목록' 파일을 참조했다. https://www.korean.go.kr/front/etcData/etcDataView.do?mn_id=46&etc_seq=71 국립국어원 축소 확대 기타 자료 상세보기 한국어 학습용 어휘 목록(엑셀 파일) 담당부서 한국어진흥과 등록일 2003. 6. 4. 조회수 52218 한국어 학습용 어휘 목록 국립국어연구원에서 2003년 5월에 발표한 한국어 학습용 어휘 목록입니다. 1단계 982개, 2단계 2,111개, 3단계 2,872개, 총 5,965개 단어가 포함되어 있습니다. 전체..
2019.11.11 -
넷플릭스/네이버 시놉시스 품사 분석하기
넷플릭스와 네이버에서 203개 드라마, 932개 영화에 대한 시놉시스를 크롤링했다. 이제 각 시놉시스에 특정 품사가 얼마나 많이 쓰였는지 알아보려고 한다. PCA 분석도 하려면 다음과 같은 형식의 데이터를 만들어야 한다. 미디어 명사 동사 ... 영화 제목1 네이버 XXX ZZZ ... 영화 제목2 넷플릭스 YYY III ... 우선 크롤링한 데이터에서 시놉시스에 해당되는 칼럼만 불러온다. 모든 시놉시스의 품사를 분석하기 전에 하나의 시놉시스만 분석해본다. from konlpy.tag import Kkma kkma = Kkma() kkma.pos(df['desc'][0]) [('전도', 'NNG'), ('유망', 'NNG'), ('하', 'XSV'), ('ㄴ', 'ETD'), ('의과', 'NNG'), ..
2019.11.04 -
The Language the Gets People to Give: Phrases that Predict Success on Kickstarter
이 논문은 pdf로 공개되어 있다. http://comp.social.gatech.edu/papers/cscw14.crowdfunding.mitra.pdf 미국의 크라우드펀딩 사이트인 킥스타터(Kickstarter). 이곳에서 45,810개의 크라우드 펀딩 프로젝트를 수집했다. 펀딩 성공 프로젝트는 23,604개(51.53%), 실패 프로젝트는 22,206개(48.47%). 9M개의 구문 + 59개의 언어 외 변수를 분석하여 어떤 변수가 펀딩의 성공 여부를 잘 예측하는지 알아본 논문이다. * 구문은 프로젝트 설명 글의 unigram, bigram, trigram을 이용했다. * 일반화를 위해 특정 카테고리에만 많이 등장하는 구문은 뺐다. 13개의 카테고리 모두에 나타나는 구문만 분석했다. * 킥스타터에만..
2019.10.06 -
텀블벅 후원에 성공하려면 프로젝트 이름을 어떻게 지어야 할까? (2)
성공/실패한 텀블벅 프로젝트 이름을 모두 수집했다. 이제 문장구조/사용한 문장부호의 종류를 분석해보려 한다. 우선 수집한 프로젝트 이름이 있는 텍스트 파일을 불러오고 with open('fail.txt', 'r', encoding='UTF8') as f: fail_line = f.read().splitlines() 중복된 이름을 제거한다. fail_line = set(fail_line) len(fail_line) # 중복 제거 그리고 Komoran으로 품사 태깅을 해준다. from konlpy.tag import Komoran tagger = Komoran() tagged_f = [tagger.pos(fl) for fl in fail_line] 만만한 문장부호 먼저 분석해주면 f_punct = [] fo..
2019.09.30