반응형
반응형

Word Tokenization 단어 토큰화

 

자연어 처리에서 크롤링 등으로 얻어낸 코퍼스 데이터가 필요에 맞게 전처리되지 않은 상태라면, 해당 데이터를 사용하고자하는 용도에 맞게 토큰화(tokenization) & 정제(cleaning) & 정규화(normalization)하는 일을 하게 됩니다. 이번 챕터에서는 그 중에서도 토큰화에 대해서 배우도록 합니다.

주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업을 토큰화(tokenization)라고 부릅니다. 토큰의 단위가 상황에 따라 다르지만, 보통 의미있는 단위로 토큰을 정의합니다.

이 챕터에서는 토큰화에 대한 발생할 수 있는 여러가지 상황에 대해서 언급하여 토큰화에 대한 개념을 이해합니다. 뒤에서 파이썬과 NLTK 패키지, KoNLPY를 통해 실습을 진행하며 직접 토큰화를 수행해보겠습니다.

 

 


## word_tokenize는 Don't를 Do와 n't로 분리하였으며, 
## 반면 Jone's는 Jone과 's로 분리한 것을 확인할 수 있습니다.
>from nltk.tokenize import word_tokenize  
>print(word_tokenize("Don't be fooled by the dark sounding name, Mr. Jone's Orphanage is as cheery as cheery goes for a pastry shop."))  
['Do', "n't", 'be', 'fooled', 'by', 'the', 'dark', 'sounding', 'name', ',', 'Mr.', 'Jone', "'s", 'Orphanage', 'is', 'as', 'cheery', 'as', 'cheery', 'goes', 'for', 'a', 'pastry', 'shop', '.']  


## WordPunctTokenizer는 구두점을 별도로 분류하는 특징을 갖고 있기때문에, 앞서 확인했던
## word_tokenize와는 달리 Don't를 Don과 '와 t로 분리하였으며, 
## 이와 마찬가지로 Jone's를 Jone과 '와 s로 분리한 것을 확인할 수 있습니다.
>from nltk.tokenize import WordPunctTokenizer  
>print(WordPunctTokenizer().tokenize("Don't be fooled by the dark sounding name, Mr. Jone's Orphanage is as cheery as cheery goes for a pastry shop."))
['Don', "'", 't', 'be', 'fooled', 'by', 'the', 'dark', 'sounding', 'name', ',', 'Mr', '.', 'Jone', "'", 's', 'Orphanage', 'is', 'as', 'cheery', 'as', 'cheery', 'goes', 'for', 'a', 'pastry', 'shop', '.']  


## 케라스 또한 토큰화 도구로서 text_to_word_sequence를 지원합니다. 이번에는 케라스로 토큰화를 수행해봅시다.
## 케라스의 text_to_word_sequence는 기본적으로 모든 알파벳을 소문자로 바꾸면서 온점이나 
## 컴마, 느낌표 등의 구두점을 제거합니다. 하지만 don't나 jone's와 같은 경우 아포스트로피는 보존하는 것을 볼 수 있습니다.
>from tensorflow.keras.preprocessing.text import text_to_word_sequence
>print(text_to_word_sequence("Don't be fooled by the dark sounding name, Mr. Jone's Orphanage is as cheery as cheery goes for a pastry shop."))
["don't", 'be', 'fooled', 'by', 'the', 'dark', 'sounding', 'name', 'mr', "jone's", 'orphanage', 'is', 'as', 'cheery', 'as', 'cheery', 'goes', 'for', 'a', 'pastry', 'shop']


## 표준으로 쓰이고 있는 토큰화 방법 중 하나인 Penn Treebank Tokenization의 규칙에 대해서 소개하고, 토큰화의 결과를 보도록 하겠습니다.
## 규칙 1. 하이푼으로 구성된 단어는 하나로 유지한다.
## 규칙 2. doesn't와 같이 아포스트로피로 '접어'가 함께하는 단어는 분리해준다. 
>from nltk.tokenize import TreebankWordTokenizer
>tokenizer=TreebankWordTokenizer()
>text="Starting a home-based restaurant may be an ideal. it doesn't have a food chain or restaurant of their own."
>print(tokenizer.tokenize(text))
['Starting', 'a', 'home-based', 'restaurant', 'may', 'be', 'an', 'ideal.', 'it', 'does', "n't", 'have', 'a', 'food', 'chain', 'or', 'restaurant', 'of', 'their', 'own', '.']
반응형
반응형

맷플롯립(Matplotlib)은 데이터를 차트(chart)나 플롯(plot)으로 시각화(visulaization)하는 패키지입니다. 데이터 분석에서 Matplotlib은 데이터 분석 이전에 데이터 이해를 위한 시각화나, 데이터 분석 후에 결과를 시각화하기 위해서 사용됩니다.

아나콘다를 설치하지 않았다면 아래의 커맨드로 Matplotlib를 별도 설치할 수 있습니다.

pip install matplotlib
> ipython
...
In [1]: import matplotlib as mpl
In [2]: mpl.__version__
Out[2]: '2.2.3'

Matplotlib을 다 설치하였다면 Matplotlib의 주요 모듈인 pyplot을 임포트할 수 있습니다. 해당 모듈을 임포트할 때는 주로 plt라는 이름으로 사용합니다. 또한 주피터 노트북으로 matplotlib을 실습하기 위해서는 주피터 노트북에 그림을 표시하도록 지정하는 %matplotlib inline 또한 우선 수행해야 합니다. 아래의 모든 실습들은 아래 내용을 임포트하였다고 가정합니다.

pyplot의 경우, 주로 plt라는 명칭으로 임포트하는 것이 관례입니다.

%matplotlib inline
import matplotlib.pyplot as plt

라인 플롯 그리기

plot()은 라인 플롯을 그리는 기능을 수행합니다. plot() X축과 Y축의 값을 기재하고 그림을 표시하는 show()를 통해서 시각화해봅시다. 그래프에는 제목을 지정해줄 수 있는데 이 경우에는 title('원하는 제목')을 사용합니다. 여기서는 그래프에 'test'라는 제목을 넣어봅시다.

사실 주피터 노트북에서는 show()를 사용하지 않더라도 그래프가 자동으로 렌더링 되므로 그래프가 시각화가 되는 것을 확인할 수 있지만, 여기서는 다른 개발 환경에서 사용할 때 또한 가정하여 show()를 실습 코드에 삽입하였습니다.

plt.title('students')
plt.plot([1,2,3,4],[2,4,8,6])
plt.plot([1.5,2.5,3.5,4.5],[3,5,8,10]) #라인 새로 추가
plt.xlabel('hours')
plt.ylabel('score')
plt.legend(['A student', 'B student']) #범례 삽입
plt.show()

 

 

반응형
반응형

 

 외부 데이터 읽기

Pandas는 CSV, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터 파일을 읽고 데이터 프레임을 생성할 수 있습니다.

예를 들어 csv 파일을 읽을 때는 pandas.read_csv()를 통해 읽을 수 있습니다.
다음과 같은 example.csv 파일이 있다고 합시다.

 

df=pd.read_csv('example.csv 파일의 경로') # example.csv 파일 읽기
# 예를 들어 윈도우 바탕화면에서 작업한 저자의 경우
# df=pd.read_csv(r'C:\Users\USER\Desktop\example.csv')였습니다.
print(df)

이 경우 인덱스가 자동으로 부여된 것을 볼 수 있습니다. 인덱스를 출력해보도록 하겠습니다.

> print(df.index)
RangeIndex(start=0, stop=6, step=1)
반응형
반응형

"나중에"
"나중에 한번 보자"라고 말하며 전화를 끊었다.
그래서 한번 볼 날을 기대했다.
그러나 한번 볼 날이 없었다.

그렇게 "나중에"는 없었다.
오로지 "지금"만 있을 뿐


- 박영신의《옹달샘에 던져보는 작은 질문들》중에서 -


* 너무 쉽게
흔히 하는 말이 있습니다.
"나중에 보자", "나중에 하자"
그러고는 끝입니다.
'나중에'는 없습니다.

반응형

'아침편지' 카테고리의 다른 글

황제펭귄  (0) 2020.12.03
누가 더 행복할까?  (0) 2020.12.02
아이들이 번쩍 깨달은 것  (0) 2020.11.30
길을 잃으면 길이 찾아온다  (0) 2020.11.30
절대 잊을 수 없는 날  (0) 2020.11.27
반응형

자주 묻는 질문

1) 내 컴퓨터에 어떤 GPU가 있는지 어떻게 알 수 있습니까?답변 :

Windows 컴퓨터 :

  1. 바탕 화면을 마우스 오른쪽 버튼으로 클릭
  2. 팝업 창에 "NVIDIA 제어판"또는 "NVIDIA 디스플레이"가 표시되면 NVIDIA GPU가있는 것입니다.
  3. 팝업 창에서 "NVIDIA 제어판"또는 "NVIDIA 디스플레이"를 클릭합니다.
  4. "그래픽 카드 정보"를보십시오.
  5. NVIDIA GPU의 이름이 표시됩니다.

Apple 컴퓨터 :

  1. "Apple 메뉴"를 클릭하십시오.
  2. "이 매킨토시에 관하여"를 클릭하십시오
  3. "추가 정보"를 클릭하십시오.
  4. 컨텐츠 목록에서 "그래픽 / 디스플레이"를 선택합니다.

2) 컴퓨터에 CUDA 지원 GPU가 있습니까?답변 : 위의 목록을 확인하여 GPU가 있는지 확인하십시오. 그렇다면 컴퓨터에 CUDA 가속 응용 프로그램을 활용할 수있는 최신 GPU가 있음을 의미합니다.3) 최신 드라이버가 있는지 어떻게 알 수 있습니까?답변 : www.nvidia.com/drivers로 이동하십시오.4) CUDA 지원 GPU 또는 시스템은 어떻게 구할 수 있습니까?답변 :
HPC 및 슈퍼 컴퓨팅 애플리케이션 용 Tesla는 www.nvidia.com/object/tesla_wtb.html
로 이동하십시오. 엔터테인먼트 용 GeForce는 www.nvidia.com/object/geforce_family.html
로 이동하십시오. 전문적인 시각화를위한 Quadro는 www. .nvidia.com / object / workstation_wheretobuy.html5) CUDA Toolkit을 다운로드하려면 어떻게해야합니까?답변 : CUDA 툴킷 다운로드로 이동 하십시오 .

 

tensorFlow - GPU 지원  www.tensorflow.org/install/gpu?hl=ko

 

GPU 지원  |  TensorFlow

참고: GPU 지원은 CUDA® 지원 카드가 있는 Ubuntu 및 Windows에 제공됩니다. TensorFlow GPU 지원에는 다양한 드라이버와 라이브러리가 필요합니다. 설치를 단순화하고 라이브러리 충돌을 방지하려면 GPU를

www.tensorflow.org

TensorFlow GPU 지원에는 다양한 드라이버와 라이브러리가 필요합니다. 설치를 단순화하고 라이브러리 충돌을 방지하려면 GPU를 지원하는 TensorFlow Docker 이미지를 사용하는 것이 좋습니다(Linux만 해당). 이 설정에는 NVIDIA® GPU 드라이버만 있으면 됩니다.

 

Download Drivers | NVIDIA

 

www.nvidia.com

Pip 패키지

사용 가능한 패키지, 시스템 요구사항 및 명령어는 pip 설치 가이드를 참고하세요. TensorFlow pip 패키지에는 CUDA® 지원 카드에 대한 GPU 지원이 포함됩니다.

 

pip install tensorflow

이 가이드에서는 최신 안정적인 TensorFlow 출시의 GPU 지원 및 설치 단계를 설명합니다.

이전 버전의 TensorFlow

1.15 이하 버전의 경우 CPU와 GPU 패키지가 다음과 같이 구분됩니다.

 

pip install tensorflow==1.15      # CPU
pip install tensorflow-gpu==1.15  # GPU

하드웨어 요구사항

다음과 같은 GPU 사용 기기가 지원됩니다.

  • CUDA® 아키텍처 3.5, 3.7, 5.2, 6.0, 6.1, 7.0 이상을 포함하는 NVIDIA® GPU 카드 CUDA® 지원 GPU 카드 목록을 참고하세요.
  • NVIDIA® Ampere GPU(CUDA 아키텍처 8.0) 이상이 적용된 시스템에서 커널은 PTX에서 JIT로 컴파일되며 TensorFlow는 시작하는 데 30분 이상 걸릴 수 있습니다. 이 오버헤드는 ‘export CUDA_CACHE_MAXSIZE=2147483648’를 사용하여 기본 JIT 캐시 크기를 늘려 첫 번째 시작으로 제한될 수 있습니다. 자세한 내용은 JIT 캐싱을 참고하세요.
  • 지원되지 않는 CUDA® 아키텍처를 사용하는 GPU의 경우 또는 PTX에서 JIT 컴파일을 방지하거나 다른 버전의 NVIDIA® 라이브러리를 사용하려면 Linux 소스에서 빌드 가이드를 참고하세요.
  • 패키지에는 지원되는 최신 CUDA® 아키텍처를 제외하고 PTX 코드가 포함되어 있지 않습니다. 따라서 CUDA_FORCE_PTX_JIT=1이 설정된 경우 이전 GPU에서 TensorFlow가 로드되지 않습니다. 자세한 내용은 애플리케이션 호환성을 참고하세요.

참고: '상태: 기기 커널 이미지가 잘못되었습니다'라는 오류 메시지는 TensorFlow 패키지에 아키텍처의 PTX가 포함되어 있지 않음을 나타냅니다. 소스에서 TensorFlow를 빌드하여 컴퓨팅 기능을 사용 설정할 수 있습니다.

소프트웨어 요구사항

다음 NVIDIA® 소프트웨어가 시스템에 설치되어 있어야 합니다.


Nvidia CUDA 지원 GPU 리스트

developer.nvidia.com/cuda-gpus

 

CUDA GPUs | NVIDIA Developer

HomeHigh Performance ComputingTools & EcosystemCUDA GPUs Recommended GPU for Developers NVIDIA TITAN RTX NVIDIA TITAN RTX is built for data science, AI research, content creation and general GPU development. Built on the Turing architecture, it features 46

developer.nvidia.com

 

반응형
반응형

#사회적거리두기 , #사회적 #거리두기 #2단계

사회적 거리두기 단계별 기준 및 방역조치(출처: 보건복지부)

11월 7일부터 사회적 거리두기는 생활방역(1단계), 지역유행(1.5, 2단계), 전국유행(2.5, 3단계)으로 크게 나누되 지역유행과 전국유행 단계를 보다 세분화해 1.5, 2.5단계를 신설하는 등  5단계로 세분화한다. 거리두기 단계 격상 기준 권역별 중증환자 병상 여력  주간 유행 양상 중심으로 설정한다. 중환자실 병상 여력으로 감당 가능한 주평균 일일 확진자 수 핵심 지표로 활용하되, 감염 재생산 지수  다양한 보조 지표 함께 고려한다.

● 1단계 
1단계(생활방역 체계) 통상적인 방역  의료체계 감당 가능한 범위 내에서 코로나19 유행 통제 중 상황이다주평균 국내 발생 일일 확진자 수가 수도권 100명 미만, 충청·호남·경북·경남권 30명 미만, 강원·제주도는 10명 미만에서 억제되고 있을 때 생활방역 체계 유지한다. 1단계에서는 일상생활 사회경제적 활동 유지하는 가운데, 일부 시설·활동에 대해서 마스크 착용 등의 방역수칙 의무화된다.

● 1.5단계
1.5단계는 특정 권역에서 의료체계의 통상 대응 범위를 위협하는 수준으로 1주 이상 코로나19 유행 지속되는 상황이다. 권역별 중증환자 병상 여력을 고려하여, 주평균 국내발생 일일 확진자가 수도권 100명 이상, 충청·호남·경북·경남권 30명 이상, 강원·제주도는 10명 이상일 경우 해당 권역 1.5단계 격상한다이때 중증환자 발생률이 10% 정도인 60대 이상 확진자 수 일정 수준(수도권 40, 충청·호남·경북·경남권 10, 강원·제주도 4) 초과하는지도 함께 고려한다.  아울러 중증환자 병상수용능력, 역학조사 역량, 권역별 감염 재생산 지수, 집단감염 발생 양상 등의 지표를 종합적으로 평가하여 1.5단계 격상 여부 판단한다. 1.5단계에서는 유행 권역에서 철저한 생활방역 준수하도록 다중이용시설 이용인원 제한하는 등 방역 강화한다.

● 2단계

2단계는 유행 권역에서 1.5단계 조치를 실시한 에도 지속적 유행 증가 양상을 보이며, 유행이 전국적으로 확산되는 조짐이 관찰되는 상황이다. 2단계는 유행 권역에서 1.5단계 조치 이후 1주가 경과한 후에도 1.5단계 기준 2배 이상으로 유행 증가하는 경우 2개 이상 권역에서 1.5단계 수준 유행 1주 이상 지속되며 유행 증가하는 양상을 보이는 경우 ▷ 전국적으로 신규 일일 확진자 300 초과하는 상황 1주 이상 지속되며 유행 증가하는 양상을 보이는 경우 중 하나를 충족할 경우 2단계 격상을 검토한다. 격상 시에는 60대 이상 확진자 비율, 중증환자 병상 수용능력, 역학조사 역량, 권역별 감염 재생산 지수  집단감염 발생 현황 등을 종합적으로 고려하여 위험도를 판단한다.  2단계에서 유행 권역 주민들은 불필요한 외출과 모임, 사람이 많이 모이는 다중이용시설 이용 자제하도록 권고한다.

● 2.5단계
2.5단계는 의료체계의 통상 대응 범위를 초과하는 수준으로 전국적 유행이 1주 이상 지속 또는 확대되는 상황이다. 전국 주평균 국내발생 일일 확진자 400~500 이상이거나, 전국 2단계 상황에서 일일 확진자가 두 배로 증가하는 더블링 현상  급격한 환자 증가 추이 발생할 경우 전국 2.5단계 격상 검토한다. 격상 시 신규 확진자 중 60대 이상 확진자의 비율, 전국의 중증환자 병상 수용 능력 중요하게 참고하여 판단하며, 역학조사 역량, 감염 재생산 지수, 집단감염 발생 현황, 감염 경로 조사중 사례 비율, 방역망 내 관리비율 등도 종합적으로 고려한다. 2.5단계에서 전국 국민 가급적 집에 머무르며 외출·모임과 다중이용시설 이용 최대한 자제할 것을 권고한다.

● 3단계
3단계 전국적 대유행 상황을 상정한 것으로, 전국적으로 급격하게 환자가 증가하고, 의료체계 환자를 원활하게 치료하지 못하고 붕괴 위험 직면한 상황이다. 전국 주 평균 국내 발생 일일 확진자 800~1,000명 이상이거나, 전국 2.5단계 상황에서 일일 확진자가 두 배로 증가하는 더블링 현상  급격한 환자 증가 추이 발생할 경우 전국 3단계 격상 검토한다. 격상 시 신규 확진자 중 60대 이상 확진자의 비율, 전국의 중증환자 병상 수용 능력 중요하게 참고하여 판단하며, 역학조사 역량, 감염 재생산 지수, 집단감염 발생 현황, 감염경로 조사 중 사례 비율, 방역망 내 관리 비율 등도 종합적으로 고려한다3단계에서 모든 국민 원칙적으로 집에만 머무르며 다른 사람과 접촉 최소화할 것을 권고한다.

 

주요 방역조치. 1. 다중이용시설(출처: 보건복지부)
주요 방역조치. 2. 일상 및 사회경제적 활동(출처: 보건복지부)

 

 

[네이버 지식백과] 사회적 거리두기 (시사상식사전, pmg 지식엔진연구소)

 

반응형

+ Recent posts