2023년 4월 22일 토요일

오픈소스 NLP 텍스트 마이닝 spacy 기반 텍스트 컨텐츠 유사도 계산 및 분석 방법

이 글은 오픈소스 spaCy 기반 텍스트 컨텐츠 유사도 계산 및 분석 방법을 간략히 다룬다. 

소개
spaCy는 Python, Cython 기반 고급 NLP 자연어 처리를 위한 라이브러리이다. 가장 최신 연구를 기반으로 개발되었다. 처음부터 산업계 제품에 사용되도록 설계되었다. 이를 통해, 효과적인 텍스트 마이닝을 가능하게 한다. 

spaCy는 사전 훈련된 딥러닝 모델을 사용한 파이프라인과 함께 제공된다. 현재 70개 언어에 대한 토큰화, 훈련을 지원한다. 태깅, 구문 분석, 엔터티 인식, 텍스트 분류 등을 위한 신경망 모델, BERT와 같은 사전 훈련된 모델 변환기를 사용한다. 멀티태스킹 학습, 훈련 시스템 및 모델을 제공한다. 패키징, 배포, 워크플로우 관리를 제공한다. 

spaCy 아키텍처
word2vec 모델 기반 유사도 계산 예시 (github.com/explosion/sense2vec)

환경설정하기
다음 명령을 터미널에서 실행한다.
pip install spacy
python -m spacy download en_core_web_md
python -m spacy download en_core_web_lg
python -m spacy download en


코딩하기
파이썬 코드를 아래와 같이 입력해 실행해본다.
import spacy
nlp = spacy.load("en_core_web_lg")
#nlp = spacy.load("en_core_web_md")

doc1 = nlp(u'the person wear red T-shirt')
doc2 = nlp(u'this person is walking')
doc3 = nlp(u'the boy wear red T-shirt')

print(doc1.similarity(doc2)) 
print(doc1.similarity(doc3))
print(doc2.similarity(doc3)) 

결과 doc1, doc2 문장 간의 유사도가 계산되어 출력될 것이다.

레퍼런스

댓글 없음:

댓글 쓰기