전체 글 (4) 썸네일형 리스트형 나무 위키 문서 추천기 간단하게 Doc2Vec 모델을 가지고 나무위키 문서 추천기를 제작하였습니다. 설치 방법 Chrome 웹 스토어 - 확장 프로그램 (google.com) 나무위키 문서추천 Namu wiki recommendation chrome.google.com 크롬 웹스토어에서 설치가 가능합니다! 사용법 확장 프로그램 설치가 완료된 뒤, 나무위키에 접속하면 오른쪽 사이드바에 최근 방문 문서와 문서 추천이 추가되어 있습니다. 최근 방문 문서의 경우 사용자가 문서를 읽을시에 자동으로 추가가 되며, 초기화 버튼을 통해 기록을 삭제할 수 있습니다. 아무런 문서나 들어간 뒤 문서 추천의 추천 받기 버튼을 누르면 문서 추천을 받을 수 있습니다. 문서 추천은 사용자의 컴퓨터 자원을 사용합니다. 그렇기 때문에 컴퓨터 사양에 따라 추.. tensorflow.js custom layer 적용하기 크롬 확장프로그램에 Tensorflow.js(이하 tfjs) 를 사용하여 keras 모델을 적용하던 중 한가지 문제점을 직면하였다. Keras의 AveragePooling1D 레이어가 tensorflow 2.6 버전을 기준으로 Masking을 지원하지만, tfjs 3.9 버전에서는 Masking을 지원하지않는다. 따라서 Masking 을 지원하는 MeanPool 레이어를 구현하여야한다. Custom Layer class MyDenseLayer(tf.keras.layers.Layer): def __init__(self, num_outputs): super(MyDenseLayer, self).__init__() self.num_outputs = num_outputs def build(self, input_s.. 나무위키 문서에 Doc2Vec 적용하기 나무위키 문서추천을 위해서 먼저 문서들을 적절히 Embedding 할 필요가 있다. 이번 포스팅에서는 Doc2Vec을 사용하여 문서를 Embedding 시키는 방법과 결과를 확인해보도록 하자. Doc2vec 모델로는 python library인 Gensim 을 사용하였다. 데이터 데이터는 나무위키에서 제공하는 2021년 3월 1일 데이터베이스 덤프 파일을 적절히 processing 한 데이터를 사용하였다. 상세한 방식은 NamuWiki-recommender/data at master · WeKia/NamuWiki-recommender (github.com) 에 나와있고, 덤프 파일에서 나무위키 문법을 적당히 제거한 파일을 사용하였다. GitHub - WeKia/NamuWiki-recommender: Th.. [Utils] CompactList 나무위키 문서들을 노드삼아 공통되는 기여자가 있다면 엣지를 추가하는 식으로 데이터를 정재해나가다 메모리 문제를 겪었다. 나무위키 문서의 수는 대략 87만개(2021년 3월 기준)로 이 중 redirect 문서를 제외하더라도 57만개의 문서가 존재하며, 기여자의 숫자는 2백만이 넘는다. 이들 중 극히 일부로 문서와 기여자를 줄이고 그래프를 제작하더라도 1억이 넘는 엣지가 생겨나고 이를 저장할 List는 매우 큰 메모리를 갖게된다. Python의 List 메모리 할당 단순하게 백만개의 int List가 있다고 생각해보자, int가 64bit 기준 8byte라 생각한다면 사용되는 메모리는 8 * 1,000,000 = 대략 8 mb 일 것이다. python의 sys.getsizeof() 함수를 이용하여 원소가 .. 이전 1 다음