gnkwon95 / weeklyPaper

0 stars 0 forks source link

230103 annotating documnets with relevant wikipedia concepts #3

Open gnkwon95 opened 1 year ago

gnkwon95 commented 1 year ago

Introduction

많은 텍스트가 아직 semantic 정보가 레이블링되어있지 않고, 텍스트 자체로만 사용되고있음 이를 위해 위키피디아의 글들, hyperlink 등에 pagerank를 사용해서 글에 위키 컨셉을 레이블링하는 작업

pagerank based wikification

그래프 설정 및 학습

anchor text = hyperlink가 붙어있는 단어 target page = hyperlink를 타면 가는 페이지 source page = hyperlink가 적혀있는 문서

문서 위키에 anchor text로 있는 모든 글 선정, 전부 왼쪽 mention vertex로 두고 target page가 될 수 있는 모든 후보를 오른쪽에 concept vertex로 둠 통상적 확률로 edge weight 계산 ㄴ 모든 위키에서 anchor text -> concept 1일 개수가 -> concept 2보다 높다면, concept1쪽 edge가 높게 될 것

이렇게 문서 내의 모든 mention에 대해 concept를 그려서 연결

초기값: concept: 0 mention: 위키에서 mention이 anchor text인 수 / 위키에서 mention이 언급된 수

여러 iteration 이후 비슷한 concept가 값을 받아 뭉치게 되고 인풋문서 단어와 관련 있는 컨셉들로 추려질 것

사용

이후 각 mention에 연결된 concept중 가장 vertext value가 놓은 컨셉과 단어가 맵핑 됨 (초기값은 0이었지만 pagerank로 채워짐) 그 외에도 mention과 관련된 모든 concept 나열, 그중 threshold에 따라 하위권은 쳐냄 (normalize도 필요)

사용성과 휴리스틱

어떤 mention의 경우 너무 많은 컨셉과 맵핑되어있어서 ㄴ 연산을 느려지게 하고 ㄴ 그래프를 키워서 제대로된 한개 컨셉에 수렴하기 어렵게 함

너무 많은 hyperlink가 있는 단어는 무시하고 적당히 많으면 연결된 상위 20개 concept만 사용함 stopword로 구성된것도 안쓰고 특정 컨셉 묶음은 위키 문서에서 사용 안함 (~~ 목록, 목차 등)

추가 필터

기존 pagerank 외에도

에 다양한 weight를 곱해서 컨셉그래프 다양하게 사용 가능

하지만 논문에선 사용을 통한 성능개선을 찾지 못함

예시

https://wikifier.org/submit.py

image

아무 뉴스 한글로 가져왔고 부동산 관련 내용에 세종시 부동산 얘기가 나옴 세종시, 세종을 같은 컨셉으로 인지해서 묶었고 세종의 후보로 조선 세종, 세종대 등 다양한 컨셉 후보가 있었지만 page rank 학습 결과 세종자치시로 판단되어 추천됨 (역사 관련 문서 가져오면 조선 세종 맵핑이 될듯?)

그래프도 보여줬으면 더 좋았을건데 아쉽

네이버?

단어-컨셉 그래프만 어떻게 구현해내도 사용성이 정말 많을듯 ㄴ "태양"일 경우 30% 확률 우주/태양, 20% 확률 가수/태양, 25% 확률 영화/태양, 25% 확률 지역/태양 이런식? 여기에 문서 추가하면 문서 컨셉 확보도 가능하고, 문서마다 키워드나 컨셉 맵핑도 될듯