일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 멋사 AI 교육
- 유니오르
- 영화AI추천
- 멋사 AI
- til
- 멋쟁이사자처럼 k-digital
- 인터뷰
- AI 국비지원
- 리뷰
- 멋쟁이사자처럼
- AI 코딩
- 멋사 전액국비지원교육
- 추천프로젝트
- k 디지털
- 멋사 국비지원과정
- 이렇게 그녀를 잃었다
- 멋사 k 디지털
- 문학동네
- 홍명희 임꺽정
- 영화추천시스템
- 비전공자 코딩교육
- 민음사
- 비전공자 멋쟁이사자처럼
- 멋쟁이사자처럼 전액국비지원
- k 디지털 후기
- 가브리엘마르케스
- 멋쟁이사자처럼 k 디지털
- 비전공자 코딩
- 인생책짧은글
- 인생책
- Today
- Total
글쟁이, 코딩한다
1218 / K_digital 10일차 / 파이썬(nltk, TF-IDF) 본문
0.
주일이 끝났다. 주말에는 쉬고, 복습하고, 코드를 짜는 것이 가능할 것 같았던 부분을 만져보자.
하루를 풍성하게 구성하기 위해서는 하루하루 가장 많은 시간을 쏟는 일에서 활력을 잃지 말아야한다.
기자 일을 하는 동안에는 그 기사 쓰기, 취재 자체에 대한 흥미를 너무 빠르게 잃었다. 흥미 없는 시간은 죽어버린다. 대부분 시간이 죽어버리니, 남은 시간들도 살아나기가 어려웠다.
요즘은 수업이 그 자리를 대체한다. 수업에 대한 흥미를 잃어버리면 저녁 시간도, 주말도 모두 죽어버리고 말테다.
그러니 수업 시간을 현명하게 헤쳐나갈 방법을 고민할 필요가 있다. 오늘은 낮잠과 커피가 도움이 됐다. 중간중간 한눈팔기도 좋았다. 모르겠으면 넘기자. 다음에 알면 될 거다.
자연어 데이터 분석
# nltk(Natural Language ToolKit) / 텍스트 데이터 처리를 돕는 패키지
1) 텍스트 데이터를 str 자료형으로 준비
2) 형태소 분석(Tokenize) : 문장을 쪼갤 수 있는 최소 단위까지 나눠내기
# nltk.word_tokenize( )
3) 품사 표시(POS Tagging) : 명사, 동사 등 형태소의 품을 표기
#nltk.pos_tag( )
4) 불용어 제거(Stopwords 제거) : 데이터 분석 시 특별한 의미가 없는 조사, 대명사 등을 제거
#from nltk.corpus import stopwords => token_list = stopwords.words(' 지원언어(ex. english)' )
=> 리스트로 나온다. append, remove 사용 가능 # 완전한 불용어 사전은 없기 때문에 결과를 확인하고, 필요한 바를 리스트에 추가하자. #한국어 불용어사전은 아직 없다.
5) 단어 갯수 카운팅, 단어 사전 생성
#from collection import counter => Counter( ) => {단어 : 출현횟수, ...}
# Counter는 클래스 #dict 형태의 클래스, word박스 생성
# Counter 클래스 내 가장 많이 나온 것 찾기 함수 .most_common( )
#nltk.Text( )
# Text : 하나의 자료형이자 클래스. 단어 대상 여러 함수들을 제공
Text가 가진 기능들
# 비슷한 단어를 확인하기 => .similar( )
# 연어(Collocation)- 함께 나타나는 단어들 확인하기 => .collocations( )
# 꺾은 선 그래프로 나타내기 => .plot( )
6) + 데이터 시각화
7) + 머신러닝, 딥러닝에 도입
문서간 유사도 확인
1) 비교할 텍스트 파일을 str 자료형으로 변환
2) TF-IDF 관련 도구 모음을 꺼내 두 텍스트 파일에 함수를 적용한다.
#TF-IDF
많은 문서에 공통으로 들어 있는 단어는, 변별력이 떨어진다 보고 가중치를 줄이는 방식. 문서를 벡터 공간으로 표현할 때 idf를 적용한다.
TF == 단어의 출현 횟수, IDF == 단어의 유니크함이라고 이해해보자.
#IDF = (전체 문서 수/ 1+단어가 나오는 문자 수)에 로그를 씌운다. 즉, 모든 문서에 자주 출현하는 단어에는 작은 수를 곱하고, 일부 문서에만 나오는 단어는 큰 값을 곱해 두 단어의 중요도를 비슷하게 맞추는 단계다.
3) 코사인 유사도를 비교해 유사도를 확인한다.
# 두 문서에서 나온 단어 빈도를 비교하기 위해서는 코사인 유사도를 쓴다. (비슷하면 1, 독립적이면 0, 반대면 -1) #벡터로 단어 빈도를 사용하는 방식. #코사인 유사도 함수 => from sklearn.metrics.pairwise import cosine_similarity
#아직 확실치 않은 부분이니 꾸준히 수정, 추가할 예정 #수학은...
HTTP Request Method
알아두면 좋을 방식들
- get 데이터를 요청. http를 다 달라
- post 데이터를 제출하고 이에 응답해달라
- put 데이터를 생성하기 위한 요청방식
- delete 지정한 데이터를 삭제하기 위한 요청
오늘의 TML
# lemmatization 복수, 과거형 등을 없애고 원형(사전 기본형)으로 바꿔준다. (영어에서만 가능)
# corpus : 말뭉치(복수형은 corpora) : 많이 쓰는 말들을 모아둔 큰 덩어리
# 어떤 자료형으로 바꿀때 -> 자료형 이름을 함수로 활용하자.
# 사용자가 브라우저를 통해 보낸 요청인지, 코드로 보낸 요청인지, 서버가 알아낸다. => 서버 보안으로 차단당한다. 이럴 때는 코드를 수정해 크롬브라우저의 Header 정보를 추가해준다. (가짜 신분증을 보낸다.)
# 의미 없는 텍스트들은 replace( )를 이용해 날려보자.
# 이스케이프 문자 : \' \" \=/ 기호들의 기능을 잃고 그저 문자로만 작용하게 해준다.
오늘의 (다음) 공부할 것
# 정규표현식(re)
# 검토할 것 : 파일 텍스트를 꺼내서 하나의 리스트로 만드는 순서
# 파일간 유사도는 추후 다시 확인해보자.
오늘의 코딩 생각
중간중간 잘 확동하는지 확인 => 작은 단계에서부터 점진적으로 넓은 단계로 갈 것
'나는 코딩도 한다 > TIL' 카테고리의 다른 글
1222 / K_digital 12일차 / 파이썬(크롤링, 데이터 전처리) (0) | 2020.12.22 |
---|---|
1221/ K_digital 11일차 / 파이썬(크롤링) (3) | 2020.12.21 |
1217 / K_digital 9일차 / 파이썬(크롤링) (0) | 2020.12.17 |
1216 / K_digital 8일차 / 파이썬(pandas) (0) | 2020.12.16 |
1215 / K_digital 7일차 / 파이썬(기초함수, pandas) (0) | 2020.12.15 |