728x90

인공지능 14

[연관어 분석] 크롤링 + 전처리 + 인공지능(word2vec)

하나의 영어단어를 입력했을 때 그 단어와 연관된, 함께 많이 사용이 되는 단어들을 찾기 위해 인공지능을 활용했다. 연관어를 찾는 단계는 다음과 같다. 입력 단어가 A라고 할 때. 1) 구글 검색창에 단어 A를 입력했을 때 나타나는 뉴스기사들의 제목과 본문 내용 일부를 페이지 1쪽부터 10쪽까지 탐색하며 가져온다. 2) 가져온 내용들을 전처리하여 인공지능이 학습할 수 있는 형태로 만든다. 3) word2vec 모델에 학습데이터를 넣어 연관어를 출력받는다. 즉, 단어를 검색할 때마다 그 단어에 맞는 학습데이터를 만들어서 연관어를 찾아내는 것이다. 매번 새롭게 탐색해야 해서 비효율적이지만 단어의 의미가 변화되거나 사회적으로 다른 의미로써 쓰이는 등 연관어가 바뀔 수 있는 경우에는 효과적이라고 볼 수 있다. 일..

[영단어 추천 앱] 시스템 설계 문제

영단어 추천 앱을 만들기 위해 가장 핵심 기능이라고 할 수 있는 연관어 분석 알고리즘 활용에 치명적인 문제가 있다. 지금까지 구현해오던 시스템 설계대로라면 인공지능(tensorflow)에서 어떠한 문장들을 입력 데이터로 받아 word2vec 모델이 학습을 하게 된다. 즉, word2vec 모델에서 A라는 단어와 연관되는 단어를 탐색하고 싶은 경우 A라는 단어가 학습 데이터에 포함이 되어 있어야 한다. 그런데 현재 우리가 사용하는 영어단어 데이터베이스에 있는 모든 단어가 인공지능 학습 데이터에 포함되어 있다고 확신할 수 없다. 또한, DB에 있지 않은 단어가 tensorflow에는 존재할 수 없다. 인공지능과 DB가 따로 놀고 있다고 볼 수 있다. 처음에는 이러한 문제를 그냥 DB의 단어와 학습데이터의 단..

[인공지능] 인공지능 개발환경 구축

Python으로 인공지능 개발을 하기 위해, 개발환경을 세팅하는 방법. 1. 아나콘다(Anaconda) 설치 - 여러 수학, 과학 패키지를 기본적으로 포함하는 파이썬 배포판 2. 텐서플로(Tensorflow) 설치 - 머신러닝을 위한 엔드 투 엔트 오픈소스 플랫폼 3. 파이토치(Pytorch) 설치 - 파이썬을 위한 오픈소스 머신 러닝 라이브러리 자세한 설치는 하단의 링크 참고. +) 주피터(Jupyter Notebook)라는 것도 인공지능에 사용하는 걸로 알고 있는데, 이것도 따로 설치를 해야 하나? 생각을 했지만 아나콘다를 설치하면 자동으로 주피터(Jupyter Notebook)가 설치된다. +) 아나콘다 설치 후 주피터 실행 방법 아나콘다를 설치하면 Jupyter Notebook이 함께 설치 되는데..

Programming/AI 2021.12.31

[단어 연관도 - Lab meeting] 연관어 분석 방법 - 2021.12.28.화

이번주는 Word2Vec 이외에 연관어를 분석하는 방법 2가지를 공부해보았다. 같은 단어 쌍(순서 무관)이 여러번 등장할수록 연관되어 있다고 보는 '동시 출현 기반 연관어 분석' 방법이 있다. 가중치를 활용한 '통계적 가중치 기반 연관어 분석' 방법이 있는데, 이 방법에서 가중치를 이용해 유사도를 계산하는 수식이 3가지 정도 존재한다.(더 존재할수도 있지만 내가 발견한 글에는 대표적으로 3가지가 설명되어 있었다) 수식을 자세히 보지도 않고 어려워 보여서 건너뛰었는데, 교수님이 해당 수식은 어려운 것이 아니라고 하셨다. 나중에 자세히 보면서 공부할 필요가 있을 것 같다. 연관어 분석에서 단어별 중요성을 파악하는 데 쓰이는 중심성 계수에 대해서도 공부해보았다. 교수님과 대화를 나누다보니 이 부분은 이해가 확..

[단어 연관도 - Lab meeting] Skip-gram 활용 사례 - 2021.11.29.월

이전 랩미팅에서 CBOW 설명 시 사용했던 단어 2차원 그래프가 어떻게 나온 것인지 실제 코드를 보며 공부를 해보았다. 해당 코드는 아마존의 휴대폰 관련 리뷰 댓글을 입력 데이터로 받아 단어 간의 연관성을 분석한 것이다. CBOW를 설명할 때 해당 그래프를 사용했는데, 이 코드는 skip-gram을 이용한 것이었다. 그리고 알고보니 CBOW보다 skip-gram의 성능이 더 좋아서 많이 사용된다고 한다. +) 참고 https://nbviewer.org/github/dreamgonfly/phone-review-nlp/blob/master/phone_reviews_nlp.ipynb#Modern-NLP-on-mobile-phone-reviews Jupyter Notebook Viewer You can find..

[단어 연관도 - Lab meeting] Word2Vec - 2021.11.22.월

단어의 연관도를 분석하는 인공지능을 탐색하던 중 Word2Vec라는 알고리즘을 발견하여 공부해보았다. 단어를 벡터로 표현하면, 벡터 연산이 가능해진다. 벡터 연산을 하면 앞에서 봤던 것처럼 ‘king – man + woman = queen’이라는 연산이 가능해진다. (단, 벡터가 단어의 의미를 잘 표현하고 있을 경우에 가능) - 단어를 여러 차원에 분산하여 표현했을 때의 장점 1) 적은 차원으로 대상을 표현할 수 있다. 원핫인코딩처럼 표현하면 단어의 수만큼 차원을 사용하지만, word2vec처럼 표현하면 차원의 크기를 설정하여 거기에 맞춰서 벡터가 표현된다. 보통 20~200차원 정도 사용. 2) 입력 데이터에 0이 많으면 데이터에서 정보를 뽑아내기 어렵지만, 각각의 차원이 모두 정보를 가지고 있으면 모..

728x90