본문 바로가기

NLP 프로젝트 일지[0505~]

(12)
[tesseract]pycharm 에서 ocr 사용하기 구글은 위대하다.... 예전에 tesseract 썼을 때는 인식률 너무 안좋아서 다른 걸 사용했었는데 구글 입김 들어가고 개선된 5.0 버전 사용하니 인식률 진짜 좋음;; tesseract 버전 별 차이점 3.0 버전은 전통적인 cv 알고리즘을 이용한다. 따라서 문맥을 인지하지 못한다. 4.0 버전부터 딥러닝 모델(lstm)이 들어감 현재(2020.7.15) 가장 최근에 나온 버전이 5.0 인데 가장 최신 버전을 받는게 제일 좋은 것 같다. tesseract 사용법 1. tesseract 엔진을 다운 받는다 https://github.com/UB-Mannheim/tesseract/wiki 에서 다운 받을 수 있다. os에 맞는 최신 버전을 받는다. 엔진을 설치할 때 사용할 언어 패키지도 같이 설치해야 한..
Doc2vec 만들기 자연어 처리는 word embedding 기준으로 크게 1) 단어의 갯수를 세는 방식과 2) 단어의 벡터거리를 기준으로 유사도를 확인할 수 있는 방식으로 나뉜다. 1)의 경우 TF-IDF 알고리즘을 사용하여 분석 2)의 경우 doc2vec를 사용하여 분석 참고 http://hero4earth.com/blog/projects/2018/01/21/naver_movie_review/
새로운 task 1. 테스트 데이터 크기가 너무 작아 아직 불안정하다. 1. 한국어 성별불평등 데이터셋 찾기 2. 우리가 가지고 있는 데이터를 일일히 손으로 레이블링 2. 한국어 토크나이저 비교/활용 해보기 (링크) 기록 남기기 참고 (링크) 1. Mecab 2. berttoknizer 3. khaii (링크) 4. Google: SentencePiece Tutorial (링크) LM 비교/ 활용하기 1. BERT (링크) 2. XLNET 3. 일렉트라 (설명1: 링크 설명2: 링크 ) (코드: 링크) 4. kobert (코드 : link)
[모듈화작업] - 코드 뜯어보기 - tqdm 라이브러리 - time 라이브러리 데이터를 다운받을 때, 작업 진행 상황을 시각화하고 싶을 때 진행상태바가 0%에서 100%로 막대바가 채워지는 것을 본 적이 있을 것이다. 이는 데이터 양이 많아 진행 상황이 한세월인 딥러닝 진행 과정에서 뭔가 되고는 있구나 하는 심리적 안정감을 주기 위해 필요하다... from tqdm import tqdm from time import sleep for i, line in enumerate(tqdm(range(900), total=10, desc="Loading Dataset", unit=" lines")): sleep(0.01) pass - range(900) : 900만큼 반복한다. - total : 10 개 마다 상태바 업데이트 - desc : 상태..
[5.13] torchtext를 이용하여 NLP 데이터셋 만들기 목표: (1) 데이터셋 만들기 데이터 (2) 라벨링 확인하고 오분류 처리하기 1. 토치 텍스트를 이용하여 데이터셋 만들기 참고 링크 (link0) (link1) (link2) TEXT 필드에서 tokenize 파라미터에 Mecab 함수 넣으면 됨(기본값은 str.split ) 2. 구글 코랩에서 작업하고 있기 때문에 작업 시간이 오래걸리는 객체는 미리미리 파일로 저장해 두는 것이 좋다.. 참고 링크 (link)(link) pickle 객체 저장하기 구글 코랩에서 로컬 컴퓨터로 파일 내려받기 from google.colab import files import pickle tokenized = """ 토큰화 한 객체 """ with open('data.pickle','wb') as NLP: pickle.du..
[5.12] 서브워드 분절 중... 목표: (1)토치텍스트를 이용하여 샘플 데이터셋 만들기 사용 노트 ( link ) 0. 파이썬 객체 저장하기 - pickle (link) 1. 텍스트 데이터 전처리 띄어쓰기 정규화하기 -> 현재 단계에서 불가능 - 버전 관리: tensorflow = 1.4.0. , keras = 2.1.5 - 한 계산에 198 글자 이상 들어가면 warning이 뜬다. - 신문 기사이므로 기본적인 띄어쓰기나 맞춤법을 준수할 것이라 기대. 띄어쓰기 정규화를 하지 않더라도 성능이 나쁘지 않을 것으로 예상됨. 'tag'가 기사 본문에 추가되어있었다. 어차피 서브워드 분절 단계에서 나눠질 것이므로 토크나이징 후 불용어처리. 2. 토큰화(현재 단계): 데이터 크기가 너무 커서 하루종일 돌려놔야 임베딩이 될 것 같다. 서브워드 분..
[5.11] 3.1. NLP 모델 데이터 전처리 목표 : (1)토치텍스트를 이용하여 샘플 데이터셋 만들기 (2) csv 파일 살펴보며 오분류 확인하기-> 수정 코드 만들기! 사용 노트 ( link ) 1. csv 파일 형식 확인하기 파일 저장 형식 확인 필요한 컬럼은 text와 label 이므로 나머지는 날려준다. 특정 조건을 만족하는 행만 불러오기 : df [ df[ 'col' ] >조건 ] 참고 블로그(link) 2. 정제하기 - 정제할 때 혹시 모르니 원본 데이터의 copy 를 만들어 두기! from copy import copy - 참고 블로그 (1) 전각문자 제거하기 : 아마 숫자가 전각문자일 수도.. 속보, 특보 등의 글자 re를 이용하여 제거하기 -> 불용어 사전에 추가하기 me too 의 경우가 있으므로.... 대문자 -> 소문자로 변환..
3. 텍스트 전처리 NLP에서 텍스트 자체를 바로 피처로 사용할 수는 없다. 텍스트를 전처리하여 벡터화 해야 모델에 적용할 수 있다. (모든 머신러닝 프로세스가 그렇듯 이 부분이 가장 지루하다..) 0. 헉.. 놓치고 있던 부분이 있다.... 텍스트 전처리를 하기 위해서는... 당연하겠지만 전처리를 할 텍스트가 필요하다....! 프로젝트 github에서 저장되어 있는 신문 기사들을 다운받아와야겠다.... 텍스트 분석하기(link) 텍스트 전처리에는 다음과 같은 작업이 필요하다. 텍스트 전처리(Text Preprocessing): 대/소문자 변경, 특수문자 삭제, 이모티콘 삭제 등의 전처리 작업, 단어(Word) 토큰화 작업, 불용어(Stop word) 제거 작업, 어근 추출(Stemming/Lemmatization) 등의 ..