[Python/test]Alien dictonary. 단어모음을 보고 알파벳 순서 예측하기
2020. 2. 16. 16:47
알고리즘 문제
#Problem_eng While you were traveling in a spaceship, you visited an alien planet. Surprisingly in alien languages, they also use lowercase letters in English, but perhaps in a different order. Looking at the set of words you got from studying alien languages, you try to make an alien dictionary. You first want to define what order their alphabet is in. What kind of methods should you use? #문제_한..
[Python/NLP]문서 간 코사인 유사도에 기반한 '유사 게시물 추천 시스템' 만들기(pandas, scikit-learn, tf-idf)
2020. 2. 5. 23:40
Data/ML
2020/01/11 - [Python 3/Natural Language Processing] - [python/NLP]웹 크롤링(crawling) 심화 - Riss 논문 검색 데이터를 csv파일로 저장하기 [python/NLP]웹 크롤링(crawling) 심화 - Riss 논문 검색 데이터를 csv파일로 저장하기 [Python]자연어 처리를 위한 데이터 수집 웹 크롤링-2(crawling-2) list/str 자료형의 특징 및 re(정규화) 2020/01/05 - [Python 3/Natural Language Processing] - 크롤링(crawling) 크롤링(crawling) NLP를 위해.. leo-bb.tistory.com 여태까지 다양한 사이트의 메타 데이터 중 필요한 데이터만 얻어오는 크..
[Python/NLP]WikiExtractor를 이용한 위키덤프(Wiki dump)파싱 for Mac/window
2020. 1. 23. 20:32
Data/Data Engineering
기초적인 자연어 처리를 위해 데이터를 수집하는 경우 신문기사와 더불어 위키 덤프(wiki dump)를 많이 활용합니다. 오늘은 위키덤프를 다운로드 받고 파싱하여 txt형태로 저장하는 방법을 소개합니다. 1. 한글 위키 덤프 파일 다운로드 아래 링크를 통해 내용만 담긴 가장 최신 데이터를 받으실 수 있습니다. http://dumps.wikimedia.org/kowiki/latest/kowiki-latest-pages-articles.xml.bz2 다른 한글 위키 덤프 파일의 경우 아래 링크에서 받으실 수 있습니다. https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9..
[python]웹 크롤링(crawling) - Riss 논문 검색 데이터를 csv파일로 저장하기
2020. 1. 11. 14:35
Data/Data Engineering
다중 스레드를 활용한 Riss 논문 데이터 크롤러에 관한 링크입니다. [python]파이썬 동시성/비동기 프로그래밍 5. 활용 예시 Riss Crawler 만들어서 Riss 논문 데이터 다운로 파이썬 동시성/비동기 프로그래밍 4. concurrent.futures [Python]파이썬 동시성/비동기 프로그래밍 4. concurrent.futures 파이썬 동시성/비동기 프로그래밍 3. GIL(Global interpreter Lock) [Python]파이썬 동.. leo-bb.tistory.com 현 문서와의 차이점 1. 동시성을 이용해 속도 증가 2. 쉬운 사용법과 간결함 3. 비제한적 크롤링에 관한 전반적인 방법은 이전 글을 참고해주시기 바랍니다. Basic Riss crawl 어떤 목적을 가지고 연..
[Python]자연어 처리를 위한 데이터 수집 웹 크롤링-2(crawling-2) list/str 자료형의 특징 및 re(정규화)
2020. 1. 6. 22:19
Data/Data Engineering
2020/01/05 - [Python 3/Natural Language Processing] - 크롤링(crawling) 크롤링(crawling) NLP를 위해 데이터를 수집하는데 있어 우리는 많은 데이터를 인터넷을 통해 구하게 됩니다. 그러한 데이터의 양이 적당히 적은 수준이라면 충분히 반복작업을 통해 사용자가 직접 데이터를 수집할 수 있습니다. 그.. leo-bb.tistory.com 읽으시기 전에 이전 글을 참고하시기 바랍니다. 이전에 추출된 데이터를 살펴보면 두가지 문제를 확인할 수 있습니다. 1. 기사 초두 및 마지막 부분에 광고 삽입. 2. 특수문자 등 불필요한 내용이 본문에 섞여있음. 기사의 html을 다시 확인해보면 본문이 나오기 전에 각종 광고 배너에 대한 class 및 태그가 먼저 등장..
[Python]자연어 처리를 위한 데이터 수집 웹 크롤링-1(crawling)
2020. 1. 5. 20:34
Data/Data Engineering
NLP를 위해 데이터를 수집하는데 있어 우리는 많은 데이터를 인터넷을 통해 구하게 됩니다. 그러한 데이터의 양이 적당히 적은 수준이라면 충분히 반복작업을 통해 사용자가 직접 데이터를 수집할 수 있습니다. 그러나 그 양이 방대해지는 경우 단순히 데이터 수집에만도 수많은 시간 투자가 요구됩니다. 이렇게 Web상에 존재하는 Contents를 수집하는 작업을 크롤링(crawling)이라 합니다. 본문에서는 파이썬을 통해 이러한 크롤링을 효율적으로 수행하는 방법을 소개합니다. 예시 코드는 매경스포츠(MKsport) 사이트에서 NBA를 검색한 결과의 기사 본문을 크롤링 하는 코드입니다. 오늘 예제에서는 beautifulsoup4 라이브러리와 request 라이브러리가 필요합니다. from bs4 import Bea..
[Python]자연어 처리를 위한 정규화 방법 - 어간추출(stemming)
2020. 1. 5. 19:49
Data/Data Engineering
토큰화와 클렌징을 통해 어느 정도 데이터를 분류하였다면, 정규화를 통해 전체 데이터의 수를 줄일 수 있습니다. NLP에서 정규화를 설명할 때 가장 자주 등장하는 예시가 be 동사입니다. be동사는 is, are, am 등 사용할 때는 다양하게 나타나지만 실질적인 의미는 'be'로 볼 수 있습니다. 따라서 주어진 데이터 내에서 be동사로 표현되는 모든 단어를 개별 데이터로 보는 것이 아닌 be라는 1개의 데이터로 취급하게 되면 전체 데이터의 총량이 감소하게되며 이러한 작업을 정규화라 합니다. 본문에서는 porter알고리즘과 lancaster알고리즘을 통해 어간을 추출하는 방법을 소개합니다. 다만 어간 추출 자체가 정교한 작업은 아닙니다. 설정되어 있는 규칙에 의해 단어를 분리하기 때문에 분리된 단어는 실제..