티스토리 뷰

Python 라이브러리 활용(뉴스잼)

언론사(RSS) - > 기본적인 뉴스내용 -> RSS파싱 -> 문자 인코딩 문제 -> 자동화 / 전체 뉴스내용 (컨텐츠 파싱)
=> 데이터 저장
=> 형태소 분석 -> 데이터 구조화
=> 알고리즘
=> 시각화/검색


1. RSS == XML
=> urllib2/requests/mechanize
(requests는 method change)
import mechanize
browser = mechanize.Browser()
page = browser.open(url)
html = page.read()
인코딩에 문제가 있으면 이거를 사용...(2011까지만 개발...ㅠㅠ)

robobrowser
해당 CSRF를 제외시킬 Referer을 헤더에 넣어서 CSRF except

==> 브라우저 쓰듯이 해당 페이지에서 액션과 이동이 가능


2. pysipider
설치 후,
pysipider를 입력하면 URL에 접근 / 해당 URL에 대한 코드를 입력해서 자동화 시스템하기(몇 분 단위/텍스트/URL파싱가져오기)

3. feedparser
import feedparser
파씽해서 key/value으로 표현

인코딩 문제....
=> chardet (pip)
인코딩을 찾아낸다! (chardet.detect(u'asdasdas')) = > 인코딩 찾은 후, decode하면 됨

특수기호 변환 관련 인코딩
(unidecode)


4.BeautifulSoup

HTML a tag href 파씽
속도가 느려터짐...
(따라서 속도개선을 위해 lxml을 동시에 사용해야함)


5.pyparsing
정규표현식을 피해서 파씽할 수 있음


6.python-goose
(텍스트 중심으로 파씽하는....)
=> Text가 가장 많은 해당 영역의 텍스트만 받아옴.


7.newspaper
(python3에서만....)
쥬피터는 다중 커널 지원해서, 사용하면 됨!


//

데이터 저장은 mongoDB
pip install pymongo

(mongolab)은 무료! 테스트용으로 굿



//

한국어 형태소 분석하는 라이브러리
(Konlpy / umorpheme)
=> / http로 파씽하는거라 느림 / 따라서 도커를 이용해서...

텍스트 분석
(NLTK / textblob)


알고리즘(비슷한 뉴스, 뉴스 주제가 뭐야?)
LSI / NMF / LDA
1) LSI(잠재 의미 색인)
코사인 유사도(similarity) 단어-문서 행렬
SVD(특이값 분해) == 메트릭스 / Singular Value Decomposition
* 텍스트의 유사성 추론하는 알고리즘

정리 라이브러리(위 알고리즘을 쉽게 적용할 수 있는 라이브러리)
** gensim (TF-IDF)
=> topic modelling for humans

2)NMF(비음수 행렬 인수분해)
Non-negative matrix Facrotization
** numfa 라이브러리로 인수분해 가능

3)LDA(Latent Dirichlet Allo....)
=> gensim, pyLDAvis





<네트워크>
유사도 측정 : networkx 라이브러리
-> 겹치지 않게 노드를 보여주는 거는 (pynetviz)



<전달>
몽고디비 → 플라스크(엘라스틱 서치를 이용해서 빠르게 접근)
matplotlib / Seaborn 도 이용



저작자 표시 비영리 변경 금지
신고
댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
13,848
Today
4
Yesterday
10
링크
«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함