NLP

NLP를 공부하는데 도움되는 사이트 모음

자연어 처리 관련 자료

  • 자연어 처리에 대해 공부할 수 있게 도움이 될 만한 사이트

자연어 처리 강의

자연어 처리 오프라인 스터디 모임

온라인 참고 자료

파이썬 정규 표현식 라이브러리 re

파이썬 정규 표현식

. 줄 바꿈을 제외한 모든 문자
^ 문자열의 시작
$ 문자열의 끝
* 앞에 있는 문자가 0회 이상 반복된 문자열
+ 앞에 있는 문자가 1회 이상 반복된 문자열
{m} 앞 문자를 m회 반복하는 문자열
{m, n} 앞 문자를 m~n회 반복하는 문자열
? 앞 문자가 나오거나 나오지 않는 문자열 ({0, 1}와 동일)
\d 숫자
\D 숫자가 아닌 문자
\w 문자 혹은 숫자
\W 문자 혹은 숫자가 아닌것
(…) 괄호 안의 모든 정규 표현식을 만족하는 문자
[abc] a, b, c 중 한 개의 문자와 일치

re 함수

  • re 라이브러리의 가장 기본적인 함수 4가지를 살펴 볼 것이다. 이 밖에도 re 라이브러리는 여러 가지 정규 표현식을 이용해 문자열을 다룰 수 있는 기능을 제공한다.

  • re.compile(pattern)

    • compile 함수는 특정 기호를 정규표현식 객체로 만들어준다. re 라이브러리를 사용하려면 정규표현식 패턴을 매번 작성해야하는데, 이 함수를 사용해 패턴을 컴파일하면 필요할 때마다 사용할 수 있다.
1
2
3
#숫자나 문자가 아닌 것이 1회이상 반복되는 문자열
pattern = ' \W+'
re_pattern = re.compile(pattern)
  • re.search(pattern, string)
    • search 함수는 해당 문자열에서 정규 표현식에 해당하는 첫 부분을 찾는다.
1
2
3
4
5
6
7
# 문자나 숫자인 것이 1회 이상 반복되는 문자열
# 즉, 탭, 줄바꿈, 공백이 아닌 문자를 모두 찾는 과정
re.search("(\w+)"), "wow, it is awesome")

# 결과
# 범위가 (0,3), 찾은 문자는 'wow'로 그 뒤에 ,와 공백이 있으므로 그전까지의 문자를 출력
<_sre.SRE_Match object; span=(0,3), match='wow'>
  • re.split(pattern, string)
    • split 함수는 해당 문자열에서 특정 패턴으로 문자열을 나눠서 리스트로 만든다.
1
2
3
4
5
# 문자 혹은 숫자가 아닌 것으로 문자열을 나눠서 리스트로 출력
re.split('\W', "wow, it is world of word")

# 결과
['wow', '', 'it', 'is', 'world', 'of', 'word']
  • re.sub(pattern, repl, string)
    • 문자열에서 특정 패턴을 만족시키는 문자를 사용자가 정의한 문자(repl)로 치환한다.
1
2
3
4
5
# 숫자인 것을 number로 치환한 문자열 반환
re.sub('\d', 'number', '7 candy')

# 결과
'number candy'

Kaggle

  • Kaggle에서 API를 활용해서 데이터를 다운받는 방법을 소개하려고 한다. 캐글 API 연동을 위해서는 두가지 단계가 필요하다. 단 이 방법은 Local PC 환경에서의 방법이므로 Colab과 연동해서 사용하는 방법은 추가적인 작업들이 필요하다.
1
conda install kaggle
  • API가 성공적으로 설치되면 계정을 연동해야 한다. 캐글 홈페이지에서 회원가입 후 Account 탭으로 가서 ‘Create API Token’을 선택한 후 kaggle.json 파일을 내려받는다. 이 파일에는 본인의 인증서가 있고 이 파일을 다음의 위치로 이동시킨다.

kaggle API

1
2
3
4
5
# 윈도웅
C:\Users\<사용자명>\.kaggle

# macOS, Linux
$ /<사용자 홈 디렉토리>/.kaggle

이제 API를 활용해 데이터를 내려 받을 수 있다. 데이터를 내려받는 방법은 Data(데이터) 탭의 API 명령어를 복사한 후 커맨드 라인에서 다음과 같이 실행하면 된다.

1
$ kaggle competitions download -c <competition-name>
  • 데이터 목록 확인
1
$ kaggle competitions files -c <competition-name>
  • 데이터 제출
1
kaggle competions submit <competition-name> -f <file-name> -m <message>
  • 대회 목록 확인
1
kaggle competition list

보다 더 자세한 기능은 캐글문서에서 확인해 보자.