728x90
반응형

전체 글 112

[pytorch] 코사인 유사도(Cosine Similarity) | 코사인 유사도를 이용한 영화 추천 시스템 | cosine_similarity

앞서 TF-IDF (Term Frequency-Inverse Document Frequency)를 사용하여 텍스트 데이터를 벡터화하는 방법을 배웠습니다. 이제, 이 TF-IDF 벡터를 활용하여 문서 간 유사도를 계산해보려 합니다. 텍스트 데이터의 유사도를 측정하는 방법으로는 여러 가지가 있지만, 이번에는 코사인 유사도 (Cosine Similarity), 유클리드 거리 (Euclidean Distance), 그리고 자카드 유사도 (Jaccard Similarity)를 사용하여 영화 추천 시스템을 구축해 보겠습니다. - 코사인 유사도는 두 벡터 간의 방향을 기준으로 유사도를 측정합니다. 벡터의 크기와 관계없이 방향이 유사할수록 높은 유사도로 평가되기 때문에, 텍스트 데이터나 추천 시스템에서 자주 사용됩니다..

pytorch 2024.12.01

[오류Error] Resource punkt_tab not found. Please use the NLTK Downloader to obtain the resource:

텍스트 전처리 공부하는 중에 로컬에서 토크나이저를 수행하려고 하니 에러가 발생했다.sent_text = sent_tokenize(content_text){ "name": "LookupError", "message": "********************************************************************** Resource punkt_tab not found. Please use the NLTK Downloader to obtain the resource: >>> import nltk >>> nltk.download('punkt_tab') For more information see: https://www.nltk.org/data.html Attempte..

오류Error 2024.11.22

[pytorch] DTM과 TF-IDF | 텍스트 전처리 | 자연어 처리

DTM (Document-Term Matrix)이란?DTM은 여러 문서에서 단어의 빈도를 기록한 행렬(matrix)입니다. BoW와 유사하지만, 여러 문서 간의 단어 빈도수를 한꺼번에 분석할 수 있도록 확장된 형태입니다.- 행(Row): 문서 (Document)- 열(Column): 단어 (Term)- 값(Value): 특정 문서에 특정 단어가 등장한 빈도수DTM은 m x n 형태의 행렬로, `m`은 문서의 개수, `n`은 고유 단어의 개수를 의미합니다.  DTM의 예시다음과 같은 예제 문서들을 통해 DTM을 만들어 보겠습니다.문서 1: "나는 오늘 밥을 먹었다"문서 2: "밥을 먹고 운동을 했다"문서 3: "오늘 운동을 마치고 밥을 먹었다"1. 토큰화(Tokenization) 및 어휘 사전 생성  모든..

pytorch 2024.11.22

[pytorch] Bag of Words (BOW) | CountVectorizer

Bag of Words란?Bag of Words의 개념과 활용Bag of Words (BoW)는 문서를 단어의 빈도수로 표현하는 방법으로, 단어의 순서를 무시하고 각 단어가 문서에 얼마나 자주 등장했는지를 수치화하는 기법입니다. BoW는 단순하지만, 자연어 처리에서 기본적인 텍스트 표현 방법으로 널리 사용되며, 특히 문서 분류, 유사도 측정, 추천 시스템 등에서 유용합니다.Bag of Words의 특징BoW는 텍스트를 단어의 출현 빈도 기반으로 표현하기 때문에 두 가지 주요 특징을 가지고 있습니다. 1. 단어 순서 무시: BoW에서는 문장의 구조나 단어 순서를 전혀 고려하지 않습니다. 단어의 순서가 바뀌어도 단어 빈도만 같다면 BoW 벡터는 동일합니다.2. 단어 빈도 중심: BoW 벡터는 단어가 등장한 ..

pytorch 2024.11.19

[오류Error] FileNotFoundError: [Errno 2] JVM DLL not found: /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib"

텍스트 전처리 공부하는 중에 로컬에서 토크나이저를 수행하려고 하니 에러가 발생했다. # 불용어 정의stopwords = ['의','가','이','은','들','는','좀','잘','걍','과','도','를','으로','자','에','와','한','하다']# 형태소 분석기 OKT를 사용한 토큰화 작업 (다소 시간 소요)okt = Okt()  ------> 에러 { "name": "FileNotFoundError", "message": "[Errno 2] JVM DLL not found: /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib", "stack": "--------------------------..

오류Error 2024.11.15

[pytorch] 정수 인코딩(Integer Encoding) | Counter 와 FreqDist를 활용한 정수 인코딩 코드

정수 인코딩(Integer Encoding)은 자연어 처리에서 단어에 정수 인덱스를 할당하는 중요한 과정입니다.이 과정은 텍스트 데이터를 컴퓨터가 이해할 수 있도록 수치로 변환하며, 이후 원-핫 인코딩이나 워드 임베딩과 같은 심화된 작업의 기초가 됩니다. 정수 인코딩이란?정수 인코딩은 텍스트의 각 단어에 고유한 숫자를 할당하는 방식입니다. 가장 일반적인 방법은 텍스트에서 자주 등장하는 단어일수록 낮은 숫자를 부여하는 방식으로, 먼저 텍스트 데이터를 분석하여 등장 빈도가 높은 순서대로 단어 집합(vocabulary)을 생성합니다.이렇게 만들어진 단어 집합에서 가장 많이 사용되는 단어에는 낮은 숫자가 할당되고, 빈도가 낮은 단어일수록 높은 숫자가 할당됩니다. 예를 들어, 특정 텍스트 데이터에서 단어의 빈도를..

pytorch 2024.11.14

[pytorch] 정규 표현식(Regular Expression) | 특수 문자(metacharacters)| 모듈 함수 (module functions) | 정규 표현식을 이용한 토큰화 (RegexpTokenizer)

정규 표현식(Regular Expression)정규 표현식은 텍스트 전처리에서 유용한 도구로, 특정 규칙에 따라 문자열을 검색하고 조작할 수 있는 패턴 매칭 기술입니다.파이썬에서는 re 모듈을 통해 정규 표현식을 지원하며, 이를 사용하여 텍스트 데이터를 신속하게 정제하고 처리할 수 있습니다. 이번 포스팅에서는 정규 표현식의 문법, 주요 함수 및 실습 예제를 살펴보겠습니다.정규 표현식(Regular Expression) 실습  정규 표현식의 특수 문자(metacharacters). 기호 . 기호는 한 개의 임의의 문자를 나타냅니다.(줄 바꿈 문자 제외)따라서 패턴 "p.n"은 'p'로 시작하고, 그다음에 임의의 한 글자가 오며, 'n'으로 끝나는 문자열과 일치합니다.import rere = re.compi..

pytorch 2024.11.13

[pytorch] 어간 추출(stemming)과 표제어 추출 (Lemmatization)

자연어 처리(NLP)에서 어간 추출(Stemming)과 표제어 추출(Lemmatization)은 텍스트 데이터를 정제하고 분석하기 위한 전처리 과정입니다.이 두 기법은 단어의 형태를 변환하여 텍스트의 차원 수를 줄이고, 모델의 학습 성능을 향상하는 데 도움을 줍니다. 하지만 어간 추출과 표제어 추출은 각기 다른 방법론과 목적을 가지고 있습니다.어간 추출은 단어의 접사를 제거하여 기본 형태인 어간을 추출하는 기법으로, 규칙 기반 알고리즘을 사용하여 처리 속도가 빠르지만 의미의 정확성을 보장하지는 않습니다.반면, 표제어 추출은 단어의 문법적 맥락과 품사를 고려하여 사전에 나오는 기본 형태를 찾는 과정을 포함합니다. 이 과정은 보다 정교하며, 단어의 의미적 일관성을 유지합니다.이번 포스팅에서는 어간 추출과 표..

pytorch 2024.11.12

[pytorch] 불용어(stopwords)란? | 한국어 불용어 제거 | 영어 불용어 제거

불용어(stopwords)란?텍스트에서 의미 전달에 크게 기여하지 않는 단어들을 의미합니다.예를 들어, 한국어에서는 '그리고', '또는', '에서', '하지만' 같은 단어들이 불용어에 해당할 수 있으며, 영어에서는 'the', 'is', 'in', 'and' 같은 단어들이 있습니다.불용어 제거의 목적은 텍스트 데이터에서 의미를 효과적으로 분석하기 위해 불필요한 정보를 제거하는 것입니다. 불용어들은 문장에서 자주 등장하지만, 특정 주제나 의미를 분석하는 데 있어 중요한 정보를 담고 있지 않기 때문에, 이를 제거함으로써 모델의 성능을 개선할 수 있습니다. 불용어를 제거하면 데이터의 크기가 줄어들고, 모델이 중요한 특징에 집중하도록 돕는 효과가 있습니다.불용어 제거 방법은 주로 미리 정의된 불용어 목록을 사용..

pytorch 2024.11.04

[pytorch] 토큰화 | 토크나이저(Tokenization)

자연어 처리(NLP)의 세계에서 '토큰화'는 텍스트 데이터를 컴퓨터가 이해할 수 있는 형태로 변환하기 위한 과정 중 하나로, 자연어를 잘게 쪼개어 분석 가능한 단위로 만드는 작업을 말합니다. 이 글에서는 토큰화의 정의와 유형, 그리고 사용 사례에 대해 자세히 살펴보겠습니다.토큰화란 무엇인가?토큰화(Tokenization)는 문장을 의미 있는 단위인 '토큰'으로 분리하는 과정을 의미합니다. 여기서 토큰은 단어, 어절, 혹은 심지어 문자일 수도 있습니다. 예를 들어, "오늘 날씨가 좋다"라는 문장은 토큰화 과정을 통해 ["오늘", "날씨가", "좋다"]와 같은 단어 단위로 나눌 수 있습니다. 컴퓨터는 이러한 토큰들을 통해 자연어 텍스트를 분석하고 이해할 수 있습니다.토큰화의 유형토큰화는 크게 두 가지 주요 ..

pytorch 2024.10.31
728x90
반응형