Python 자연어 처리(NLP)는 인간의 언어 데이터에서 의미 있는 정보를 추출하고 분석하는 데 널리 사용되는 기술입니다. 중요한 NLP 응용 프로그램 중 하나는 단어 임베딩(word embedding)입니다. 이는 단어를 숫자형 벡터로 변환하여 단어의 의미를 벡터 공간의 실수 값으로 표현하는 기술입니다.
이 기사에서는 Python 및 NLP 라이브러리를 사용하여 단어 벡터 모델을 만들고 이에 대한 몇 가지 기본 분석을 수행하는 방법을 알아봅니다.
Python NLP 라이브러리 설치
Python에서 NLP 전용 라이브러리인 gensim 라이브러리를 사용하겠습니다. 사용하기 전에 먼저 로컬 컴퓨터에 gensim을 설치해야 합니다. 다음 명령을 사용하여 터미널에 gensim을 설치할 수 있습니다:
pip install gensim
데이터 준비
단어 벡터를 만들기 전에 입력할 텍스트 데이터를 준비해야 합니다. 이 예에서는 프로젝트 구텐베르크의 고전 소설을 입력 텍스트로 사용합니다.
다음 코드를 사용하여 구텐베르크 프로젝트 라이브러리를 다운로드하고 가져옵니다.
!pip install Gutenberg
fromgutenberg.acquire import load_etext
fromgutenberg.cleanup importstrip_headers
text = Strip_headers(load_etext(2701)).strip( )
여기에서는 Strip_headers 함수를 호출하여 소설의 상위 정보와 헤더를 제거합니다. 이제 이 텍스트를 단어 벡터 모델에 공급할 준비가 되었습니다.
단어 벡터 모델 만들기
Python을 사용하여 단어 벡터를 만들려면 다음 단계를 수행해야 합니다.
원본 텍스트를 단어 목록으로 변환
단어 목록을 사용하여 단어 벡터 모델 훈련
다음 코드에서는 분할합니다. 텍스트를 단어로 바꾸고, 어휘를 만들고, 단어를 정수로 인코딩하고, gensim 라이브러리를 사용하여 단어 벡터 모델을 훈련합니다.
from gensim.models import Word2Vec
import nltk
nltk.download('punkt')
raw_sentences = nltk.sent_tokenize(text)
sentences = [nltk.word_tokenize(sentence) for 문장 in raw_sentences]
model = Word2Vec( 문장, min_count=1)
먼저 nltk 라이브러리의 sent_tokenize 함수를 사용하여 텍스트를 문장으로 나눕니다.
그런 다음 nltk의 word_tokenize 함수를 사용하여 문장을 단어로 나눕니다. 그러면 중첩된 단어 목록이 반환됩니다.
Word2Vec 모델은 중첩된 단어 목록을 입력으로 사용하고 동시 발생 관계를 기반으로 단어 벡터를 학습합니다. min_count 매개변수는 단어를 고려하기 전 단어의 최소 발생 횟수를 지정합니다.
입력 데이터 세트의 크기와 컴퓨터 성능에 따라 모델을 훈련하는 데 다소 시간이 걸립니다.
모델 분석
다음 코드를 사용하여 단어 벡터 모델을 분석할 수 있습니다.
model.wv.most_similar('monster')
model .wv['monster']
len(model.wv.vocab)
model.save('model.bin')
model = Word2Vec.load('model.bin')
여기서 먼저 Most_similar 함수를 사용하여 Monster라는 단어와 가장 유사한 다른 단어를 찾습니다. 결과에는 단어 및 유사성 점수가 포함됩니다.
다음으로 단어 벡터 설명의 wv 속성을 사용하여 단어 몬스터의 벡터 표현을 찾습니다.
len(model.wv.vocab)은 모델의 어휘 크기를 확인합니다. 마지막으로 저장 및 로드 기능을 사용하여 모델을 저장하고 로드합니다.
결론
이번 글에서는 Python과 gensim 라이브러리를 사용하여 단어 벡터 모델을 만드는 방법을 배웠습니다. 텍스트를 단어 목록으로 변환하고 이 데이터를 사용하여 단어 벡터 모델을 학습하는 방법을 살펴보았습니다. 마지막으로 모델을 사용하여 주어진 단어와 가장 유사한 단어를 찾는 방법도 배웠습니다.
단어 벡터는 NLP에서 중요한 주제입니다. 이 기사를 통해 단어 벡터 분석을 위해 Python에서 NLP 라이브러리를 사용하는 방법을 배웠습니다.
위 내용은 Python의 자연어 처리 예: 단어 벡터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!