프로그램 개발

[프로그램 개발] 약관 단어 감지 프로그램

곽가누 2023. 8. 31. 17:26

경희대학교 필수교양 강의인 '세계와 시민'에서 진행한 GCP 프로젝트로, 기업의 개인정보 수집과 관련하여 약관 단어 감지 프로그램을 개발했습니다. 이 프로젝트는 소비자가 긴 개인정보 처리 약관을 읽는 것에 어려움을 겪는 상황을 개선하기 위한 목적으로 제작하였습니다. 

개인정보 동의 과정에서 소비자들이 약관 내용을 제대로 파악하지 못하고 '동의' 버튼을 누르는 현상을 개선하기 위해 약관 내용에서 어려운 용어를 식별하고 그 의미를 사용자에게 제공하는 프로그램을 개발했습니다.

tkinter 모듈을 활용하여 마우스 커서 아래의 단어를 감지하면, 해당 단어를 함수를 통해 인코딩하여 표준국어대사전 홈페이지로 전송합니다.

전송된 단어는 표준국어대사전에서 검색되며, 단어의 뜻은 html 태그를 활용하여 크롤링되어 사용자에게 보여집니다.

이 프로젝트를 통해 개인정보 동의 과정에서 발생하는 문제를 해결하고 소비자들이 자신들의 개인정보에 대한 권리를 더 잘 이해하고 취할 수 있도록 도움을 주었다고 생각합니다.

프로그램 실행 화면. 왼쪽 창에 마우스 포인터를 가져다대면 터미널에 뜻이 뜨는 모습입니다.

코드 전문입니다. 

import tkinter as tk
import urllib.parse
from urllib.request import urlopen
from bs4 import BeautifulSoup

def on_hover(event):
    # 마우스가 올려진 텍스트 출력
    word = event.widget["text"]
    print(word)
    encoded_string = urllib.parse.quote(word)  # 단어를 URL 인코딩
    html = urlopen("https://stdict.korean.go.kr/search/searchResult.do?pageSize=10&searchKeyword=" + encoded_string)
    bsObject = BeautifulSoup(html, "html.parser")
    dt_tags = bsObject.find_all('dt')

    if dt_tags:
        for dt_tag in dt_tags:
            definition = dt_tag.get_text(strip=True)
            print(definition)
    else:
        print("정의를 찾을 수 없습니다.")

root = tk.Tk()

text = input("약관을 입력해주세요: ")
words = text.split()  # 공백을 기준으로 단어 분리

for word in words:
    label = tk.Label(root, text=word)
    label.pack()
    label.bind("<Enter>", on_hover)

root.mainloop()

print('끝')

단어감지프로그램.py
0.00MB

'프로그램 개발' 카테고리의 다른 글

[Javascript]news api 다루기  (0) 2024.01.22
[프로그램 개발] 저녁 메뉴 추천  (0) 2023.03.06