반응형
https://pypi.org/project/Wikipedia-API/
1. 설치
cmd 창에서 Wikipedia API 라이브러리를 설치한다
> pip install wikipeda-api
2. 사용
다음과 같이 라이브러리를 import 해준다
import wikipediaapi
이를 사용하기 위한 객체를 생성하고, 언어를 설정해준다
wiki = wikipediaapi.Wikipedia('en')
우리가 검색하고자 하는 단어를 'WORD' 라고 할 때, 다음과 같이 데이터를 불러올 수 있다
page_py = wiki.page(WORD)
# 페이지 존재여부 확인 메소드: page_py.exists()
# 페이지 타이틀: page_py.title
# 페이지 내용 요약: page_py.summary[0:100]
# 페이지 내용: page_py.text
# 페이지 url: page_py.fullurl or page_py.canonicalurl
...
3. 적용
"What is WORD from wiki" 라는 문장을 받았을 때,
다음과 같이 정규식을 사용하여 'WORD' 를 추출할 수 있다
import re
sentence = "What is WORD from wiki?"
word = re.search("What is (.*) from wiki?", sentence).group(1)
print(word)
>>> 'WORD'
이를 통해 추출한 'WORD' 를 가지고 데이터를 불러온다
page_py = wiki.page(WORD)
가장 먼저 페이지가 존재하는지 확인 후 ? 존재한다면 그 내용을 : 아니라면 모르겠다는 답변을 return 한다
if page_py.exists() == True:
이렇게 wikipedia-api를 호출하다 사용하면 여러 특문이 설명에 그대로 출력되기 때문에
다음과 같이 정규식을 사용하여 제거한다
re.sub(r"[^a-zA-Z0-9]", "", WORD)
추가로, Wikipedia API는 동음이의어가 존재할 경우 다음과 같이 "may also refer to:" 문장과 함께 url을 제공한다
따라서 "may also refer to:" 문장을 확인 후 ? url을 제공하고, : 알맞은 페이지를 찾았다면, 요약본을 출력하도록 작성한다
if "may refer to:" in page_py.summary:
output = "There are some keywords about {}. Please check this URL! \n {}".format(WORD, page_py.fullurl)
else:
summary = list(page_py.summary.split("."))
output = re.sub(r'\([^)]*\)', "", summary[0]) + "." + summary[1] + "." + \n" + page_py.fullurl
반응형