<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.2">Jekyll</generator><link href="https://ddanoni.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ddanoni.github.io/" rel="alternate" type="text/html" /><updated>2022-12-09T11:21:27+00:00</updated><id>https://ddanoni.github.io/feed.xml</id><title type="html">따노닝’s devnote</title><subtitle>따노니의 Github 블로그입니다.</subtitle><author><name>ddanoni</name></author><entry><title type="html">첫 포스팅 테스트입니다.</title><link href="https://ddanoni.github.io/coding/first/" rel="alternate" type="text/html" title="첫 포스팅 테스트입니다." /><published>2022-12-07T00:00:00+00:00</published><updated>2022-12-07T00:00:00+00:00</updated><id>https://ddanoni.github.io/coding/first</id><content type="html" xml:base="https://ddanoni.github.io/coding/first/">&lt;p class=&quot;notice--danger&quot;&gt;&lt;strong&gt;[공지사항]&lt;/strong&gt; &lt;a href=&quot;https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/&quot;&gt;따노니’s devnote 공지사항 TEST&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;notice--success&quot;&gt;
&lt;h4&gt;공지사항 TEST입니다.&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;공지사항 순서 1&lt;/li&gt;
    &lt;li&gt;공지사항 순서 2&lt;/li&gt;
    &lt;li&gt;공지사항 순서 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://google.com&quot; class=&quot;btn btn--danger&quot;&gt;구글 이동 버튼&lt;/a&gt;&lt;/p&gt;

&lt;!-- Courtesy of embedresponsively.com --&gt;

&lt;div class=&quot;responsive-video-container&quot;&gt;
    &lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/jqDxIMuWSVE&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
  &lt;/div&gt;

&lt;h1 id=&quot;오늘-처음-블로그를-개설했어요&quot;&gt;오늘 처음 블로그를 개설했어요.&lt;/h1&gt;

&lt;p&gt;앞으로 재미나게 해보겠습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;실시간으로 반영되는 것을 확인할 수 있나?&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Hello, World!&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;이미지-목차&quot;&gt;이미지 목차&lt;/h2&gt;

&lt;h3 id=&quot;이미지-세부-목차1&quot;&gt;이미지 세부 목차1&lt;/h3&gt;

&lt;p&gt;이미지 테스트~&lt;/p&gt;

&lt;p&gt;##&lt;/p&gt;

&lt;h3 id=&quot;이미지-세부-목차2&quot;&gt;이미지 세부 목차2&lt;/h3&gt;

&lt;p&gt;이미지 테스트~&lt;/p&gt;

&lt;p&gt;##&lt;/p&gt;

&lt;h3 id=&quot;이미지-세부-목차3&quot;&gt;이미지 세부 목차3&lt;/h3&gt;

&lt;p&gt;이미지 테스트~&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../images/2022-12-07-first/racoon01.jpg&quot; alt=&quot;racoon01&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;큰-목차2&quot;&gt;큰 목차2&lt;/h1&gt;

&lt;p&gt;안녕하세요?&lt;/p&gt;</content><author><name>ddanoni</name></author><category term="Coding" /><category term="Python" /><category term="blog" /><category term="jekyll" /><summary type="html">[공지사항] 따노니’s devnote 공지사항 TEST</summary></entry><entry><title type="html">BERT 모델 기반 개체명 인식(NER)</title><link href="https://ddanoni.github.io/deeplearning/second/" rel="alternate" type="text/html" title="BERT 모델 기반 개체명 인식(NER)" /><published>2022-12-07T00:00:00+00:00</published><updated>2022-12-07T00:00:00+00:00</updated><id>https://ddanoni.github.io/deeplearning/second</id><content type="html" xml:base="https://ddanoni.github.io/deeplearning/second/">&lt;p class=&quot;notice--danger&quot;&gt;&lt;strong&gt;[주의]&lt;/strong&gt; [개인 연구 기록 목적의 게시글로 비공개될 예정임]&lt;/p&gt;

&lt;p class=&quot;notice--info&quot;&gt;&lt;strong&gt;[정보]&lt;/strong&gt;[2022년 한국지리정보학회 추계학술대회 발표 내용]&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h1 id=&quot;ai-기반-문서-유형-분류-및-주소-추출&quot;&gt;AI 기반 문서 유형 분류 및 주소 추출&lt;/h1&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;연구를 진행할 때, 기록과 병행했어야 했는데, 거의 완성되어 갈 때즈음 정리하려니 머리 아프다.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;기록을 습관적으로 하는 일상을 보내야겠다.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../images/2022-12-07-second/research_method_4.png&quot; alt=&quot;research_method_4&quot; style=&quot;zoom:33%;&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;notice--warning&quot;&gt;
&lt;h4&gt;연구 배경 및 목적&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;다양한 분야에서 빅데이터 및 인공지능 기반의 공간정보서비스가 확대되고 있으며,
&lt;br /&gt;그에 따라 공간의사결정을 위한 비공간 데이터의 수집 및 가공 방안에 대한 중요성이 강조되고 있음&lt;/li&gt;
    &lt;li&gt;현재 정형-비공간/비정형-공간 데이터에서 GIS 데이터로의 변환은 가능하지만,
&lt;br /&gt;비정형-비공간 데이터에서 공간 데이터 구축 시 어려움이 있음&lt;/li&gt;
    &lt;li&gt;그리하여 본 연구에서는 문서 데이터에서 공간 데이터로 변환 가능한 구조화된 공간 요소(주소 정보를 포함한 문장)를 도출하는 방법론을 제시하는 데 목적이 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;연구 절차&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;연구 절차 1 : 기초 데이터의 문서 유형별 분류를 통한 공간 데이터의 주제도화&lt;/li&gt;
    &lt;li&gt;연구 절차 2 : 문서에서의 주소 요소 추출을 통한 주소기반 공간 맵핑&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;notice--success&quot;&gt;
&lt;h4&gt;코드는 모두 모듈화하였으며, 구성은 다음과 같다.&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;user_lib - 사전 정의 라이브러리&lt;/li&gt;
    &lt;li&gt;config - 문서 유형 분류와 주소 정제를 위한 공통 환경 설정&lt;/li&gt;
    &lt;li&gt;model - 문서 유형 분류와 주소 추출 및 검증에 활용할 모델&lt;/li&gt;
    &lt;li&gt;classify_doc - 사전 정의 라이브러리 기반 문서 분류 훈련 및 테스트  &lt;/li&gt;
    &lt;li&gt;address_Test - 사전 정의 라이브러리 기반 주소 훈련 및 테스트&lt;/li&gt;
    &lt;li&gt;ner - 사전 정의 라이브러리 기반 개체명 인식&lt;/li&gt;
    &lt;li&gt;bert_address_test_main - 구축한 BERT 기반 주소 검증&lt;/li&gt;
    &lt;li&gt;bert_classify_main - 구축한 BERT 기반 유형 분류 검증&lt;/li&gt;
    &lt;li&gt;bert_ner_main - 구축한 BERT 기반 개체명 인식 검증&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p class=&quot;notice--danger&quot;&gt;&lt;strong&gt;[주의]&lt;/strong&gt; 
[아래의 내용들은 작성된 코드들을 모듈화했기 때문에 순서에는 의미가 없음]&lt;/p&gt;

&lt;h2 id=&quot;문서-유형-분류&quot;&gt;문서 유형 분류&lt;/h2&gt;

&lt;h3 id=&quot;user_lib&quot;&gt;user_lib&lt;/h3&gt;

&lt;h4 id=&quot;def_chrome_drvpy&quot;&gt;def_chrome_drv.py&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;비정형-비공간 데이터인 문서 자료를 수집하기 위해 부산광역시 도시계획 고시공고문을 기초 데이터로 활용&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Selenium&lt;/strong&gt;의 &lt;strong&gt;Webdriver&lt;/strong&gt;를 활용하여 부산광역시 도시계획 고시공고문 게시글 내 첨부파일들을 자동 다운로드하기로 함&lt;/li&gt;
  &lt;li&gt;첨부파일을 데이터프레임 형식으로 불러오기 위해서는 첨부파일을 정형화하는 작업이 필요함&lt;/li&gt;
  &lt;li&gt;하지만 첨부파일이 txt 형식으로 제공되는 것이 아니라, hwp, pdf 또는 csv 형식으로 제공되는 경우도 있기 때문에
Python에서 문서를 변환할 수 있는 Pyhwp 모듈을 활용하기로 함&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium이란&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;웹 사이트 내에서 &lt;strong&gt;자동화&lt;/strong&gt;로 여러가지 동작 구현이 가능한 라이브러리로,
&lt;br /&gt;로그인 또는 &lt;strong&gt;지속, 반복적인 검색&lt;/strong&gt;을 통해 데이터를 얻기에 적합함&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Webdriver를 통해 외부 모듈에서 웹 브라우저를 제어할 수 있으며,&lt;/p&gt;

&lt;p&gt;Chromedriver, Chrome, Selenium 모듈 설치 등과 같은 사전 환경설정이 필요함&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://chromedriver.chromium.org/downloads&quot; class=&quot;btn btn--info&quot;&gt;ChromeWebdriver&lt;/a&gt;  &lt;a href=&quot;https://www.google.co.kr/intl/ko/chrome/&quot; class=&quot;btn btn--info&quot;&gt;Chrome&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Python 내 Selenium 모듈 설치&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;pip&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;selenium&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;ChromeWebdriver의 경우, 파이썬의 작업 환경에 해당하는 폴더에 같이 위치시키야 하며,
절대 경로로 지정해 주는 게 좋음&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;보통은 아래와 같은 코드를 작성해 Selenium의 Webdriver를 불러오지만,&lt;/p&gt;

&lt;p&gt;본 연구에서는 문서 유형 분류, 주소 정제 및 개체명 인식에 작성한 코드들을 정리하기&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Selenium Webdriver 활성화 및 다운로드 절대 경로로 설정하기 위한 라이브러리를 import&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;chromedriver_autoinstaller&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.chrome.options&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Options&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;2. Selenium Webdriver 활성화를 위한 홈페이지 특성에 따른 옵션을 부여할 필요가 있음&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;get_drv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;download_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;chromedriver&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chromedriver_autoinstaller&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;install&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;chromeOptions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ChromeOptions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;chromeOptions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_experimental_option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'excludeSwitches'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'enable-logging'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;prefs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'download.default_directory'&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;abspath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;download_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)}&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;chromeOptions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_experimental_option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'prefs'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prefs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Chrome&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chromedriver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chromeOptions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;    
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</content><author><name>ddanoni</name></author><category term="DeepLearning" /><category term="Python" /><category term="MachineLearning" /><category term="DeepLearning" /><category term="BERT" /><summary type="html">[주의] [개인 연구 기록 목적의 게시글로 비공개될 예정임]</summary></entry></feed>