[NLP Project] 3. 데이터 학습을 위한 준비 (학습 데이터와 테스트데이터)
·
공부정리/NLP
tokenization.py from tensorflow.keras.preprocessing.text import Tokenizer # 정제 및 빈도수가 높은 상위 단어들만 추출하기 위해 토큰화 작업 def Token(sentences,ner_tags): max_words = 4000 src_tokenizer = Tokenizer(num_words=max_words,oov_token='-') src_tokenizer.fit_on_texts(sentences) tar_tokenizer = Tokenizer() tar_tokenizer.fit_on_texts(ner_tags) vocab_size = max_words tag_size = len(tar_tokenizer.word_index) + 1 return..
[NLP Project] 2. 토큰화 하기
·
Project/캡스톤디자인2
먼저 main.py를 생성하여 전체적인 실행을 관리할 파일을 만들었다. data_load.py import os # 파일 로드하고 텍스트파일 전처리하기 def file_load(file_path): tagged_sentences = [] sentences = [] with open(file_path,"r") as f: for line in f: if len(line) == 0 or line[0] == "\n": if len(sentences) > 0: tagged_sentences.append(sentences) sentences = [] splits = line.rstrip('\n').split('\t') if len(splits) == 3: sentences.append([splits[1],split..
[NLP Project] 1. 데이터 로드하고 전처리하기
·
Project/캡스톤디자인2
데이터를 로드하고 전처리해봅시다 사용한 데이터는 네이버 ner 데이터 셋을 이용하였습니다. 데이터셋 출처 -> https://github.com/naver/nlp-challenge GitHub - naver/nlp-challenge: NLP Shared tasks (NER, SRL) using NSML NLP Shared tasks (NER, SRL) using NSML. Contribute to naver/nlp-challenge development by creating an account on GitHub. github.com 해당 데이터셋을 텍스트파일로 바꾸어 사용하였습니다. 데이터는 이렇게 각 문장의 인덱스와 단어, 개체명 순서로 있습니다. 그럼 데이터를 사용하기 편하도록 전처리 해보겠습니다. ..
리눅스에 파이썬 설치하기
·
python/기초
이 문서는 파이썬3.6이나 3.8을 우분투 리눅스에 설치하는 방법을 다룹니다. 파이썬3의 어느 버전이 설치되었는지를 확인하려면 커맨드 프롬프트를 열고 실행해보세요. $ python3 --version 우분투 16.10이나 그보다 최신 버전을 사용하고 있다면 아래의 커맨드로 파이썬3.6을 쉽게 설치할 수 있습니다. $ sudo apt-get update $ sudo apt-get install python3.6 다른 버전의 우분투(예를 들면 최신 LTS 릴리즈)를 사용하고 있다면 혹은 더 최신 버전의 파이썬을 사용하고 싶다면 `deadsnakes PPA `_을 사용해서 파이썬3.8을 설치하기를 추천합니다. $ sudo apt-get install software-properties-common $ sudo..
requirements.txt 만들기
·
python/기초
이런식으로 필요한 라이브러리를 작성하고 해당 라이브러리 버전에 맞게 설치할 수 있는 방법을 알아봅시다. 가상환경(venv)이나 현재 파이썬에 pip로 설치된 패키지에 대한 정보를 requirements.txt라는 하나의 파일로 만들 수 있습니다. requirements.txt를 사용하면 또 다른 가상환경(venv) 혹은 다른 파이썬 환경에서 똑같은 패키지를 설치해야 하는경우 단 한번의 명령어로 requirements.txt.에 정의되있는 패키지들을 설치할 수 있습니다. pip freeze 명령어를 통해 requirements.txt를 생성할 수 있습니다. $ pip freeze > requirements.txt -r 옵션을 통해 requirements.txt에 정의되있는 패키지들을 설치할 수 있습니다. ..
[NLP] Mecab 형태소 분석기 품사 태그
·
공부정리/NLP
[NLP] 개체명 인식 참고 사이트
·
공부정리/NLP
https://github.com/songys/entity GitHub - songys/entity: 날짜, 장소, 사람, 기관, 시간 날짜, 장소, 사람, 기관, 시간. Contribute to songys/entity development by creating an account on GitHub. github.com 개체명 태그
[NLP] Pororo 언어 모델 기반 문장 토큰 분류
·
공부정리/NLP
Pororo 언어 모델 기반 문장 토큰 분류 Pororo(Platform Of neuRal mOdels for natuRal language prOcessing) Pororo는 카카오 브레인에서 제공하는 자연어 처리 플랫폼 입니다. Pororo는 Platform Of neuRal mOdels for natuRal language prOcessing의 약자이며 HuggingFace와 유사한 목적이라고 생각할 수 있습니다. 한국어, 영어, 중국어, 일본어 등 여러가지 언어로 30가지 이상의 자연어 처리모델이 구현되어 있습니다. 자연어 처리를 모르더라도 간단한 코드로 개체명 인식, 기계 독해, 기계 번역, 요약, 감정 분류 등의 태스크를 수행 할 수 있습니다. https://github.com/kakaobra..
[NLP] Sentence transformer를 이용하여 텍스트 유사도 구하기 with korQuad Dataset - (3) 명사 추출
·
공부정리/NLP
지난번에는 직접 입력을 하여서 해당 질문과 유사한 질문을 추출하고, 그 질문의 문맥과 해당 문맥에 있는 질문들도 추출하였습니다. 이번에는 질문을 입력하는 것이 아닌, 학습되지 않은 문장을 입력하여 그 문장에서 명사를 추출하고 추출한 명사를 input으로 넣어 텍스트 유사도를 통해 질문들을 추출해보겠습니다. 지난 코드 리뷰 QA 함수에서 입력한 질문을 실행했었음 명사 추출 코드 - 문맥에서 두글자 이상인 명사를 추출합니다. - 명사의 출현 빈도를 추출합니다. from konlpy.tag import Okt from collections import Counter def noun_preprocess(data): # Okt 객체 선언 okt = Okt() noun = okt.nouns(data) for i,v..
[NLP] Sentence transformer를 이용하여 텍스트 유사도 구하기 with korQuad Dataset - (2)
·
공부정리/NLP
지난 포스팅에서 더 나아가 질문을 하면, 그 질문에 비슷한 질문 문장들을 추출하고 해당 질문의 문맥과 다른 질문들도 출력하는 코드를 구현하였습니다! def find_sentens(query, top_k ): query_embedding = model.encode(query, convert_to_tensor=True) cos_scores = util.pytorch_cos_sim(query_embedding, question_embeddings)[0] cos_scores = cos_scores.cpu() #We use np.argpartition, to only partially sort the top_k results top_results = np.argpartition(-cos_scores, range(..
[NLP] Fine Turning - Hugging face
·
공부정리/NLP
Sharing models and tokenizers - Hugging Face Course Using pretrained models The Model Hub makes selecting the appropriate model simple, so that using it in any downstream library can be done in a few lines of code. Let’s take a look at how to actually use one of these models, and how to contribute back to huggingface.co 위의 링크의 내용 1. 파이프라인 패키지를 통해 불러오기 - 가장 단순하지만 Task에 맞는 모델을 불러와야함. 2. 모델 아키텍쳐 패키..
[라이브러리] from collections import deque
·
python/라이브러리
from collections import deque deque는 스택과 큐의 기능을 모두 가진 객체로 출입구를 양쪽에 가지고 있다. 스택처럼써도 되고, 큐처럼 써도 된다. 여러가지 메서드를 이용해서 이런 기능을 구현한다. 먼저 deque를 만들어보자 >>> from collections import deque >>> dq = deque('love') >>> dq deque(['l', 'o', 'v', 'e']) 문자열을 이용해 deque를 만들면 각 문자가 요소로 된 리스트 형태의 deque가 만들어진다. 1. 스택 구현 : append(), pop() 스택은 마지막(오른쪽끝)에서 입출력한다. 입력시에는 append() 메서드를 이용하고, 출력시에는 pop()을 이용한다. >>> dq.append('m..