RNN(Recurrent Neural Network)과 POS (Part-of-speech) tagging의 관계에 대해 알아보자. 순차적 데이터 모델링 : RNN은 특히 NLP의 문장과 같이 순차적 데이터를 포함하는 작업에 적합하다. POS tagging은 본질적으로 시쿼스(또는 문장)의 각 단어에 tag가 할당되는 sequence labeling 작업이다. 컨텍스트 인식 : POS tagging에 RNN을 사용할 때의 주요 이점 중 하나는 숨겨진 상태(hidden state)를 통해 컨텍스트를 유지할 수 있다는 점이다. 이를 통해 POS tag를 할당할 때 문장 내 단어의 문맥을 고려할 수 있으며, 이는 문맥에 따라 여러 단어가 서로 다른 tag를 가질 수 있기 때문에 매우 중요하다. End-to-e..
RNN 또는 순환 신경망은 시계열(time series, 일정 시간 간격으로 배치된 데이터들의 수열), 주식 가격 및 NLP 텍스트와 같은 데이터 시퀀스에서 패턴을 인식하기 위해 설계된 인공 신경망 (Artificial Neural Network)의 한 유형이다. 이러한 네트워크의 "순환, 반복적(recurrent)" 특성은 RNN의 아키텍처에서 비롯되는데, 정보가 지속될 수 있는 루프(loop)를 가지고 있어 입력 데이터 포인트의 순서와 컨텍스트가 중요한 작업에 매우 적합하다. RNN과 관련된 몇 가지 주요 특징 및 개념에 대해 알아보자. Memory Cells (메모리 셀) : Feed-Forward 네트워크와 같은 전통적인 신경망은 이전 입력에 대한 메모리가 없다. 반면, RNN은 메모리 셀을 가지..
NLP에서 POS는 단어가 문법적 기능(syntactic functions)에 따라 할당되는 카테고리를 의미한다. 예를 들어, 영어 문법에서 단어들은 Noun(명사), Verb(동사), Adjective(형용사), Adverb(부사), Pronoun(대명사), Preposition(전치사), Conjunction(접속사), Interjection(감탄사)와 같은 클래스로 분류된다. POS tagging은 텍스트의 각 단어에 해당하는 품사로 표시(labeling)하는 작업이다. 이는 named entity recognition (명명된 엔티티 인식), parsing, sentiment analysys 같은 하위 작업에 유용하다. POS tagging을 위한 다양한 알고리즘과 도구가 있으며, rul-base..
Multinomial Naive Bayes에 대해 다시 한 번 간단히 짚어보고, 예시를 살펴보자. Multinomial Naive Bayes는 불연속 데이터에 적합한 Naive Bayes classifier의 변형으로, 텍스트 분류의 맥락에서 단어 수 또는 TF-IDF score 같은 기능과 함께 자주 사용된다. 문제 : 영화 리뷰를 "Positive"와 "Negative"로 분류 Training Data : "I love this movie. It's amazing!" - Positive "A wonderful film with great characters" - Positive "I really disliked this move." - Nagative "Such a waste of time." - N..
NLP에서 단어, 구문 또는 전체 문서를 벡터로 변화하는 대표적인 기술로 Count Vectorizer, TF-IDF, Word2Vec, GloVe가 있다. 각각에 대해 알아보자. Count Vectorizer (카운트 벡터라이저) 설명 : 텍스트 데이터를 표현하는 방법으로, 각 문서 (또는 텍스트 세그먼트)에 대해 각 단어의 발생 횟수를 계산해 각 요소가 어휘의 단어에 해당하는 벡터로 문서를 표현한다. 벡터의 길이는 어휘의 크기이며, 각 요소의 값은 문서에서 해당 단어의 개수다. 사용 사례 : 텍스트 분류, 클러스터링 등을 위한 고전적인 머신 러닝 모델에서 주로 사용된다. 특징 : 단어 간의 의미론적 의미나 관계를 포착하지 않고, 의미는 비슷하지만 형태가 다른 단어(예: run과 running)는 별개..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FI7Di/btsy6jEchJl/ubEr7ukCkvwNX0xlTjupM0/img.png)
Naive Bayes는 분류(classification) 작업에 특히 적합한 확률론적 머신 러닝 classfier로, 스팸 이메일 탐지, 감성 분석, 텍스트 분류와 같은 NLP (Natural Language Processing, 자연어 처리) 작업에 자주 적용된다. Naive Bayes의 기본 아이디어는 event와 관련이 있을 수 있는 조건에 대한 사전 지식을 바탕으로 event의 확률을 설명하는 Bayes' theorem (베이즈 정리)에 뿌리를 두고 있다. NLP에서 'event'는 종종 텍스트의 범주 또는 클래스 (class) (예를 들어, '스팸' 또는 '스팸 아님')을 의미하며, '조건 (condition)'은 텍스트에 특정 단어가 있는지 또는 없는지를 의미한다. Bayes' theorem은..
앞선 포스팅(https://danielcs.tistory.com/184)에서 살펴봤듯이 TF-IDF는 컬렉션 또는 말뭉치(corpus)에서 단어가 문서에 얼마나 중요한지를 반영하는 데 사용되는 수치 통계다. 정보 검색 및 텍스트 마이닝에서 가장 널리 사용되는 용어 가중치 체계 중 하나다. 기본 개념은 모든 문서에서의 빈도와 빈교해 특정 문서에서 얼마나 자주 사용되는지에 따라 용어에 가중치를 부여하는 것이다. 이는 특정 문서에 더 고유한 단어를 강조하는 데 도움이 된다. 계산하는 방법을 간단하게 살펴보고, 예시를 통해 이해해보자. TF (Term Frequency): 한 문서에 한 단어가 얼마나 자주 등장하는지를 측정 : TF (t, d) = 문서 d에 용어 t의 등장하는 횟수 / 문서 d의 모든 단어의 ..
포인터는 C와 C++를 비롯해 많은 프로그래밍 언어에서의 기본 개념으로, 메모리 주소에 직접 접근을 제공해 동적 메모리 관리르 가능하게 하며 기타 기능을 제공한다. 그러나 이러한 기능에는 잠재적인 함정이 있다. 포인터 사용의 장점과 단점을 알아보자. 1. 장점 동적 메모리 할당 : (malloc(), calloc(), new 등) 동적 메모리 할당이 가능하며, 이는 애플리케이션의 필요에 따라 런타임 중에 메모리를 할당할 수 있음을 의미한다. 이건은 linked list, tree, graph와 같은 많은 데이터 구조에 필수적이다. 효율성 - 추가로 다룰 예정 : 프로그램의 실행이 더 효율적으로 될 수 있다. 메모리에 직접 접근하면 (데이터를 복사하는 대신) 특정 작업을 더 빠르게 수행할 수 있다. 유연성..
C++은 Overloading과 함께 Overriding도 제공한다. overriding은 파생된 클래스에서 기존 클래스의 멤버 함수를 새로운 정의로 재정의하는 것을 말한다. overriding은 주로 inheritance(상속)과 polymorphism(다형성)을 구현할 때 사용된다. 기본 클래스의 함수를 override하려면, 해당 함수는 반드시 'virtual'로 선언돼야 하고, private 멤버 함수는 직접적으로 접근이 불가하다(간접적으로는 reference(참조)를 통해 override 가능). class Animal { public: virtual void sound() { std::cout
Java와 마찬가지로 C++역시 overloading을 제공한다. overloading은 같은 이름의 함수나 연산자를 여러 번 정의하지만, 매개변수의 유형이나 개수가 달라야 한다. 이를 통해 동일한 함수 이름을 사용해 다양한 데이터 유형에 대한 다양한 작업을 수행할 수 있다. 아래 예시를 살펴보자. 같은 'add'라는 이름을 갖지만 위에는 int에 대한 연산을, 아래는 double에 대한 연산을 수행한다. int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; }
- Total
- Today
- Yesterday
- ml
- Android
- 리트코드
- I2C
- 투 포인터
- The Economist Espresso
- machine learning
- 파이썬
- 오블완
- Computer Graphics
- defaultdict
- 이코노미스트
- 안드로이드
- 머신 러닝
- leetcode
- The Economist
- min heap
- 소켓 프로그래밍
- 티스토리챌린지
- tf-idf
- Hash Map
- 이코노미스트 에스프레소
- Python
- DICTIONARY
- vertex shader
- join
- java
- C++
- 딕셔너리
- socket programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |