# fasttext

17개의 포스트

GNN과 문자형 변수 처리

표제어 추출이 완료된 'Book-Title' column을 벡터로 만드는 두 가지 방법이 있다. Two Way to Embeddig Test Label Encoder+Embeddign Layer : 하지만 각 책 제목을 하나의 벡터로 표현하기 때문에, 책 제목 내의 개별 단어들 사이의 관계를 고려하지 못할 수 있다. 그럼에도 불구하고, 간단한 방법으로 적용해 볼 만한 가치는 있다. word embeddign model : 텍스트 데이터를 토큰화하고, 각 토큰(단어)에 대해 임베딩을 수행한 후, 책 제목에 대한 전체 벡터를 얻기 위해 각 단어 벡터를 평균하거나 합산한다. 이 방식은 책 제목 내의 단어들 사이의 관계를 더 잘 고려할 수 있다. Token 텍스트 데이터를 토큰화한다는 것은 문자열을 의미 있는 단위(토큰)로 나누는 것이다. 일반적으로 토큰은 단어로 간주되며, 이 경우 단어를 기준으로 문자열을 나눈다. 만약 데이터가 이미 표제어 추출이 완료되어

2023년 4월 28일
·
0개의 댓글
·
post-thumbnail

Fasttext 모델을 활용한 Text-analysis

다음 링크를 참고하여 실습을 진행했습니다. (https://github.com/sw-song/text-analysis/blob/main/01sentencesimilarity.ipynb) 0. 문장 선정 배경 chatGPT로부터 필요한 문장에 관해 필요조건을 설명하고 문장을 추천받아 보았습니다. 아래 실습 내용에 사용된 doc1, doc2, doc_3에서 확인해보실 수 있습니다. 1. 문장의 유사도를 계산하는 방법 문장의 유사도를 계산하기 위해서는 기본적으로 단어를 숫자, 벡터로 표현해야 합니다. 즉, 유사도 혹은 거리를 수학적으로

2023년 3월 1일
·
0개의 댓글
·
post-thumbnail

단어 임베딩

단어 임베딩 : 단어를 낮은 차원의 벡터로 나타내는 것 원핫 인코딩은 sparse, 용량 많이 차지, 단어 의미 고려 안함 단어의 의미를 좌표로 나타내는 것 또는 수치화 → 의미가 비슷한 단어들은 비슷한 값을 가짐 단어 임베딩의 다차원 공간상에서 방향에 의미가 있어야 함 단어 임베딩 만드는 방법 (데이터가 적을때) NMF : 문서단어행렬에서 토픽모델링 (문서,토픽), (토픽, 단어) .. (데이터 중간) GloVe: 두 단어가 함께 나타난 관계를 이용 (데이터 많음) Word2Vec: 신경망 언어 모형을 이용 Word2Vec 두 단어의 임베딩을 신경망에 입력했을 때, 두 단어가 가까이 나올 확률을 계산하는 신경망을 만들어 학습 ![](https://velog.velcdn.com/images/hajeongjj/post/7f194cc1-37ba-4a10-8438-2

2022년 12월 30일
·
0개의 댓글
·
post-thumbnail

[논문리뷰] FastText

Abstract 기존의 인기있는 모델들은 단어마다 다른 벡터를 할당하여 단어의 형태를 무시한다. 큰 어휘들과 드물게 사용되는 단어에 한계가 있다. 이 한계를 극복하기 위해 본 논문에서는 skipgram 기반 모델로, 각각의 단어를 character n-gram 벡터의 조합으로 표현했다. 이 방법으로 학습속도가 빨라지고 학습데이터에 등장하지 않은 단어도 표현이 가능해졌다. 우리는 9개의 다른 언어에 대해 단어 유사도 및 추론 테스크로 평가한 결과 SOTA를 달성했다. introduction 대부분의 기존 모델들은 파라미터를 공유하지 않는 다른 고유의 벡터로 각각의 단어를 표현했다. 하지만 이는 내부구조를 무시하게 되어 형태학적으로 복잡한 언어를 제대로 표현하지 못했다. turkish, finnish 같은 복잡한 언어를 표현하는데 한계가 있었다. 많은 단어의 정보는 일정한 규칙을 따르나, 철자 단위 정보를 사용하여 벡터 표현을 향상시키는 것이 가능하다. 본 논문에서는 문자 n

2022년 9월 4일
·
0개의 댓글
·
post-thumbnail

다양한 NLP Embedding 기법.araboja

Embedding embedding(임베딩)은 사람이 사용하는 언어(자연어)를 컴퓨터가 이해할 수 있는 언어(숫자) 형태인 vector(벡터)로 변환한 결과 혹은 일련 과정을 의미한다. 임베딩의 역할은 (1) 단어 및 문장 간 관련성 계산과 (2) 의미적/문법적 정보 함축이다. 임베딩은 방법에 따라 희소 표현 기반 임베딩, 횟수 기반 임베딩, 예측 기반 임베딩, 횟수/예측 기반 임베딩으로 분류할 수 있다. 1. 희소 표현 기반 임베딩 희소 표현(sparse representation) 기반 임베딩은 대부분 값이 0으로 채워진 경우로, 대표적으로 one-hot encoding이 있다. > #### One-hot Encoding one-hot encoding이란, 주어진 텍스트를 vector로 변호나해 주는 것이다. 즉, N개의 단어를 각 N차원의 벡터로 표현하는 방식으로, 단어가 포함된 위치에 1을, 나머지에 0을 채운다. >

2022년 7월 1일
·
0개의 댓글
·
post-thumbnail

[자연어처리] Static Word Embedding 후 결과 비교 분석하기

영화 감상이 취미인 나는 거의 매주 영화관에 가서 개봉하는 영화들을 챙겨봤었는데 영화를 많이 보다 보니 좋아하는 영화 감독이 생겼고 그들의 영화가 개봉하면 꼭 챙겨보고 있다. 좋아하는 감독들의 작품 성격은 완전히 다른데 문득 내가 왜 그 감독의 영화를 좋아하는지 그들의 영화에는 어떤 특징이 있는지 궁금증이 생겼다. 그래서 내가 좋아하는 감독의 영화에는 어떤 특징이 있는지, 감독 별 특징을 키워드로 정리해 볼 수 있을지 단어 임베딩 기법-Word2Vec, GloVe, FastText-을 시각화하여 알아보기로 했다. 1. 데이터 수집 감독 별 특징을 분석하기 위해서는 각 영화의 특징이 포함되어 있는 데이터가 필요한데 영화의 줄거리나 위키피디아의 감독 혹은 영화 정보로는 이들의 특징을 추출하기 어려웠다. 고민 끝에 관람객들의 생각, 즉 영화 한줄평을 대량으로 수집한 후 감독과 관련된 키워드를 추출하면 원하

2022년 6월 21일
·
0개의 댓글
·

NLP 기초 (3)

FastText (패스트 텍스트) FaceBook 에서 개발한 Word2Vec 알고리즘 단어 단위에서 더 쪼깬 "subword" 의 개념을 도입 글자 단위의 n-gram mouse의 3-gram 표현은 = : 5개의 embedding vector 필요 Then, mouse = Why..? > >- 데이터세으로 학습하는 단어의 수 : 많아봐야 수만 ~ 수십만개 >- 한 언어의 모든 단어 학습이 불가능 >- 모르는 단어 (Out-of-Vocabulary, OOV) 가 등장할 경우 대처? Word2Vec, GloVe에서는 처리 불가능 (처리 불가 error) Ex) backdrop = back + d

2022년 5월 23일
·
0개의 댓글
·

[Aiffel] 아이펠 48일차, 49일차 개념 정리 및 회고

48일차 1. 텍스트 데이터 다루기 > 키워드 토큰화 공백 기반 형태소 기반 Wordpiece 유사도 계산: 코사인 기반 Distributed representation 1) 자연어와 인공어 |자연어|인공어| |:-:|:-:| |context sensitive language|context free language| |context sensitive grammar|context free grammar| 자연어를 다루는 것이 어려운 이유: parshing 에서의 어려움 자연어 처리에서 중요한 것 워드 벡터: 단어 의미를 의미 벡터 공간에 매핑하는 방법 의미를 파악함으로써 파서를 이용해서 해결할 수 없었던 과정의 정확한 처리를 가능하게 함. 토큰화: 자연어를 의미 단위로 쪼개는 기법 토큰화에 따라 같은 문장으로 다른 워드 벡터 리스트를

2022년 3월 17일
·
0개의 댓글
·
post-thumbnail

[TIL] Word2Vec, fastText

분산 표현 (Distributed representation) 분포 가설은 유유상종이라는 사자성어처럼 비슷한 의미를 지닌 단어는 주변 단어의 분포도 비슷하다는 가설이다. 예를 들어서 나는 귀여운 강아지를 봤다와 나는 예쁜 강아지를 봤다라는 두문장이 있다 이때 귀여운과 예쁜은 해당 단어 주변에 분포한 단어가 유사하기 때문에 비슷한 의미를 지닐 것이라고 가정하는 것이 바로 분포 가설이다. 그리고 이 분포 가설에 기반해 주변 단어 분포를 기준으로 단어의 벡터 표현이 결정되기 때문에 분산 표현이라고 부른다. One-hot Encoding 원-핫 인코딩은 단어를 벡터화 할 때 선택가능한 제일 쉬운 방법이다. 머신러닝을 배울 때 이미 한번 접했던 것이라서 간단하게 원핫 인코딩이 어떻게 되는지만 짚고 넘어가려고 한다. I saw a cute puppy 라는 문장을 원핫 인코딩 했을 때 다음과 같이 인코딩 된다. ![]

2021년 12월 27일
·
0개의 댓글
·

fasttext 단어 학습

bin 파일 만들기 첫번째 인자로는 파일주소를 넣어줘야한다. 학습하는 파일은 스트링으로 되어 있으며, 구분자는 \n과 띄어쓰기로 되는것으로 추정 이것도 된다고는 하는데 난 안됐음... 그래thㅓ 조금 슬펐ㄷr,,, 😿 😿 😿 계속 파일을 training하는데 사용할 수 없다는 에러 발생으로 인해 실패 vec파일 만들기 첫번째 줄에는 임베딩의 크기를 나타내는 값이 들어가고 두번째 줄부터 벡터값이 단어와 함께 들어가게 된다. 리스트 형태로 들어있는 vector값들을 띄어쓰기가 구분자로 들어가는 문자열로 바꿔서 저장해준다.

2021년 11월 29일
·
0개의 댓글
·
post-thumbnail

Embedding이 중요한 이유

Embedding이 중요한 이유 임베딩에는 Corpus의 의미, 문법 정보가 함축되어있다. 임베딩은 Vector이므로 연산이 가능하며, 단어/문장/문서 간의 유사도를 측정할 수 있다. 전이학습(Transfer Learning)을 통해 Fine-tuning하여 과제에 맞게 업데이트. 효과적인 이유가 제로베이스에서 시작하는 것이 아니라 이미 훈련되어진 임베딩 위에 구현하기 때문 > 품질 좋은 임베딩은 잘 담근 김치와 같습니다. 김치 맛이 좋으면 물만 부어 끓인 김치찌개 맛도 좋습니다. 임베딩 품질이 좋으면 단순한 모델로도 원하는 성능을 낼 수 있습니다. 모델 구조가 동일하다면 그 성능은 높고 수렴(converge)은 빠릅니다. 자연어 처리 모델을 만들고 서비스할 때 중요한 구성 요소 하나만 꼽으라고 한다면, 저는 주저하지 않고 ‘임베딩’을 꼽을 것입니다. 출처 : https://ratsgo.github.io/blog/

2021년 11월 17일
·
0개의 댓글
·

[TIL]파이토치 딥러닝 프로젝트 모음집_국민청원분류

한 줄씩 따라 해보는 파이토치 딥러닝 프로젝트 모음집 책 내용을 colab을 통해 작성 및 실행 국민청원 분류하기 크롤링 : API형태로 변경 : lovit님의 청와대 국민청원 데이터셋 데이터 전처리 토크나이징 및 변수생성 : konlpy(Twitter) -> pynori 단어 임베딩 : word2vec -> fasttext 실험 설계 : torchtext 호환 적용(colab설치버전) Text CNN 출판사 : https://github.com/bjpublic/DeepLearningProject/tree/main/petitions_classification My Colab : https://colab.research.goog

2021년 10월 22일
·
0개의 댓글
·
post-thumbnail

FastText 와 LDA 이해하기

이번에 프로젝트를 마무리 함에 있어서 FastText 와 LDA에 대해 다시 한 번 정리하는 시간을 가져보고자 한다. LDA 탄생 계기 우선 LDA 즉 잠재 디리클레 할당에 대해서 이해 하기 위해서 토픽 모델링과 기존에 작성하였던 TF-IDF로 추천 시스템 구현하기를 읽어 보면 이해하기 쉽다. TF-IDF 추천시스템 구현하기 TF-IDF 에서 단점으로 말했던 것처럼 단어의 의미

2021년 10월 11일
·
0개의 댓글
·

Distributed Representation

학습내용 Embedding 단어를 고정 길이의 벡터, 즉 차원이 일정한 벡터로 나타내는 것을 의미함. 임베딩 방법으로 count based representation, distributed representation 등이 있다. Distributed Representation 벡터로 표현하고자 하는 타켓 단어가 해당 단어 주변 단어에 의해 결정되는 방법이다. Word2Vec, fastText 등이 여기에 해당한다. 단어 벡터를 이렇게 정하는 이유는 '비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다'라는 분포가설 때문이다. 이 분포 가설에 기반하여 주변 단어 분포를 기준으로 단어의 벡터 표현이 결정되기 때문에 분산 표현(Distributed representation)이라고 부르게 된다. 1. Word2vec CBow(Continuous Bag-of-words) : 주변 단어에 대한 정보를 기반으로 중심 단어의 정보를

2021년 6월 16일
·
0개의 댓글
·
post-thumbnail

Lecture 12 – Subword Models

작성자: 숭실대학교 산업정보시스템공학과 이수민 Linguistics (언어학) Human language sounds: phonetics and phonology Phonetics 음성학 사람의 말소리를 연구하는 학문 Phonology 음운론 언어학의 첫 번째 단계 사람은 입으로 무한의 소리를 만들어낼 수 있지만, 언어로 표현될 때는 이 연속적인 소리가 범주형으로 나눠져서 인식됨. ex) caught and cot > ※ 범주적 지각 (Categorical perception) 사전적 의미는 연속체를 따라 변수에 점진적인 변화가 있을 경우의 구별 범주에 대한 지각 현상 광범위한 음향 신호를 제한된 수의 소리 범주로 지각되는 결과를 낳을 때, 즉 우리에게 실제로 들리는 말소리는 소리 주파의 연속적인 변화인데도 우리가 이를 '말소리 범주'로 지각하는 것을 말합니다. 범주 내의 차이 (differences within the

2021년 5월 26일
·
11개의 댓글
·

fasttext 훈련 시 pretrainedVectors 추가하기

훈련 대상 데이터의 크기에 비해 컴퓨팅 자원이 부족해, 여러 번 나누어 훈련하는 방법을 찾다가 fasttext train_unsupervised 함수에 pretrainedVectors argument를 추가할 수 있다는 것을 발견했다. vector 파일 생성 훈련을 마친 모델을 이용해, 훈련한 단어와 벡터 쌍을 저장한다. 위 과정을 마치면 아래와 같은 vector 파일이 생성된다. 다른 데이터로 훈련 시 train_unsupervised 의 pretrainedVectors argument로 해당 파일 경로를 추가한다. 참고 [https://github.com/facebookresearch/fastText/blob/master/docs/unsupervised-t

2020년 12월 3일
·
0개의 댓글
·

Enriching Word Vectors with Subword Information(fasttext)

Fasttext 논문(Enriching Word Vectors with Subword Information)을 리뷰해 보았습니다. 슬라이드쉐어에 동일한 내용을 업로드 하였으며, 슬라이드쉐어에서 보시려면 이곳을 확인해 주세요. 1   Introduction 2   General Model ![](https://images.velog.io/images/gwkoo/post/52ac2356-81c7-468b-b97b-6c94ec06f31c/fasttext_page-0003.j

2020년 8월 16일
·
0개의 댓글
·