NLP 10

NoSQL MongoDB 사용하기

nlp 중에서도 문서 단위의 long text를 분석 단위로 하다보니 RDB에 문서 단위의 텍스트를 저장하고 불러오는게 부담스러웠다. 문서의 길이가 대부분 5000 정도는 쉽고 table의 row도 만 개가 넘어가다 보니 단순히 SELECT * 만 해도 데이터를 받아보는데 수 초가 걸리는 상황이라 어쩔 수 없이 NoSQL로의 DB 전환을 할 수 밖에 없는 상황이 되었다. DB를 MongoDB에서 자체적으로 제공하는 클라우드 서비스인 MongoDB Atlas Database 나 AWS에서 MongoDB호환으로 서비스 하는 DocumentDB 를 활용하여 서버리스 데이터베이스를 구축하는 것이 좋겠지만, 아직까지는 서비스 운영을 위한 DB구축이 아니라 테스트 단계로 일단 AWS EC2 Ubuntu에 Mongo..

Data/NoSQL 2022.08.01

windows10 WSL 우분투에서 도커로 elasticsearch 8.3.0 설치 및 실행

엘라스틱서치는 역색인을 통해 풀텍스트서치를 지원해주어 검색의 속도와 성능이 뛰어나다고 들었다. NLP 솔루션 과정에서 엘라스틱서치를 활용할 수 있는지 모색하기 위해 엘라스틱서치를 설치하고 파이썬 클라이언트 패키지를 활용해 노트북에서 사용해봤다. 내 환경 : windows10 pro WSL2 ubuntu 20.04.4 LTS Docker Image 내려받기 Docker Image(https://www.docker.elastic.co)에서 os 및 버전에 맞게 선택 docker pull [docker.elastic.co/elasticsearch/elasticsearch:8.3.0-amd64]() 파이썬 클라이언트 패키지 설치, 엘라스틱 버전에 맞춰서 버전 설정해서 설치 pip3 install elastics..

OS/Windows 2022.07.20

Q. java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: Java heap space 에러 발생 원인과 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - vscode 에러 발생 상황 konlpy 0.6.0 버전의 형태소분석기 Kkma로 명사 추출을 진행중. 동일한 코드로 테스트를 위해 10000개 행까지만 슬라이싱해서 진행할 경우는 코드가 잘 돌아가지만, 전체 텍스트를 동일한 코드 실행할 경우 outofmemory 에러 발생 # 3. 명사 추출 def extract_nouns(text, stopwords_path = False): kkma = Kkma() noun = kkma.nouns(text) result = [] if stopwords_path: stopword_list = get_stopwords(stopwords_path) # Stopword 및 한글자 형태소 제거 for n i..

한국어 오픈소스 말뭉치 활용 라이브러리 코포라 Korpora

세상에! 이렇게 유용한 라이브러리가 있었다니! 한국어 오픈소스 말뭉치들의 다운로드와 전처리를 라이브러리로 불러와서 쉽게 사용할 수 있게 해주는 라이브러리 Korpora를 이제야 알게 되었다. 한국어 nlp 테스트를 정말 쉽고 편하게 할 수 있을 것 같다. 앞으로 더 많은 오픈소스 텍스트가 공개되고, Kopora에도 편입되어 연구와 활용에 널리 사용할 수 있게 되길 희망한다. https://ko-nlp.github.io/Korpora/ko-docs/introduction/ 코포라 소개 · Korpora 코포라 소개 Korpora는 오픈소스 말뭉치들의 다운로드와 전처리 기능을 제공하는 파이썬 라이브러리입니다. 복잡한 설명을 피하고 싶으신 분들은 ‘설치 방법'과 ‘빠른 사용법'만 읽으셔도 간편 ko-nlp.g..

Q. FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\User\\AppData\\Local\\Temp\\_MEI146082\\soynlp\\noun/frequent_enrolled_josa.txt'[11696] Failed to execute script 'main' due to unhandled exception! 에러 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - Visual Studio Code 에러 발생 상황 파이썬으로 작성한 자연어 처리 프로그램을 pyinstaller를 통해서 exe 실행파일로 만들었다. konlpy와 soynlp로 형태소 분석, 명사 추출 등을 수행하는 전처리 과정이 포함된 프로그램이다. 여러가지 지저분한 .dll 파일들이 포함되는 옵션에서는 실행파일이 잘 실행됨을 확인하였다. 그 다음에 --F 옵션을 활용하여 one-file로 만들고, 실행파일이 잘 돌아가는지 테스트하는데 에러가 발생했다. 에러 메세지 FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\User\\AppData\\Local\\Temp\..

카테고리 없음 2021.12.21

자연어 처리 왕초보 가이드

프로그래머스에서 진행한 KDT, 구글 머신러닝 부트캠프 과정에서 주로 vision 관련 AI 위주로 공부했는데, 입사 후 졸지에 자연어 처리를 빠른 시일 내에 마스터하라는(!!) 이야기를 들었다. 물론 강의 커리큘럼에 NLP 내용이 없었던 것은 아니지만, 프로젝트도 비전 관련해서 했기 때문에 '나 바쁜데 지금 필요없어' 라며 대충 대충 넘겼던 것이 화근이 되고 말았다. 진짜 처음부터 차근차근 공부하기 위해 정리한 리스트와 공부 과정 * 현재 공부하고 있는 것* https://wikidocs.net/book/2155 딥 러닝을 이용한 자연어 처리 입문 공부한 내용을 설명할 수 있을 정도로 정리하기 위해 기술 블로그가 아닌 책 형식으로 정리하고 있습니다. 잘 모르는 사람이 봐도 이해될 정도로 글을 쓰는 태도..

[W13D5] NLP : 단어 임베딩

단어 임베딩 : 단어의 의미를 이해하기 위해 어떻게 표현할 것인가? 글자의 나열? one-hot encoding? 좋은 표현방식: 단어 간의 관계를 잘 표현할 수 있어야 함 단어의 의미 어근(lemma),의미(sense) ex> 마우스는 쥐라는 뜻과 컴퓨터 주변기기 마우스가 있음. 복수형(mice)이나 단수형(mouse)이나 word-form은 다르지만, 모두 같은 어근임. 단어들의 관계는 어떤 것들이 있을까? 동의어(Synonyms) 문맥상 같은 의미를 가지는 단어들, 문장 안에서 단어를 교체해도 되는 경우 filbert / hazelnet couch / sofa automobile / car vomit / throw up 동의어라고 해서 항상 그 단어로 대체할 수 있는 것은 아니다. H2O / wat..

[W13D4] NLP : 문서분류

문서 분류(Text Classification) 문서 분류란? (자연어 처리 중 가장 중요한 분야, 다양한 세부 응용 분야가 있음, 가장 흔히 접할 수 있는 분야) 텍스트를 입력으로 받아 텍스트가 어떤 종류의 범주에 속하는지를 구분하는 작업 이 자체가 하나의 과제일 수도 있고, 이 과제의 결과물이 다른 작업을 위한 input이 되기도 한다. 다양한 문서 분류 주제들 문서의 범주, 주제 분류 예: CS 논문의 CS 주제분류 (multi-label classification - 하나의 논문이 여러 개의 주제로 분류될 수도 있음) 이메일 스팸 분류 감성 분류 예 영화: 리뷰가 긍정적/부정적? 제품: 새로운 아이폰에 대한 대중의 반응? 정치: 이 정치인에 대한 사람들의 생각? 예측: 감성 분류를 기반으로 선거 ..

[W13D3] NLP : 단어 모델

언어모델 다음 문장 다음에 이어질 단어는? Please turn your homework -> "in" or "out"? 다음 두 문장 중에 나타날 확률이 더 높은 것은? all of a sudden I notice three guys standing on the sidewalk on guys all I of notice sidewalk three a sudden standing the 목표: 문장이 일어날 확률을 구하는 것 다음 문장 다음에 이어질 단어는? 다음 두 문장 중 나타날 확률이 더 높은 것은? 왜 필요한가? 기계번역 (machine translation) 중국어 大风을 영어로 번역한다면? P(high winds tonight) > P(large winds tonight) 맞춤법검사 (spel..

[W13D2] NLP 텍스트 전처리

자연어 처리: 텍스트 전처리 자연어 처리란 자연어의 의미를 컴퓨터로 분석해서 특정 작업을 위해 사용할 수 있도록 하는 것 응용분야 기계번역, 감성 분석, 문서 분류, 질의응답 시스템, 챗봇, 언어 생성(ex> GPT), 음성인식, 추천 시스템 등... 최근의 딥러닝 분야의 인기 성장은 컴퓨터 비전 분야의 발전과 성공의 영향이 컸다. 자연어 처리에서는 비전만큼의 성공을 거두지 못해왔다. 그러다가 비전에 사용하던 알고리즘을 자연어 문제에 적용시켜서 성능 향상이 이뤄지기 시작했고, 요즘에는 성공적인NLP의 기술(ex> transformer model, BERT model)을 컴퓨터 비전에 적용시켜 발전시키고 있다. 참고 자료 Speech and Language Processing: http://web.stan..