[Python/LeetCode]코딩테스트 준비를 위한 파이썬 알고리즘 문제 3.longest substring without repeating characters 해설(medium level)
2020. 1. 18. 18:10
알고리즘 문제
문제 3. longest substring without repeating characters Given a string, find the length of the longest substring without repeating characters. Example 1:Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:Input: "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Example 3:Input: "pwwkew" Output: 3 Explanation: The answer is "wke", with ..
[Python/LeetCode]코딩테스트 준비를 위한 파이썬 알고리즘 문제 1.twoSum 해설(easy level)
2020. 1. 15. 00:06
알고리즘 문제
문제 1. twoSum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. int 자료형으로 구성된 list의 요소끼리 서로 더했을 때 target이 되는 경우를 찾고, 해당하는 값의 index를..
[Python/NLP]파이썬을 이용해 웹문서(HTML)를 PDF로 변환하기
2020. 1. 14. 22:43
Data/Data Engineering
웹문서를 PDF로 변환해 저장해야할 때가 있습니다. 이럴때를 위해 준비된 Python 라이브러리를 소개합니다. import pdfcrowd import sys 오늘 사용될 라이브러리는 pdfcorwd 로 https://pdfcrowd.com/doc/api/html-to-pdf/python/자세한 사용법은 하단 링크를 확인하시면 됩니다. HTML to PDF API for Python | Pdfcrowd top Set the output page top margin. Can be specified in inches (in), millimeters (mm), centimeters (cm), or points (pt). Default: 0.4in right Set the output page right mar..
[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알고리즘을 통해 어간을 추출하는 방법을 소개합니다. 다만 어간 추출 자체가 정교한 작업은 아닙니다. 설정되어 있는 규칙에 의해 단어를 분리하기 때문에 분리된 단어는 실제..