3. 텍스트마이닝을 위한 파이썬 기본

텍스트마이닝에서 파이썬을 사용하기 위해 우선 파이썬의 기본에 대해 설명하겠습니다.

 

1. 파이썬이란?

1990년 암스테르담의 귀도 반 로섬이 개발한 인터프리터 언어로 구글에서 만들어진 소프트웨어의 많은 비중(50% 이상)Python 으로 개발되었다고 합니다. 

Python으로 개발된 프로그램의 예를 들면 Dango(무료 오픈소스 웹 애플리케이션 프레임워크)가 있습니다. 

+여기서 인터프리터 방식의 언어에 대해 설명해보자면 프로그램 방식에 따라서 언어를 구분하는 방식에 포함됩니다. 

1) 컴파일러 방식 : 전체 코드를 번역해서 한 번에 실행해야 함 (: C, JAVA)

2) 인터프리터 방식 : 한줄씩 코드를 번역해서 실행 가능 (Python, C++)

파이썬을 배우다보면 한 줄씩 코드를 실행하고 결과를 확인하는 방식이라는 것을 알 수 있습니다. 

컴파일러 방식의 언어를 배워보신 분은 C나 JAVA가 일단 코드가 길고 전체를 컴파일이라는 한 번에 수행하는 과정이 필요하다는 것을 아실 것입니다. 

 

(1) Python으로 할 수 있는 일은 어떤 일들이 있을까요? 

시스템 유틸리티 제작, GUI, C/C++ 연동, 웹프로그래밍, 수치연산, DB 프로그래밍 등이 가능합니다. 

그러면 Python 으로 할 수 없는 일은 어떤 일이 있을까요? 

시스템 프로그래밍, 모바일 프로그래밍이 있습니다. 

 

(2) Python 개발환경은 다양합니다. 저의 옛날 포스팅에도 대표적인 몇 가지를 기술했었던 적이 있습니다. 

stat-cbc.tistory.com/8?category=892410

 

[파이썬의 여러 스크립트 에디터]

안녕하세요! 오늘은 저번에 깔았던 아나콘다와 같은 에디터 프로그램을 알아보겠습니다. 파이썬에는 여러 가지 에디터 프로그램이 있습니다. 그 중에서 가장 유명했던 아나콘다는 지난 시간에

stat-cbc.tistory.com

간단하게 소개하자면, 

1) Python Shell(IDLE) : 명령창 또는 편집기 제공

2) Eclipse

3) Pycharm

4) Jupyter notebook : 웹 브라우저에서 Python 코드를 작성하고 실행하는 환경

입니다. 위의 링크에 설치방법도 기술하고 있으니 관심이 있으시면 설치해 실행해보시는 것도 좋습니다. 

 

(3) Python 소스코드 파일은 *.py 확장자로 저장이 되고, Jupyter notebook과 같은 경우는 *.ipynb 확장자로 저장이 되는 등 개발환경에 따라 다양합니다. 

 

(4) 파이썬의 장점

- 처음 해보시는 분들에게는 와닿지 않을 수 있지만, 다른 언어에 비해 파이썬은 비전공자도 쉽게 배울 수 있습니다. 

- 위에서 설명한대로 다양한 분야에서 활용할 수 있습니다. 

- 대부분의 운영체제에서 동일하게 사용되기 때문에 mac, linux, windows 에 상관없이 사용할 수 있습니다. 

(5) 파이썬의 단점

- C언어에 비해 일반적으로 10~350배 느리다고 합니다. 하지만 대부분의 경우 고급자 수준이 아니라면 이를 체감하기 어려우실 것입니다. 최근에는 컴퓨터 성능이 좋아져 연산이 많이 필요한 프로그램이 아니라면 차이 크게 느낄 수 없어 이는 크게 문제가 되지 않습니다. 

2. 파이썬의 자료형 

자료형 (data type)이란, 자료를 기능이나 역할에 따라 구분하여 사용하는 것입니다. 

자료형을 알고, 지정해서 사용해야 하는 이유는 자료를 자료형에 맞게 모으고 처리 과정을 거쳐야 제대로 프로그램이 작동할 수 있기 때문이며 자료형은 가장 기본 단위로서의 자료의 의미와 쓰임새를 아는 것은 매우 중요하기 때문입니다. 

type() 함수로 확인한다. 

string = "python textmining" 
type(string) 

1) 숫자형

숫자형 자체 내부에서도 여러 숫자의 타입이 따로 구별되어 있습니다.

- 정수(123, -345, 0) : int 

- 실수(123.45, -1234.5, 3.4e10) : float 

- 8진수(0o34, 0o25) 

- 16진수(0x2A, 0xFF)

2) 문자열 (string) : 말 그대로 문자들을 의미합니다. 메시지, 책등 텍스트를 저장할 때 사용하는 자료형입니다. : str

3)  (boolean) : True/False 로 참/거짓을 표현하는 형입니다. 

4) 리스트 : 다차원 데이터 표현, []으로 여러 데이터를 묶어서 표현하는 형식 

리스트명 = [요소1, 요소2, 요소3, ..]

요소 타입 문자 혼용 가능

>> 리스트 활용법 

- del a[1] : 1번째 요소를 삭제

- a.append(4) : 요소 추가

- a.sort : 정렬

- a.reverse : 순서 반대로 변경 0,1,2 > 2,1,0

- a.insert(a,b) : 리스트의 a번째 위치에 b를 삽입

- a.remove(x) : 리스트에서 첫 번째로 나오는 x를 삭제

- a.extend : 리스트 확장

5) 튜플 : 두 가지 점을 제외하고 리스트와 동일(상수리스트)

- 리스트는 [] 로 둘러싸지만 튜플은 ()으로 둘러쌈

- 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 불가능

- 내용을 바꾸는 연산은 불가능하지만 인덱싱, 슬라이싱, 사칙연산은 리스트와 동일

6) 딕셔너리 : KeyValue라는 것을 한 쌍으로 갖는 자료형

- 순차적으로 해당요소값을 구하지 않고 Key를 통해 Value를 얻음

- key 리스트 만들기

a= {'name':'CBC', 'phone':'0123', 'birth':'1218'}
print(a.keys()) # key들 얻기 : dict_keys(['name', 'phone', 'birth'])
print(a.values()) # value들 얻기 : dict_values(['CBC', '0123', '1218'])
print(a.items()) # key와 value 의 쌍 얻기 : dict_items([('name', 'CBC'), ('phone', '0123'), ('birth', '1218')])

- keyvalue 얻기 : a.get(‘name’) 존재하지 않는 경우 오류 발생

- print(‘name’ in a) : 해당 key가 딕셔너리안에 있는지 확인

7) 집합 : 순서가 없고 중복이 없음

- add, update, remove

8) 변수 : python에서 사용하는 변수는 객체를 가리키는 것/ 모든 자료형은 객체로 생성/동일한 내용의 리스트를 다른 객체로 복사하려면 copy 모듈 사용

 

3. 파이썬 계산

1) 제곱

a의 b승은 다음과 같이 계산할 수 있습니다. 

a**b

 

2) 나눗셈 

a를 b로 나누면 

a % b ## 나머지 출력 
a // b ## 몫 출력

3) 슬라이싱

리스트를 다룰 때 사용하는 방법으로 리스트 내부의 몇 가지를 순서대로 뽑아옴 

a[0:4] 의 경우 5번째 값은 포함되지 않음

slic = [1,2,3,4,5] 
slic[0:4] ## [1, 2, 3, 4]

 

4) 특정 문자 개수 세기

a = "hobby"
a.count(“b”) ## = 2

5) 특정 문자 위치 찾기

a.find("b") ## = 2 / 존재하지 않으면 –1
a.index("b") ## = 2 / 존재하지 않으면 Value error

6) 문자열 삽입 : join()

a = ","
b = a.join('abcd')
b ## 'a,b,c,d'

7) 이외 다양한 텍스트 처리 코드

- 대소문자 바꾸기 : upper("영어문자")

- 공백지우기 : strip("문자열")

- 문자열 바꾸기 : replace(“해당 문자”,“바꿀문자”)

- 문자열 나누기 : split("바꿀 기준 문자")

- 기타 문자열 formatting

print(“i eat {0} apples”.format(“five”))

 

 

 

728x90
반응형