Language(R, Python, SQL) 15

[R] theeuh 패키지를 이용한 한국어 띄어쓰기 (KoSpacing x)

한국어 Text mining을 하는 경우, 간혹 띄어쓰기가 되어 있지 않은 텍스트를 직면할 때가 있다. 이런 경우, 명사나 형용사 등 형태소를 제대로 추출할 수 없게 된다. 따라서 이번에 소개할 패키지는 한국어 텍스트의 띄어쓰기를 반영하는 유용한 패키지이다. 우선, KoSpacing은 한국어를 띄어쓰기 해주는 딥러닝 모델 패키지를 우선 적으로 찾았고, 해당 패키지를 설치하려고 수많은 삽질(reticulate version error, hashmap error 등등) 직면하다가.. 몇번의 검색을 해보니 해당 패키지가 작동하지 않는다고 한다 ㅠ.. https://github.com/forkonlp/KoSpacing GitHub - forkonlp/KoSpacing: Automatic Korean word s..

[R] Progress Bar 로 반복문 진척률 및 완료시간 구현

R에서 반복문을 이용해서, 작업 수행을 할 때, 아래와 같이 print(i) 를 이용해서, 현재 진척률을 보고는 할 것이다. 이 방법으로 하게 되었을 땐, 몇번 째 i 가 수행되고 있는지는 확인할 수 있지만, 몇% 정도 진척이 되었는지, 작업 수행시간이 몇 시간이 남았는지 확인하는 것은 불가능하다.( 대충 감으로, 어느정도 됐겠거니.. 라고 생각할 수 있을 뿐이다. ) for(i in 1:10000) { print(i) } 아래의 이미지 처럼, 현재 진행률(Progress) 과 예상 완료시간(Estimated Completion time) 을 확인하고 싶지 않은가? 그렇다면, progress 라는 라이브러리를 이용해서, 반복문이 돌아갈 때, 진척률과 완료시간을 표현할 수 있다. 1. 라이브러리 로드 li..

[R] 중국 주소를 통한 지도 시각화

영문 주소를 geocoding을 통해 위,경도 변환 후 지도 시각화하는 것은 일전에 경험해 본 바가 있다. 문득 중국주소 역시 위,경도 변환을 잘 하고, 지도에 뿌릴 수 있는 지 궁금해졌다. 아래의 예시를 통해, 제대로 출력을 하는 지 확인해보겠다. 폭스콘 주소 : 236新北市土城區自由街2號 베이징대학교 주소 : 北京市海淀区学院路38号 1. 우선, 위,경도 변환(Geocoding), 지도 시각화(mapview) 를 위한 라이브러리를 로딩해보자. library(ggmap) library(mapview) (우선, 라이브러리가 설치되어 있지 않다면, install.package 를 통해 install 하도록 한다.) 2. 예시 데이터 프레임을 생성 해보자. addr

[R] Error: package or namespace load failed for ‘ggplot2’ in loadNamespace 해결

library(ggplot2) 또는 library(caret) 실행 시 아래와 같은 에러가 발생하는 경우를 직면하게 될 때가 있다. Error: package or namespace load failed for ‘ggplot2’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): 네임스페이스 ‘vctrs’ 0.4.1는 로드되었으나 >= 0.5.0가 필요합니다 In addition: Warning message: 패키지 ‘ggplot2’는 R 버전 4.2.2에서 작성되었습니다 어떠한 충돌로 인해, 해당 에러가 발생했는 지를 정확히 알아봐야 겠지만, 이에 대한 해결법은 의외로 간단하다. 해당 명령을 실행해보자. install.packa..

[SQL] MysQL 데이터베이스 권한 부여

데이터베이스를 만들고, 데이터베이스 내부에 있는 데이터를 다른 사용자에게 공유하고자 할 때, root 계정을 주는 방식으로 모든 권한을 넘길 수 있다. 하지만, 특정데이터베이스 혹은 특정 테이블에 대한 데이터 정보만 허용하게끔하고자 할때는 어떻게 해야할까? 아래의 방법대로 하게되면 간단하게 유저에 대한 접근 권한을 명령할 수 있다. grant all privileges on DB명.table명 '계정명'@'%' identified by '비밀번호'; grant all privileges on mydb.mytable 'myaccount'@'%' identified by '123456'; DBeaver 혹은 HeidiSQL 같은 DB툴 내에 쿼리를 편집기를 키고, 해당 명령을 한 후 접속해보자. 아래 그림과..

[R] Windows 환경 R 크롤러(Selenium) 만들기 + RPA

R 크롤러를 만들기 위해, 필요한 도구들을 우선 설치해보자. 설치에 앞서, C드라이브에 selenium 이라는 폴더를 만들어주자 ( C:\selenium ) 1. Selenium Standalone Server 설치 http://selenium-release.storage.googleapis.com/index.html http://selenium-release.storage.googleapis.com/index.html selenium-release.storage.googleapis.com 해당 링크에 접속하고, 아래쪽으로 스크롤하다보면, 4.0 폴더가 있을 것이다. 해당 폴더내에, "selenium-server-standalone-4.0.0-alpha-1.jar" 파일을 설치하고, 처음에 만들었던 C:..

[python] pip 특정 버전 install 및 upgrade

#pip 모듈 버전 정보 확인하기 - 현재 python 모듈이 어떤 버전정보를 가지고 있는지 list를 출력해주는 명령이다. pip list #pip 이용 특정 버전 모듈 설치 pip install [package_name]==[package version] pip install pandas==1.1.5 #pip 이용 특정 버전 모듈 업데이트 pip install --upgrade [package_name] pip install --upgrade pandas #특정 패키지를 특정 버전으로 업데이트 하는 경우는 아래와 같다. pip install --upgrade [package_name]==[package version] pip install --upgrade pandas==1.1.5 # 현재 라이브러리..

[R] R 로 Mircrosort Teams 봇 생성 및 메시지 보내기

Airflow 를 이용해서, Workflow를 관리하면서 느낀 점은, 작업 수행이 완료(성공, 혹은 실패) 되었을 경우 해당 작업완료 알림을 받을 수 있으면 좋겠다는 생각을 하게 되었다. Airflow 메일링 기능이 있지만, 메일로 받는 것 보단 메신저로 받는게 편할거라는 생각에, Teams 메시지로 받는 방법을 검색해보았다. 역시나.. 내가 생각하는 기능들은 모듈형태로 제공되고 있었다. 오늘은 Teams 메시지 bot을 만들고 R코드를 사용해서 메시지를 Send 하는 기능의 코드를 포스팅해보겠다. 1. teams 내의 team '채널추가' 를 한다. 2. 우측상단의 점 3개 클릭 후, '커넥터'를 선택한다 3. webhook 을 찾아, '구성' 을 클릭 후, 생성된 url 을 copy 한다 4. 아래의..

[SQL] HackerRank - SQL Problem <easy>

HackerRank 라는 사이트에 SQL 쿼리 연습을 위한 있는 문제들이 있었다. https://www.hackerrank.com/domains/sql Solve SQL Code Challenges A special-purpose language designed for managing data held in a relational database. www.hackerrank.com 문제 풀이시, 헷갈렸거나 암기가 필요하다고 느꼈던 함수들 위주로 풀이방법을 게재하고자 한다. (MySQL) SelectWeather Observation Station5 (length) 도시 명이 가장 짧거나 긴 row 를 필터링하는 문제다. 여기서 사용되는 주요 함수는 length() 인데, 이 때, limit 1을 적절히 ..

[SQL] String 을 Date 형으로 변환

value가 string 으로 구성되어 있는 데이터를 Date 형으로 처리하고 싶은 경우가 있다. 아래의 그림과 같이, 해당 value는 Month'year 형식으로 되어있는데, 우리가 익히 알고 있는 full date(YYYYMMDD) 로 변경해보고자 한다. string 자체를 substr, concat을 이용해 yyyymmdd string 형식으로 만들고, date type으로 포맷팅하는 방법은 아래와 같다. SELECT AA.string_date, STR_TO_DATE(AA.full_date, '%Y%m%d') AS full_date FROM ( SELECT CONCAT( '20', substr(string_date,5,6), case when substr(string_date,1,3) = 'Jan..