본문 바로가기

전체 글

(413)
[Lobo's Theory]소프트웨어 개발 모델 2.소프트웨어 개발 모델 (1) 폭포수 모델. 문서가 명확하게. 전 과정을 순차적으로 접근. 각 단계의 검증 후에 다음 단계 진행. 되돌아갈수없다. 요구사항 변경어렵다 단계별 정의와 산출물이 명확하다. (2)프로토타이핑 모델 시제품을 만들어서 고객한테 보여주는 것. 개발자가 구축할 소프트웨어의 모델을 사전에 만들어 요구사항을 효과적으로 유도하고 수집한다. 계획수립-개발-사용자평가-구현-인수 장점:요구사항을 충실히 반영. 빠른 기간안에 결과물. 오류 초기 발견. 변경이 용이 단점:시간과 비용이 훨씬 많이 든다.사용자가 실제 제품과 혼동.문서작성 소홀.프로토타입 폐기 비용 (3)나선형 모델(Spiral Model) 계획하고 위험분석하고 개선하고 평가하는것을 계속 반복하며 모델 개선 폭포수 모델과 프로토타이핑..
[Lobo's Theory]소프트웨어 개발 방법론 개발할 소프트웨어에 필요한 과정들을 체계적으로 정리한 방법론입니다. 절차와 도구, 방법, 산출물, 기법 등 대표적인 방법론으로는 구조적 방법론, 정보공학 방법론, 객체지향 개발 방법론이 있습니다. (1)구조적 방법론 절차지향 방법론으로, 계획, 분석, 설계, 구현, 유지보수의 단계를 거칩니다. 하향식의 제한된 구조를 가집니다. 데이터 흐름도(DFD), 자료 사전(DD), 상태전이도(STD), MiniSpec 등을 사용합니다. DFD:데이터가 어떻게 흘러가는지 DD:데이터가 어떤 구조를 가지고 있는지 STD:상태가 어떻게 변경이 될것인가(ex.회원가입 1단계-2단계-3단계) MiniSpec:일처리를 상세하게 적어놓은 것 (2)정보공학 방법론 기업의 프로세스를 분석하여 소프트웨어를 개발하는 방법론입니다. 기..
Doc2Vec으로 공시 사업보고서 유사도 계산하기 Word2Vec은 단어를 임베딩하는 워드 임베딩 알고리즘이었습니다. Doc2Vec은 Word2Vec을 변형하여 문서의 임베딩을 얻을 수 있도록 한 알고리즘입니다. Word2Vec은 단어를 벡터화하는 워드 임베딩 알고리즘이고, Doc2Vec은 문서를 벡터화하는 독립적인 문서 임베딩 알고리즘입니다. Word2Vec은 단어의 분산 표현(distributed representation)을 학습합니다. 이는 단어를 고정된 차원의 벡터로 표현하면서도 각 단어의 의미와 관계를 보존하는 것을 의미합니다. Doc2Vec은 문서 전체를 하나의 벡터로 표현합니다. 이를 위해 Doc2Vec은 주어진 문서와 함께 그 문서가 속한 문서 집합(corpus)에 속한 다른 문서들도 함께 학습하는 것이 특징입니다. Word2Vec과 마..
단순한 word2vec 원래 word2vec은 구글에서 개발한 자연어 처리를 위한 도구로서, 단어를 벡터로 표현하여 단어 간의 유사성을 계산하는 기능을 제공하였습니다. 하지만 이후에 이 도구가 사용한 알고리즘인 CBOW와 skip-gram이라는 모델이 유명해져서, word2vec이라는 용어는 이 모델을 가리키는 것으로도 자주 사용되게 되었습니다. word2vec에서는 CBOW 모델과 skip-gram 모델 두 가지를 사용하며, 각각의 모델에 대해 신경망을 구성합니다. CBOW 모델은 주변 단어들을 입력으로 받아 중앙 단어를 예측하는 방식이고, skip-gram 모델은 중앙 단어를 입력으로 받아 주변 단어를 예측하는 방식입니다. 1.CBOW 모델의 추론 처리 CBOW 모델은 Context Bag of Words의 약자로, 주변 ..
추론 기반 기법과 신경망 통계 기반 기법과 추론 기반 기법 단어의 의미는 주변 단어와의 관계에 따라 형성된다는 분포 가설은 자연어 처리 분야에서 매우 중요한 개념 중 하나입니다. 통계 기반 기법과 추론 기반 기법은 이 분포 가설을 이용하여 단어를 벡터로 표현하는 방법 중 두 가지입니다. 통계 기반 기법은 주변 단어의 출현 빈도를 집계하여 단어를 벡터로 변환하고, 추론 기반 기법은 주변 단어가 주어졌을 때 중심 단어가 출현할 확률을 예측하여 단어를 벡터로 변환합니다. 1.통계 기반 기법의 문제점 통계 기반 기법은 주변 단어의 빈도를 기초로 단어를 표현한다. 단어의 동시발생 행렬을 만들고 그 행렬에 SVD를 적용하여 밀집벡터(단어의 분산 표현)을 얻었습니다. 통계 기반 기법 통계 기반 기법은 단어의 동시발생 행렬을 만들어서 해당 행..
문서 임베딩 : 워드 임베딩의 평균(Average Word Embedding) 임베딩은 단어나 문장을 벡터 형태로 표현하는 기술입니다. 따라서 특정 문장 내의 단어들의 임베딩 벡터들의 평균값을 구하면 그 문장의 벡터를 얻을 수 있습니다. 이를 활용하여, 문서의 벡터를 구하고 분류 모델의 입력으로 사용하는 방법이 있습니다. 이 경우, 단어의 순서나 문법적인 정보가 반영되지 않아서 성능이 다소 떨어질 수 있지만, 임베딩이 잘 학습되어 있다면 상대적으로 적은 계산 비용으로 효과적인 분류 모델을 구축할 수 있습니다. 1. 데이터 로드와 전처리 from tensorflow keras.datasets import imdb Keras에서 제공하는 imdb 데이터셋을 로드할 때 imdb.load_data()와 imdb.data_load() 두 가지 방법이 있습니다. imdb.load_data()..
임베딩 벡터의 시각화(Embedding Visualization) 구글은 임베딩 프로젝터(embedding projector)라는 데이터 시각화 도구를 지원합니다. 학습한 임베딩 벡터들을 시각화해봅시다. 임베딩 프로젝터 논문 : https://arxiv.org/pdf/1611.05469v1.pdf 임베딩 프로젝터(Embedding Projector)는 TensorFlow로 구현된 오픈소스 시각화 도구입니다. 임베딩 프로젝터는 워드 임베딩과 같은 다차원 벡터를 시각화하여 고차원 공간에서의 유사도를 직관적으로 이해할 수 있도록 도와줍니다. 이를 통해 임베딩 공간에서 단어들의 관계를 쉽게 파악하고, 데이터의 패턴을 발견하며, 모델의 성능을 개선할 수 있는 힌트를 얻을 수 있습니다. 임베딩 프로젝터는 구글에서 개발한 TensorFlow의 기능 중 하나이며, 웹 브라우저 상에서..
워드투벡터(Word2Vec) 원-핫 벡터 : 단어 벡터 간 유의미한 유사도를 계산할 수 없다 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 할 수 있는 방법이 필요합니다. 이를 위해서 사용되는 대표적인 방법이 워드투벡터(Word2Vec)입니다. 원-핫 벡터는 희소 표현 방법이기 때문에 단어 간 유사도를 계산하기 어렵습니다. 이러한 문제를 해결하기 위해 워드투벡터(Word2Vec)와 같은 방법이 개발되었습니다. 워드투벡터는 단어를 고정된 길이의 밀집 벡터로 표현하며, 이를 통해 단어 간 유사도를 계산할 수 있습니다. 워드투벡터는 인공 신경망 모델을 이용하여 학습하는데, 대표적인 모델로는 CBOW(Continuous Bag-of-Words)와 Skip-gram이 있습니다. http://w.elnn.kr/sear..