본문 바로가기

정제 및 정규화 (cleaning / normalization) 코퍼스 토큰화(tokenization) 를 마쳤다면, 불필요한 토큰들을 없애거나 표현 방법이 다른 단어들을 하나로 통합하여 코퍼스의 복잡성을 줄여야 한다. 정제(cleaning) 언어 및 데이터의 특징에 따라 규칙을 정하여 함수나 정규 표현식(Regular Expression)으로 의미없는 기호나 단어(불용어: Stopword)를 제거하는 일이다. 불용어는 필요한 경우 사용자 정의로 추가하는 것이 가능하다. # NLTK 로 불용어 제거하기import nltkfrom nltk.corpus import stopwordsfrom nltk.tokenize import word_tokenize # 불용어 코퍼스 다운로드nltk.download('stopwords') # 영어 불용어 가져오기stop_words = ..
텍스트 토큰화(tokenization) 토큰화 : 코퍼스를 의미 있는 단위로 쪼갬 (단어/어절/문장/...)- ['아버지', '가', '방', '에', '들어가', '신다'] 코퍼스를 수집하고 가장 먼저 해야할 것은, 데이터들을 의미 있는 작은 단위(Token)로 쪼개는 토큰화(tokenization) 작업을 해야 한다. 띄어쓰기 별로 나눈다던지, 어절별로 나눈다던지, 형태소별로 나누던지, 이러한 토큰화 작업을 하면 토큰들에 대한 분석이 가능해 진다. 언어별 토큰화의 어려움 의미있는 단어들을 추출하기 위한 첫번째 단계인 토큰화는 언어별로 섬세한 알고리즘을 필요로 한다. 예로 들면, 영어권 언어들은 띄어쓰기 단위의 어절 토큰화가 단어 토큰화와 같아 합성어(New York)나 줄임말(I'm) 정도의 예외처리만 잘하면 단어(word) 토큰화가 가능..
자연어 처리 NLP 자연어 처리(NLP: Natural Language Processing)란 컴퓨터가 인간의 언어를 인식하게 만드는 인공지능의 주요 분야 중 하나로, 정보 검색, 정보 추출, 음성 인식, 단어 분류, 구문 분석, 감정 분석, 자동 대화, 기계 번역 등에 사용된다. 전 세계에서 오랜 기간 관련 학문을 연구하고 있음에도 불구하고, 영화 속의 사람 같은 인공지능을 아직까지 완벽하게 개발하지 못했다는 것은 그만큼 사람 같은 컴퓨터를 만드는게 쉽지 않다는 것이다. 점점 사람과 소통할 수 있을 정도로 발전할 수는 있겠지만 사람이 될 수는 없다. 하지만 그에 가장 가깝게 다가갈 수 있도록 내 목적에 맞는 분야를 컴퓨터가 학습하고 그에 대한 옳은 결과를 얻는 것이 자연어 처리의 목적이다. 자연어 처리는 지금껏 많은 발전..
pip install C++ error pip 로 특정 패키지 설치시 Visual C++ 컴파일러를 요구하는 오류 메시지가 발생할 수 있다. error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ 하지만 링크를 따라가면... Visual C++ 14.0 에 대응하는 Visual Studio 버전이 뭔지를 알아야...ㅋㅋ 윈도우 계열 개발을 해본 적이 없어서 참 어리버리하구용... 모를 땐 최신버전이지... 하고 Visual Studio 2019 Build Tools 를 깔으려 했더니 6.4G 필요하단다... ㅡ.ㅡ 파이썬 사이트(https://wiki.py..
AttributeError: partially initialized module '' has no attribute '' import pandas as pdprint(pd.__version__)cs Traceback (most recent call last): File "~\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3343, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "", line 1, in runfile('D:/Project_CTLab/Hong_Test2/pandas.py', wdir='D:/Project_CTLab/Hong_Test2') File "C:\Program Files\JetBrains\PyCharm 2020.2.3\plugins\python\helper..
_ underscore 파이썬에서 언더스코어(_)의 기능은 조금 특별하다. 언패킹에서의 예제에서 홀로 쓰여있는 언더스코어를 보고 조금 더 검색해 봤는데, 함수나 변수에 언더스코어를 사용하여 private 처럼 설정이 가능하다는 것이 새롭다. 참고로 파이썬에서는 C++ 이나 JAVA 처럼 private/protected/public 등의 키워드를 사용하여 리소스 접근 제어를 완벽하게 지원하지 않지만 언더스코어를 사용하여 효과적으로 사용할 수 있다. 언더스코어(_)의 기능 1. 인터프리터에서 마지막 표현식의 값을 불러올 때 >>> 20 20 >>> _ + 3 23cs 2. 자리는 채워야 하지만 그 값을 무시해도 상관없을 때 # unpackingx, _, y = (1, 2, 3) # indexfor _ in range(10): do..
x for x in iterable v = [x for x in iterable if x]cs list 안에다가 for 문을 때려박는 요상한 문법을 보았다. 대충봐도 for 문을 이용해 list 안에 요소를 넣는다는 것은 알겠는데 굳이? 아무래도 한줄에 쓰여 있으니 간략해 보이기도 하지만 제어문이 길어질 경우 가독성은 어째? 간단할 때 쓰면, 아니 복잡하더라도 익숙해지면 나쁘지 않을 것 같다. 저것을 풀어보려니, v = []for x in iterable: if x: v.append(x)cs 맞나? 이렇게 보니 왠지 한 줄로 써야할 것 같다. Comprehension 이렇게 list(), dictionary[], set{} 의 요소 자리에 반복문이나 조건문을 사용하여 iterable 한 객체를 생성하는 기능을 Comprehension 이라..
Read file 'text' vs 'binary' 예제에서 텍스트 파일을 binary 로 읽길래, 잠시 파일 처리에 대해 살펴봤다.파이썬에서 텍스트 파일을 읽을 때(open) 사용하는 옵션 중 text(rt:default) 모드와 binary(rb) 모드가 있다. 말 그대로,- text 모드는 텍스트 파일 객체로 읽어오는 것이고,- binary 모드는 텍스트 파일을 바이너리 객체로 인코딩하여 읽어오는 것이다.ㅋㅋ...;;; 두 모드에 대해 조금더 알아보면... Text mode- 이 모드로 파일을 open 하면 io.IObase 클래스를 상속받은 텍스트 파일 객체(io.TextIOWrapper)를 생성한다.- 정해진 인코딩(encoding)으로 디코딩(decoding)이 발생하며 파일의 내용은 문자열 str 로 반환된다.- 텍스트 인코딩을 지정하지 않을..