JavaScript/자연어 처리 3

[node.js] JavaScript 문서 유사도 검사, 추천 시스템

서버는 aws ec2, 데이터베이스는 aws rds를 사용했다. 둘 다 프리티어로 사용했다. 사용자가 입력한 질문과 데이터베이스에 있는 질문들의 유사도를 측정한 뒤, 사용자의 질문과 비슷한 질문들을 출력해주는 기능을 만들고 싶었다. 추천 시스템과 비슷하게 모든 문서의 tf-idf를 구한 후 코사인 유사도 검사를 하면 될 것 같아서 그대로 진행했다. 우선 비교 데이터로 사용하기 위해 OKKY라는 사이트의 Q&A게시판을 크롤링했다. 10000개 게시글의 질문과 내용을 크롤링해서 csv파일로 만든 후 데이터베이스에 넣어두었다. 테이블의 칼럼은 bid, title, content 로 만들었다. 그 다음 데이터베이스에 있는 데이터들을 사용하기 위해서 지난 번에 만들어둔 tf-idf-test 모듈을 최적화한 후에 ..

[node.js] JavaScript TF-IDF, 코사인 유사도 검사

문서 유사도 검사를 위해 필요한 TF-IDF나 코사인 유사도 모듈을 찾아봤다. https://www.npmjs.com/ 위의 npm search 사이트에서 노드서버에서 사용할 모듈들을 찾아 봤지만 내가 원하는 입력에 원하는 출력을 해주는 모듈이 없었다. 그래서 간단한 자연어 처리 모듈을 직접 만들기로 했다. 형태소 분석기는 mecab-ya 라이브러리를 사용했다. 2022.06.25 - [JavaScript/자연어 처리] - [node.js] 형태소 분석기 mecab 사용하기 1. TF-IDF 아래 두 개의 사이트에서 TF-IDF에 관한 자세한 설명을 얻었다. https://wikidocs.net/31698 http://bigdata.dongguk.ac.kr/lectures/TextMining/_book/..

[node.js] 형태소 분석기 mecab 사용하기

졸업 프로젝트를 진행하면서 자연어 처리를 해야할 일이 생겼다. 자연어 처리의 첫 단계가 형태소 분석기를 사용해서 문서를 형태소로 나누는 것이다. 1. 형태소란 ? 먼저 형태소에 대해 조금 알아보자면 형태소의 사전적 정의는 '의미를 가지는 요소로서는 더 이상 분석할 수 없는 가장 작은 말의 단위' 이다. 예를 들어, '아버지가방에들어가신다' 라는 문장을 형태소로 나눠보면 ['아버지', '가', '방', '에', '들어가', '신다'] 이런 식으로 나올 것이다. 명사, 동사, 조사, 접두어 등으로 문장을 나눈 다음 본인이 원하는 과정을 처리를 하면 된다. 2. 사용할 라이브러리 서버에서 사용할 예정이라 최대한 빠르고 가벼운 라이브러리를 선택하고 싶었다. 형태소 분석기를 간단하게 비교한 블로그가 있어서 그 글..