반응형

파이썬에서 영상을 처리하기 위해서는

cv 라이브러리를 가지고, 인풋을 받아주어야 한다.

 

import cv2 라는 코드를 작성하였는데,

설치가 되어있지 않았던 것 같다.

아래와 같이 에러가 발생하였다.

 

No module named 'cv2'

 

cv2를 설치하기 위해서 다음 명령어를 터미널 창에서 실행시켜준다.

 

pip install opencv-python

 

반응형
반응형

2020년 카카오 블라인드 채용이다.

신입 개발자를 코딩테스트를 통해 선별해낸다.

한번 풀어봤는데,

생각보다 어렵다ㅜㅜ

 

34점 맞아서, 틀린 코드다.ㅠㅠ

 

def solution(s):
    answer = 0
    
    tmp = s[1:]
    try:
        a = tmp.index(s[0])
    except:
        return len(s)
    
    arr = list(range(1, int(len(s)/2)+1))
    
    arr = sorted(arr, reverse=True)
    
    is_find = 0
    for i in arr:
        if s[:i] == s[i:i+i]:
            is_find = i
            break
            
    how_loop = len(s)/is_find
    rest_ = 0
    
    if how_loop % 1 != 0:
        rest_ = len(s) - (int(how_loop) * is_find)
    else:
        rest_ = 0
    
    count = 0
    arr_ = []
    for i in range(1, int(how_loop)):
        if s[is_find*(i-1):is_find*i] == s[is_find*i:is_find*(i+1)]:
            arr_.append(1)
        else:
            arr_.append(0)
    
    is_count = 0
    arr__ = []
    answer = 0
    for i in arr_:
        if i == 1:
            is_count += 1
        else:
            if is_count != 0:
                answer += is_find + len(str(is_count))
                is_count = 0
            else:
                answer += 1
    if arr_[-1] != 0:
        answer += is_find + len(str(is_count))
    else:
        answer += is_find
    answer += rest_
    return answer

 

다시 한번 풀어봐야겠다!!

 

일단 프로그래머스 게시판에서 100점 받은 고수의 코드이다!

#자릿수계산
def jari(n):
    count=1
    while(n>=10):
        n//=10
        count+=1
    return count
def solution(s):
    answer = 0
    var_count=[]    #[n개단위로잘랐을때][몇번째등장한반복]=반복횟수
    var_len=[len(s)]      #[n개단위로잘랐을때]=길이
    for i in range(1,len(s)//2+1):
        var_continue=False  #연속하는지
        var_temp_left=0     
        var_temp_right=0
        var_count.append([])
        for j in range(len(s)//i-1):
            if(s[i*j:i*(j+1)]==s[i*(j+1):i*(j+2)]):
                if(var_continue):
                    var_count[i-1][len(var_count[i-1])-1]+=1
                else:
                    var_count[i-1].append(2)
                    var_continue=True
            else:
                var_continue=False
        for j in var_count[i-1]:
            var_temp_left+=j            #생략되어지는문자길이
            var_temp_right+=i+jari(j)   #표시해야하는문자길이=자른문자길이+반복횟수
        var_len.append(len(s)-var_temp_left*i+var_temp_right)   #길이=전체길이-생략길이+표시길이
    answer=min(var_len)
    return answer

 

프로그래머스의 진짜 창의적인 코드

def compress(text, tok_len):
    words = [text[i:i+tok_len] for i in range(0, len(text), tok_len)]
    res = []
    cur_word = words[0]
    cur_cnt = 1
    for a, b in zip(words, words[1:] + ['']):
        if a == b:
            cur_cnt += 1
        else:
            res.append([cur_word, cur_cnt])
            cur_word = b
            cur_cnt = 1
    return sum(len(word) + (len(str(cnt)) if cnt > 1 else 0) for word, cnt in res)

def solution(text):
    return min(compress(text, tok_len) for tok_len in list(range(1, int(len(text)/2) + 1)) + [len(text)])

a = [
    "aabbaccc",
    "ababcdcdababcdcd",
    "abcabcdede",
    "abcabcabcabcdededededede",
    "xababcdcdababcdcd",

    'aaaaaa',
]

for x in a:
    print(solution(x))
반응형
반응형

안녕하세요~~!

알고리즘을 공부하는 개발자 Henry Joo입니다~~~~!><

오늘은 제가 AWS 기초 예제인 인스턴스(EC2) 만들기를 알려드릴께요~~~

 

먼저 AWS란? 간단하게 말해서 아마존에서 제공해주는 클라우드 컴퓨팅 서비스입니다.

AWS(Amazon Web Service)란, 실제 미국, 서울, 캐나다, 유럽 등등 각지에 아마존의 데이터센터의 자원을

일정한 수준의 돈을 주고, 빌려서 사용할 수 있는 서비스입니다.

 

제 친구가 여기서 인턴을 하고 있는데, 정말 대단하다고 생각해요!ㅜ

그 친구는 요즘에 딥러닝 엑셀레이터(?)랑, 컴파일러 공부하고 있다는데, 참 많이 배울 수 있는 친구입니다~~ㅎㅎ

 

AWS에 대해서 더 자세한 것은 위키백과를 첨부해드릴께요~

https://ko.wikipedia.org/wiki/%EC%95%84%EB%A7%88%EC%A1%B4_%EC%9B%B9_%EC%84%9C%EB%B9%84%EC%8A%A4

 

아마존 웹 서비스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 아마존 웹 서비스(영어: Amazon Web Services; AWS)는 아마존닷컴의 클라우드 컴퓨팅 사업부다. 아마존 웹 서비스는 다른 웹 사이트나

ko.wikipedia.org

 

 

 

인스턴스란? AWS에서 빌려주는 일정 컴퓨팅 자원을 의미합니다. (리눅스, 윈도우 서버, 다양합니다.)

 

저희는 이번에 인스턴스를 만들어 보겠습니다.

 

1. 먼저, 구글에다가 AWS라고 검색하세요.

 

 

2. "클라우드 컴퓨팅 솔루션" 이라는 사이트에 들어갑니다.

3. 우측 상단에 주황색 버튼 "콘솔에 로그인" 이라는 것을 들어가주세요.

 

 

4. "AWS 계정 새로 만들기" 버튼 클릭하여 회원가입을 해줍니다.

 

5. 계정 정보를 입력합니다.

 

6. 연락처 정보를 입력합니다

 

7. 여기가 매우 중요합니다! 카드정보 입력

(해외에서 사용 가능한 Master 카드 혹은 Visa 카드 를 입력해주셔야 합니다!! - 이것때문에 잘 안되는 분들 몇분 계십니다)

나중에 만약 서비스를 사용할때, 자동으로 돈이 빠져나갈 카드여야합니다.(1000원? 정도는 들어있어야겠죠?)

 

.

 

8. 자격증명 확인

자기 휴대폰 번호를 입력하고, 내선번호는 비워놓으시면 됩니다

 

9. 휴대폰으로 전화가 옵니다!

그러면 PC 화면에 있는 숫자 입력하면 됩니다

 

10. 휴대폰에서 숫자 입력하시고 나서, PC 화면이 아래와 같이 바뀌면, "계속" 버튼을 눌러주세요

 

11. 일단 무료버전을 사용하는게 좋겠죠?? 기본플랜(무료) 로 눌러주세요~!

 

12. 회원가입 완료되었습니다!!

"콘솔에 로그인"을 눌러주세요~~~

 

 

13. 이제 방금 전에 만드셨던 계정으로 로그인을 하시면 됩니다.

 

14. 위의 "서비스" 라는 탭을 눌러서

 

14-1. AWS가 팔고 있는 다양한 서비스들이 있지만, "EC2"에 들어갑니다.

EC2 란, AWS에서 팔고 있는 컴퓨팅 자원을 의미합니다.(가상 컴퓨터 느낌??)

 

15. 실행중인 인스턴스 를 클릭하고,

 

16. 인스턴스 시작 버튼을 눌러줍니다.

17. 이제부터 빌려쓰고 싶은 컴퓨터의 종류를 다양하게 나열해주는데,

저는 리눅스(우분투 18버전)을 사용하겠습니다~~  -> "선택" 버튼 클릭!

 

저기 "프리 티어 사용 가능" 이라고 아이콘 아래에 쓰여져 있는 부분만 무료로 사용할 수 있는 컴퓨팅 자원들입니다.

다른 거 쓰시면, 돈내셔야 되용.ㅜㅜㅜ

물론 목적에 따라서 필요하시면 돈 내고 서비스 이용하시면 됩니다~~~ㅎㅎ

 

18. 빌리는 컴퓨터의 성능(cpu, 메로리 이런거)은 어떻게 할꺼냐, 선택할 수 있는데, 

그냥 프리티어 사용할꺼니가, 우측 하단에 "검토 및 시작!!" 클릭

19. 어떤 컴퓨터가 만들어질지 한번 검토해보세요~~ 그리고 --> 우측 하단에 "시작" 버튼 클릭(이제 진짜 빌려짐)

 

20. 빌린 컴퓨터에 나만 접속하기 위해서 열쇠(?)가 필요한데, 그것을 AWS에서는 "키 페어" 라고 부릅니다.

새 키 페어 생성 -> 이름 만들고 -> 키 페어 다운로드 클릭 하면 다운로드 됩니다! -> "인스턴스 시작" 버튼 클릭!

 

21. 인스터스 시작중~(빌리는 중이라는 의미입니다!) -> 우측 하단에 "인스터스 보기" 클릭

22. 짜잔! 인스턴스가 하나 생겼네요~~ -> 연결 클릭!

혹시 인스터스 상태가 노란색(Pending) 이신분들은 2분정도 기다려주세요~ 아직 컴퓨팅 자원 빌리는 중입니다!

 

23. 맨 아래 "ssh -i 뭐시기" 있는 부분 보이시나요? 그 부분을 복사합니다

예) ssh -i "henry_test.pem" ubuntu@ec2-54-180-93-151.ap-northeast-2.compute.amazonaws.com 복사!

 

그리고 여기서 중요합니다!!

 

24. Mac이신 분들은 Command + Space 눌러서 Terminal을 실행시킵니다.

(윈도우이신 분들은 제가 맨 아래 부분에 언급한, Git이라는 프로그램을 설치하시면 terminal과 동일하게 사용가능합니다.)

그리고 아까 키페어가 위치해 있는 폴더로 들어가주시면 됩니다.

 

ls - 현재 위치의 폴더나 파일을 본다.

ls

cd 폴더이름 - 폴더로 들어간다.

ex) 위에 데스크탑 있는거 보이시죠?

그러면 현재 위치에 Desktop이라는 폴더가 있는거니까, 들어갈 수 있습니다.

cd Desktop

 

이렇게 키페어가 있는 곳 까지 갑니다.(아래 보이시죠?)

 

그리고 아까 복사했던 앞에 sudo + ssh-i 뭐시기를 커맨드 창에 입력합니다.

ex) sudo ssh -i "henry_test.pem" ubuntu@ec2-54-180-93-151.ap-northeast-2.compute.amazonaws.com

그러면 비밀번호를 물어보는데, mac 로그인 할때, 쓰는 비밀번호 입력합니다.

 

그리고 yes or no 물어보면 "yes" 입력해주고 엔터!

 

25. 그러면 드디어 성공!! AWS에서 무료로 제공해주는 우분투에 원격 접속을 하였습니다~~~! oh yeah~!!ㅎㅎ

 

혹시 윈도우를 사용하시는 분들은!!

터미널이 따로 없으니, git 이라는 프로그램을 다운로드 받으시면

터미널처럼 사용이 가능합니다.

 

직접 링크로 남겨드릴께요

https://git-scm.com/

 

Git

 

git-scm.com

 

여기 들어가셔서 윈도우용 git 파일을 설치하면

 

"Git bash" 라는 프로그램이 깔리는데 그것을 Mac의 터미널 대용으로 사용하시면 됩니다!!ㅎㅎㅎ

 

그럼 오늘은 이렇게 원격으로 AWS 인스턴스 접속하기 예제에 대해서 배워보았습니다!!ㅎㅎ

 

감사합니다~!

 

 

 

다들 화이팅~~~~~!! 오예~~><

 

 

PS. AWS 인스턴스를 만드시고, 사용하지 않으실때는 반드시, 인스턴스를 삭제해주세요(우클릭하면 인스턴스 종료가 삭제할 수 있습니다.)

인스턴스 중지 - 잡깐 쉬는거(데이터 보존됨, 다시 사용할 수 있음)

인스턴스 종료 - 아예 삭제하는거(데이터 날라감, 다시 사용 불가능)

 

예제로 만들어 보셨다면 인스턴스 종료를 눌러주셔야 합니다~~~

그렇지 않으면 소량이지만 돈이 빠져나가요!! 주의!

 

 

 

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

(구독과 좋아요 부탁드려요~~~)

반응형
반응형

여러분 안녕하세요.

알고리즘 공부하는 개발자 Henry Joo 입니다~~!!ㅎㅎ

 

제가 교회를 다니고 있는데,

성경 말씀 중에 참 인생에 필요한 내용들이 많이 있더라구요!

그래서 요즘에는 코로나 19로 인해 사회적 거리두기를 실천하며

열심히 "말씀으로 고민상담 인공지능"을 만들고 있습니다~ㅎㅎ

 

자, 이제 프로젝트의 클라이언트 단을 구성해야겠죠??

저는 expo.io 라는 플랫폼을 사용하여 만들 예정입니다.

 

 

Expo 로고

 

 

여기서 expo.io란? JavaScript/TypeScript 코드베이스로 하나만 짜놓으면, iOS, Android, Wep App 모두 만들 수 있는 그런 환경을 제공해주는 플랫폼입니다.

 

expo.io에서 react-native를 활용하여 android, ios 모두 사용 가능한 하이브리드 앱을 만들겠습니다.

 

Expo.io 는 간편하고 빠르게 앱을 만들고 싶으신 분들에게 추천드립니다~!!

 

잠깐!!

 

 

혹시 expo.io가 준비되지 않으신 분들은 아래의 링크를 통해 공부하고 오시면 좋습니다~~~

https://datacodingschool.tistory.com/16

 

저는 따로 javascript 코드로 화면을 구성하지 않고, WebView를 보여주면서,

Server단에서 HTML 파일 던져주는 제어를 하도록 하겠습니다.

 

아래는 WebView를 띄워주는 expo.io 코드입니다.

import React, { Component } from 'react';
import { WebView } from 'react-native';

export default class MyWeb extends Component {
  render() {
    return (
      <WebView
        source={{uri: 'https://m.naver.com'}}
        style={{marginTop: 20}}
      />
    );
  }
}

 

위 코드에서

 

"https://m.naver.com" 부분만 

이제 원하는 링크도 바꿔주면 되는데,

이 부분은 STS4 서버에서 제어를 해야하니까,

잠시 내려놓도록 하겠습니다.

 

 

그럼 다음에 만나요~~~~

다들 화이팅!!

 

 

 

아래는 제가 알고리즘을 공부하고 수업하는 링크입니다.

 

네이버,딜리버티히어로,카카오,ZUM,삼성SW직군

입사 시 거쳐야할 코딩테스트 수업도

진행할 예정이니, 많은 관심 부탁드립니다~~!!ㅎㅎ

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

 

 

반응형

'IT' 카테고리의 다른 글

Python cv2 설치  (0) 2020.05.02
AWS 기초 예제- 인스턴스 만들기  (0) 2020.05.01
MacOS, Maven 설치하기  (0) 2020.05.01
Ajax 통신이란?(Client - Server 통신 기법)  (0) 2020.04.30
서버 - Spring Tool Suite 4 설치 및 실행  (0) 2020.04.28
반응형

Spring으로 서버를 만들어 주려고 하는데,

자꾸 아래와 같은 에러가 발생한다.

 

"Failed to read artifact descriptor for 이것저것"

 

찾아보니

메이븐 경로가 잘못된 것 같은데, 바로 잡아주기 위해

기존 Maven이 setting된 레파지토리 경로를 삭제하고

 

https://www.egovframe.go.kr/uss/olh/qna/QnaInqireCoUpdt.do?qaId=QA_00000000000017152&pageIndex=1

묻고 답하기 상세조회 - eGovFrame Portal 온라인 지원 포탈

> 기술 지원 > 묻고 답하기 묻고 답하기

www.egovframe.go.kr

다시 설치를 해야할 것 같다.

 

나는 따로 경로 삭제는 하지 않았지만,

나는 아래 명령어을 통해서 그냥 해결했다.

 

mvn -U clean install

 

여기서!!

mvn 명령어란? 메이븐 프로젝트를  Eclipse나 InteliJ가 아닌 터미널에서 package를 한다던가 install을 한다던가 하기 위하여 mvn 명령어를 사용한다.

 

명령을 날려주니까, 아래와 같은 내용의 에러가 떴다

 

"mvn : command not found"ㅜㅜㅜㅜ

 

살펴보면, maven 파일이 설치되지 않은 것이다.

 

이클립스같은 IDE에서는 기본적으로 Maven을 지원해줘서 따로 설치해주지 않아도 되지만, 터미널 창에서는 수동으로 Maven 파일을 설치를 해주어야지 mvn 명령을 실행할 수 있다.

 

설치방법

 

1. 아래 사이트에서 maven 최신버전 tar 파일을 내려받는다.

https://maven.apache.org/download.cgi

Maven – Download Apache Maven

Downloading Apache Maven 3.6.3 Apache Maven 3.6.3 is the latest release and recommended version for all users. The currently selected download mirror is https://downloads.apache.org/. If you encounter a problem with this mirror, please select another mirro

maven.apache.org

 

나는 apache-maven-3.6.3-bin.tar.gz를 받았다.

 

 

 

 

 

2. 원하는 위치에 옮기고, tar 파일 압축을 풀어준다.

tar -vxf ~~~~~~~~

 

 

 

 

3. 설치 후 압축을 푼 폴더에 들어가 설치된 경로를 확인한다.

pwd

 

 

 

4. vi 에디터를 사용하여 PATH를 설정한다.(

vi ~/.bash_profile

아래와 같이 경로 설정을 해준다.

 

 

5. 수정된 파일을 반영해준다.

source ~/.bash_profile

 

6. 잘 설치됬는지 버전을 확인한다.

mvn -version

 

 

 

7. 이제 다시 maven을 설치해준다

mvn -U clean install

 

 

그러나 아래와 같은 에러가 발생하였다.

 

 

 

 

알고보니 STS4의 pom.xml 파일이 있는 위치에서 아래 코드를 실행시켜주어야 했다.

mvn -U clean install

 

결국 재설치가 완료되었다.

 

 

 

이렇게 Failed to read artifact descriptor for 관련 에러를 해결할 수 있다!!

 

차근차근 공부하다보면, 그래도 서버쪽에서 어느정도 퍼포먼스를 낼 수 있는 날을 기대한다~~~~~

 

다들 화이팅!

 

 

 

 

 

아래는 제가 알고리즘을 공부하고 수업하는 링크입니다.

 

네이버,딜리버티히어로,카카오,ZUM,삼성SW직군

입사 시 거쳐야할 코딩테스트 수업도

진행할 예정이니, 많은 관심 부탁드립니다~~!!ㅎㅎ

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

Henry Joo

www.youtube.com

 

반응형
반응형

Ajax 통신이란, JavaScript의 라이브러리 중 하나로써, Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다.

 

브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 페이지 전체를 새로고침하지 않고, 페이지 일부만을 위한 데이터를 로드하는 기법이다.

 

Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술이라고 할 수 있다.

 

 

라고 

 

https://coding-factory.tistory.com/143

[Ajax] Ajax란 무엇인가?

▶ Ajax란? Ajax는 JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자입니다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를..

coding-factory.tistory.com

다음의 블로그에 나와있다ㅋㅋ

 

 

이번에 말씀으로 고민상담 인공지능 Project를 할 때,

 

서버 - Spring Boot

클라이언트 - React-native로 구현하려고 하는데, 

 

이게 맞는지 일단 더 공부해봐야 겠다.

 

 

 

 

 

반응형
반응형

안녕하세요 여러분

 

오늘은 Server로 사용할 STS4(Spring Tool Suite 4)의 설치방법에 대해서 말씀드리겠습니다.

 

 

1. 이클립스 설치하기

 

아래의 링크로 들어가셔서 이클립스를 설치합니다.

https://www.eclipse.org/downloads/

Eclipse Downloads | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks.

www.eclipse.org

 

 

 

버튼을 눌러 다운로드 받고,

Eclipse Installer 가 생성되었으면,

 

 

 

실행하여 이클립스 설치를 진행합니다.

 

 

 

 

2번째 "Eclipse IDE for Enterprise Java Developers" 선택하여 설치를 진행합니다.

 

 

 

설치가 다 되었으면, Launch를 클릭하여

잘 실행되는지 봐주세요

 

 

 

 

 

 

아주 잘 실행됩니다~~

 

이클립스가 설치되었으면,

 

이제 STS4 를 설치해주겠습니다.

 

구글 검색창에다가

다음의 키워드로 검색을 해줍니다.

 

"Spring Tool Suite 4"

그리고 아래처럼 보이는 웹사이트에 접속합니다.

 

 

 

직접 들어갈 수 있는 링크도 남겨드릴께여~~

 

https://spring.io/tools

Spring Tools 4 is the next generation of Spring tooling

Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.

spring.io

 

들어가셔서 자신의 운영체제에 맞는 버전을 다운받습니다.

 

 

 

 

 

저는 이클립스 용으로 설치를 하겠습니다.

 

 

 

위와 같은 아이콘이 생성되어 설치가 완료된 것입니다.

 

 

STS4를 실행하니,

이클립스 환경에서 실행이 되는 것을 볼 수 있습니다.

 

 

 

 

Launch를 클릭하면 좌측에 

다음과 같은 메뉴창(Package Explorer)이 보입니다.

 

"여기서 Create new Spring Starter" 실행해주세요~~

 

 

 

 

다음 화면이 뜨면 Next 클릭!

프로젝트 이름은 demo 라고 임시로 지어보겠습니다

 

 

 

 

웹서버를 띄울 때

MVC 패턴을 사용하기 위해

Spring web 이라는 것을 추가해주세요~~

 

 

짜잔~~

좌측에 demo 라는 이름의 프로젝트가 생겼습니다.

이제

src/main/java -> com.example.demo -> DemoApplication.java 파일을 수정하겠습니다.

 

아래와 같이

@RestController

코드와

@RequestMapping("/")
public String index(){
return "Hello World!";
}

코드를 추가해주세요~~~

 

 

처음에 RestController와 RequestMapping 이라는 게 import 가 되어있지 않아서,

빨간 줄이 뜬다면,

 

 

 

여기에 커서를 올려놓으면, 다양한 메뉴가 뜹니다.

 

 

거기서 Import 'RequestMapping"이라는 것을 눌러주세요.

앞으로 RequestMapping 이라는 기능을 가져와서 쓴다는 의미입니다.(RestController 도 동일하게 진행해주세요~)

 

 

 

 

자 코드까지 추가가 되었으면,

이제 웹서버를 띄워보겠습니다.

 

상단의 메뉴바에서

아래의 버튼 클릭!

 

 

 

버튼을 눌러주시고,

"Spring Boot App" 버튼 클릭하고, "OK"를 눌러주세요

 

 

 

방금 DemoApplication.java 파일이 수정되었으니, 

저장할꺼냐? 라는 물음에 "ok"를 클릭해주세요~

 

 

 

 

 

그리고 아래에 다음과 같은 화면이 뜨면 웹 서버가 실행된 것입니다.

 

 

 

 

 

이제 인터넷을 켜고 검색창에다가

"localhost:8080"

라고 치고 들어가보면, 아래와 같이 나타나면 성공입니다~~~!!

 

 

 

이렇게 오늘은 Spring Tool Suite 4라는 툴을 사용해서

웹서버를 띄워보았습니다.

이렇게 서버를 띄워서 다양한 서비스를 백업해줄 수 있으니,

한번 혼자서도 진행해보시면 좋을 것 같습니다~!!

 

 

다들 화이팅~~!!

반응형
반응형

환경세팅

# NLP 라이브러리 - 문장과 문장의 유사도를 측정해줌.
import gensim
# 태그해주는 라이브러리 - 문장에 어떤 단어 형식의 태그를 만들어준다.
from konlpy.tag import Twitter
# 외부 라이브러리 설치(Jupyter Notebook 환경)
!pip install gensim
!pip install Twitter
# 내가 추출하고자 하는 단어의 타입 (ex, 명사, 외래어, 알파벳)
possible_type = ['Noun','Foreign','Unknown','Hashtag','Alpha']

# 태깅처리된 object 담을 리스트
tag_data = []
# 말씀과 사용자의 고민을 담아줄 리스트
sentence = [] 

데이터 셋 구축

# 감사
sentence.append(("아침과 저녁마다 서서 여호와께 감사하고 찬송하며","감사"))
sentence.append(("주여 내가 만민 중에서 주께 감사하오며 뭇 나라 중에서 주를 찬송하리이다","감사"))
sentence.append(("감사함으로 그의 문에 들어가며 찬송함으로 그의 궁정에 들어가서 그에게 감사하며 그의 이름을 송축할지어다","감사"))
sentence.append(("우리가 우리 하나님 앞에서 너희로 말미암아 모든 기쁨으로 기뻐하니 너희를 위하여 능히 어떠한 감사로 하나님께 보답할까","감사"))
sentence.append(("의인이여 너희는 여호와로 말미암아 기뻐하며 그의 거룩한 이름에 감사할지어다","감사"))
sentence.append(("항상 기뻐하라 쉬지 말고 기도하라 범사에 감사하라 이것이 그리스도 예수 안에서 너희를 향하신 하나님의 뜻이니라","감사"))
sentence.append(("범사에 우리 주 예수 그리스도의 이름으로 항상 아버지 하나님께 감사하며","감사"))

#건강
sentence.append(("주는 나를 용서하사 내가 떠나 없어지기 전에 나의 건강을 회복시키소서","건강"))
sentence.append(("이르되 큰 은총을 받은 사람이여 두려워하지 말라 평안하라 강건하라 강건하라 그가 이같이 내게 말하매 내가 곧 힘이 나서 이르되 내 주께서 나를 강건하게 하셨사오니 말씀하옵소서","건강"))
sentence.append(("스스로 지혜롭게 여기지 말지어다 여호와를 경외하며 악을 떠날지어다 8 이것이 네 몸에 양약이 되어 네 골수를 윤택하게 하리라","건강"))
sentence.append(("사랑하는 자여 네 영혼이 잘됨 같이 네가 범사에 잘되고 강건하기를 내가 간구하노라 ","건강"))
sentence.append(("너는 알지 못하였느냐 듣지 못하였느냐 영원하신 하나님 여호와, 땅 끝까지 창조하신 이는 피곤하지 않으시며 곤비하지 않으시며 명철이 한이 없으시며 29 피곤한 자에게는 능력을 주시며 무능한 자에게는 힘을 더하시나니 30 소년이라도 피곤하며 곤비하며 장정이라도 넘어지며 쓰러지되 31 오직 여호와를 앙망하는 자는 새 힘을 얻으리니 독수리가 날개치며 올라감 같을 것이요 달음박질하여도 곤비하지 아니하겠고 걸어가도 피곤하지 아니하리로다","건강"))

#게으름
sentence.append(("게으른 자여 개미에게 가서 그가 하는 것을 보고 지혜를 얻으라","게으름"))
sentence.append(("손을 게으르게 놀리는 자는 가난하게 되고 손이 부지런한 자는 부하게 되느니라","게으름"))
sentence.append(("부지런한 자의 손은 사람을 다스리게 되어도 게으른 자는 부림을 받느니라 ","게으름"))
sentence.append(("게으른 자의 길은 가시 울타리 같으나 정직한 자의 길은 대로니라","게으름"))
sentence.append(("문짝이 돌쩌귀를 따라서 도는 것 같이 게으른 자는 침상에서 도느니라 15 게으른 자는 그 손을 그릇에 넣고도 입으로 올리기를 괴로워하느니라 16 게으른 자는 사리에 맞게 대답하는 사람 일곱보다 자기를 지혜롭게 여기느니라 ","게으름"))

#연애
sentence.append(("그런즉 이제 둘이 아니요 한 몸이니 그러므로 하나님이 짝지어 주신 것을 사람이 나누지 못할지니라 하시니","연애"))
sentence.append(("여호와 하나님이 이르시되 사람이 혼자 사는 것이 좋지 아니하니 내가 그를 위하여 돕는 배필을 지으리라 하시니라","연애"))
sentence.append(("그리스도를 경외함으로 피차 복종하라","연애"))
sentence.append(("그러므로 사람이 부모를 떠나 그의 아내와 합하여 그 둘이 한 육체가 될지니 32 이 비밀이 크도다 나는 그리스도와 교회에 대하여 말하노라 33 그러나 너희도 각각 자기의 아내 사랑하기를 자신 같이 하고 아내도 자기 남편을 존경하라","연애"))
sentence.append(("말씀하시기를 그러므로 사람이 그 부모를 떠나서 아내에게 합하여 그 둘이 한 몸이 될지니라 하신 것을 읽지 못하였느냐","연애"))
sentence.append(("남편들아 이와 같이 지식을 따라 너희 아내와 동거하고 그를 더 연약한 그릇이요 또 생명의 은혜를 함께 이어받을 자로 알아 귀히 여기라 이는 너희 기도가 막히지 아니하게 하려 함이라","연애"))

#고난
sentence.append(("그리스도가 이런 고난을 받고 자기의 영광에 들어가야 할 것이 아니냐 하시고","고난"))
sentence.append(("자녀이면 또한 상속자 곧 하나님의 상속자요 그리스도와 함께 한 상속자니 우리가 그와 함께 영광을 받기 위하여 고난도 함께 받아야 할 것이니라","고난"))
sentence.append(("생각하건대 현재의 고난은 장차 우리에게 나타날 영광과 비교할 수 없도다 ","고난"))
sentence.append(("오히려 너희가 그리스도의 고난에 참여하는 것으로 즐거워하라 이는 그의 영광을 나타내실 때에 너희로 즐거워하고 기뻐하게 하려 함이라","고난"))
sentence.append(("만일 그리스도인으로 고난을 받으면 부끄러워하지 말고 도리어 그 이름으로 하나님께 영광을 돌리라","고난"))
sentence.append(("너희 중에 고난 당하는 자가 있느냐 그는 기도할 것이요 즐거워하는 자가 있느냐 그는 찬송할지니라","고난"))
sentence.append(("네가 고난 중에 부르짖으매 내가 너를 건졌고 우렛소리의 은밀한 곳에서 네게 응답하며 므리바 물 가에서 너를 시험하였도다","고난"))
sentence.append(("내가 환난 중에 여호와께 부르짖었더니 내게 응답하셨도다","고난"))

# 고통
sentence.append(("너희는 너희를 모든 재난과 고통 중에서 친히 구원하여 내신 너희의 하나님을 오늘 버리고 이르기를 우리 위에 왕을 세우라 하는도다 그런즉 이제 너희의 지파대로 천 명씩 여호와 앞에 나아오라 하고 ","고통"))
sentence.append(("다윗이 갓에게 이르되 내가 고통 중에 있도다 청하건대 여호와께서는 긍휼이 크시니 우리가 여호와의 손에 빠지고 내가 사람의 손에 빠지지 아니하기를 원하노라 하는지라","고통"))
sentence.append(("여호와여 내가 고통 중에 있사오니 내게 은혜를 베푸소서 내가 근심 때문에 눈과 영혼과 몸이 쇠하였나이다","고통"))
sentence.append(("이에 그들이 근심 중에 여호와께 부르짖으매 그들의 고통에서 건지시고","고통"))
sentence.append(("이에 그들이 그 환난 중에 여호와께 부르짖으매 그들의 고통에서 구원하시되","고통"))
sentence.append(("내가 고통 중에 여호와께 부르짖었더니 여호와께서 응답하시고 나를 넓은 곳에 세우셨도다","고통"))

User Input 값을 "고민"이라는 태그로 배열에 추가

user_input = "요즘 취업준비 하는 것 때문에 너무 두렵도 힘들어요. 이 기간이 언제 끝날지 모르겠지만, 그래도 하나님께서 항상 제 길을 인도해주신다는 것을 믿어요\
저의 이 시간이 빨리 끝났으면 좋겠어여"

sentence.append((user_input,"고민"))

 

말씀 & 고민에 태깅처리를 해주고, tagged 라는 리스트에 담는다.

for record in sentence:
    print(record[0])
    twitter = Twitter()
    twitter_p = twitter.pos(record[0])
    arr_ = []
    for tmp in twitter_p:
        if tmp[1] in possible_type:
            if False == False : arr_.append(tmp[0])
            else : arr_.append(tmp[0]+'/'+tmp[1])
            
    words = arr_
    tag_data.append(gensim.models.doc2vec.TaggedDocument(words,[record[1]]))

사용할 gensim 모델 생성

model = gensim.models.doc2vec.Doc2Vec(vector_size=10, epochs=2)

Gensim 모델 vocabulary 생성(look-up table 느낌으로 해석하면 됨)

model.build_vocab(tag_data)

모델 학습

model.train(tag_data, total_examples=model.corpus_count, epochs=model.epochs)

고민 예측

n = len(model.docvecs)
Score = model.docvecs.most_similar("고민", topn=n)

점수 확인

print(Score)
반응형

+ Recent posts