자연어처리 자연어는 자연 언어라고도 부르며 사람들이 쓰는 언어활동을 위해 자연히 만들어진 언어를 의미한다. 자연어 처리는 컴퓨터가 인간의 언어를 이해하고 해석 및 생성하기 위한 기술을 의미한다. 자연어 처리 모델을 개발하기 위해서는 모호성, 가변성, 구조 문제를 해결해야 한다. 위와 같은 문제를 이해하고 구분할 수 있는 모델을 만들기 위해서는 말뭉치(Corpus)를 일정한 단위인 토큰(Token)으로 나눠야 한다. 말뭉치는 뉴스 기사, 사용자 리뷰 등에서 목적에 따라 구축되는 텍스트 데이터를 의미한다. 토큰은 개별 담어나 문장부호 같은 텍스트를 의미하며 말뭉치보다 더 작은 단위다. 말뭉치를 토큰 단위로 나누는 것을 토큰화라고 한다. 토큰화를 위해 토크나이저라는 것을 사용한다. 이 과정을 익히기 위해 파이..
프로그래머스 코딩테스트 입문 100문제 풀이 완료 ! 코딩 기초 트레이닝 문제로 파이썬 언어를 다시 익힌 후 코딩테스트 입문 문제를 통해 알고리즘 풀이에 대한 감을 익혔다. 이제 '이것이 코딩 테스트다'라는 도서를 통해 그리디, 구현, 정렬, 등의 유형별 알고리즘 풀이 방법을 공부할 예정이다.
1. 문자열 밀기 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120921 - 구현 코드 def solution(A, B): for i in range(len(A)): if A == B: return i A = A[-1] + A[:-1] return -1 2. 종이 자르기 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120922 - 구현 코드 def solution(M, N): return 0 if M and N == 1 else (M-1) + M * (N-1) 3. 연속된 수의 합 - 문제 링크 https://school.programmers.co.kr/le..
1. 특이한 정렬 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120880 - 구현 코드 def solution(numlist, n): distance = [abs(x - n) for x in numlist] sorted_nums = sorted(zip(distance, numlist), key=lambda x: (x[0], -x[1])) return [num for _, num in sorted_nums] 2. 등수 매기기 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120882 - 구현 코드 def solution(score): avg = [sum(n)/2..
1. 저주의 숫자 3 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120871 - 구현 코드 def solution(n): answer = 0 i = 1 while n: if i % 3 and '3' not in str(i): n -= 1 i += 1 answer = i - 1 return answer 2. 평행 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120875 - 구현 코드 def solution(dots): [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] = dots answer1 = ((y1-y2)*(x3-x4) == (y..
1. 숨어있는 숫자의 덧셈 (2) - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120864 - 구현 코드 import re def solution(my_string): return sum([int(num) for num in re.findall(r'\d+', my_string)]) 2. 안전지대 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120866 - 구현 코드 def solution(board): n = len(board) safe_count = 0 for i in range(n): for j in range(n): if board[i][j] == 1: ..
1. 직사각형 넓이 구하기 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120860 - 구현 코드 def solution(dots): dots.sort() return (dots[2][0] - dots[0][0]) * (dots[1][1] - dots[2][1]) 2. 캐릭터의 좌표 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120861 - 구현 코드 def solution(keyinput, board): answer = [0, 0] for i in range(len(keyinput)): if keyinput[i] == 'left' and answer[0] ..
1. 7의 개수 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120912 - 구현 코드 def solution(array): return str(array).count('7') 2. 잘라서 배열로 저장하기 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120913 - 구현 코드 def solution(my_str, n): return [my_str[i:n+i] for i in range(0, len(my_str), n)] 3. 중복된 숫자 개수 - 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/..