앎을 경계하기

Programming 67

[Python error] Error: 'NoneType' object has no attribute 'loader'

Mac mini m1, Python 3.8, Anaconda 가상환경 사용. tensorflow로 모델을 구성해서 input data를 넣어주려고 했는데 아래와 같은 에러가 났다. NotImplementedError: Cannot convert a symbolic Tensor (lstm_2/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported 찾아보니 NumPy 버전 문제여서 1.19.5로 낮추라고 함. pip uninstall numpy를 해주고 conda install numpy==1.19.5 를 해서 새로 넘파이를..

Programming/Python 2021.08.17

파이썬에서 BFS, DFS 구현 시 주의사항(재귀 X)

인접 노드를 저장하기 위한 리스트를 만들 때 클래스 변수로 선언하는 경우를 조심해야한다. 하나의 클래스의 인스턴스들이 클래스 변수를 공유하기 때문에 각자의 인접노드를 개별적으로 갖고있지 않게 된다. 따라서 self를 사용해서 각자 인접한 노드를 저장하도록 하자. ''' 그래프 검색 DFS : 이어진 자식 노드 단위로 검색하는 방법, 트리 순회 방식도 포함, 스택사용 BFS : 레벨 단위로 검색하는 방법, 큐 사용 그래프 구성 노드, 엣지, 인접노드들은 링크드리스트로 연결되어있다. ''' from queue import Queue import copy class node : def __init__(self, v): self.ad = list() self.v = v self.mark = False #스택 또..

Programming/Python 2021.08.09

FLASK 4 - 웹 크롤링 구글검색결과 웹 페이지에 표시하기

웹 크롤링을 하기 전, 필요한 라이브러리에 대해 설명한다.requests파이썬에서 HTTP 요청을 보내는 모듈이다.BeautifulSoupHTML과 XML 문서를 파싱하기 위해 사용하는 파이썬 패키지페이지에 대한 구문 분석 트리를 제공한다. 위 두 가지 라이브러리를 사용하여 구글 검색 결과를 가져와보자.google_keyword.pyimport requests from bs4 import BeautifulSoup def get_search_count(keyword): url = "https://www.google.com/search?q={}".format(keyword) headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb..

Programming/Python 2020.12.21

BeautifulSoup lxml error.

크롤링 공부 중, 다음과 같은 에러를 마주침. soup = BeautifulSoup(res.text, 'lxml') File "C:\Users\didwu\anaconda3\envs\flask\lib\site-packages\bs4\__init__.py", line 243, in __init__ raise FeatureNotFound( bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? lxml은 파이썬으로 XML, HTML 처리를 할 수 있는 라이브러리이다. 이것을 pip로 설치하면 해결된다. pip install lxml

Programming/Python 2020.12.18

FLASK 3 - get, post 분기 생성/클라이언트에서 서버로 데이터 전송

웹 페이지에서 로그인을 하는 경우와 같이 사용자가 어떠한 입력을 통해 서버에 데이터를 전송해야하는 경우가 있다.이 때 GET과 POST 방식으로 데이터를 받는다. 학부 때 통신 수업에서 배웠던 기억을 되살리면... GET은 데이터가 전부 오픈된다는것이고 POST는 GET보다는 보안측면에서 안전하다는것..? 정도 기억난다. (포스팅 후 찾아봐야지)접속 URL을 정하는 어노테이터의 파라미터인 methods에 사용할 방식을 지정해준다.app.py@app.route("/", methods=["GET", "POST"]) # 접속 urldef index(): if request.method == "POST": # 요청 방식이 POST라면, print(request.form.get("user")) # 안전하게 가져오..

Programming/Python 2020.12.17

FLASK 2 - static 폴더 생성, 서버에서 데이터 전송

보통 html 문서 작성을 할 때 css, javascript 파일도 함께 작성하는 것이 흔하다.위 파일들을 정적파일을 모아두는 폴더인 static에 저장해보자.CSS 스타일 적용을 위한 html 코드H1태그의 색상을 분홍색으로 지정하는 css 코드h1{ color : pink; }실행하면 다음과 같이 H1태그를 사용한 부분이 분홍색으로 표시된다.이번에는 서버에서 클라이언트 쪽으로 데이터를 전송해보자.app.py에서 render_template() 에 인수를 넣어 데이터를 전송할 수 있다.def index(): return render_template('index.html', user="양갱", data={'interest':'CV,deeplearning','MBTI':'ESTJ' ,'blog':'whe..

Programming/Python 2020.12.14

FLASK 1 - Flask 가상환경 생성, 패키지 설치 및 app.py

환경Windonws 10가상환경 생성 및 필요 패키지 설치conda create -n flask생성된 가상환경을 활성화한다.conda activate flaskpip3을 사용하여 가상환경 내에 필요한 패키지를 설치한다.pip3 install flaskapp.py 작성하기Flask에서 app.py는 서버가 가동될 파이썬 파일을 말한다.작성을 위해 visual studio code를 실행하고 프로젝트 폴더 아래에 app.py 파일을 생성한다. from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__=="__main_..

Programming/Python 2020.12.14

파이썬 '...' ellipsis 의미

주로 파이썬에서 배열 인덱싱을 위해 콜론(:)을 사용한다. >>> x = [1,2,3,4,5] >>> x = [:-1] [1,2,3,4] numpy에서도 마찬가지이다. >>> x = np.array(range(10)).reshape(2,5) array([[0,1,2,3,4], [5,6,7,8,9]]) >>> x[:] array([[0,1,2,3,4], [5,6,7,8,9]]) >>> x[:,:] array([[0,1,2,3,4], [5,6,7,8,9]]) ellipsis를 사용하면 : 사용한 것 처럼 결과가 나온다. >>> x[...] array([[0,1,2,3,4], [5,6,7,8,9]]) 3차원 이상의 배열에서 사용해보자. >>> x = np.array(range(27)).reshape(3,3,3..

Programming/Python 2020.10.26

Python N-gram 생성

출처 : https://dojang.io/mod/page/view.php?id=2332 파이썬 코딩 도장: 28.2 N-gram 만들기 N-gram은 문자열에서 N개의 연속된 요소를 추출하는 방법입니다. 만약 'Hello'라는 문자열을 문자(글자) 단위 2-gram으로 추출하면 다음과 같이 됩니다. 즉, 문자열의 처음부터 문자열 끝까지 한 글자씩 이동하면서 2글자를 추출합니다. 3-gram은 3글자, 4-gram은 4글자를 추출하겠죠? 28.2.1 반복문으로 N-gram 출력하기 이제 반복문으로 문자 단위 2-gram을 출력해보겠습니다. 2_gram_character.py text = dojang.io N-gram : 문자열에서 N개 요소를 연속으로 추출한다. 1. 반복문 사용하기 #반복문을 사용한 2-..

Programming/Python 2020.01.02

Python Palindrome(회문) 판별

출처 : https://dojang.io/mod/page/view.php?id=2331 파이썬 코딩 도장: 28.1 회문 판별하기 Unit 28. 회문 판별과 N-gram 만들기 이번에는 문자열을 응용해서 회문을 판별하는 방법과 N-gram을 만드는 방법을 알아보겠습니다. 회문은 유전자 염기서열 분석에서 많이 쓰고, N-gram은 빅 데이터 분석, 검색 엔진에서 많이 쓰입니다. 특히 구글은 책들을 스캔해서 N-gram viewer를 만들었는데 사람들의 언어 패턴을 시대별로 분석하기도 했습니다. 28.1 회문 판별하기 회문(palindrome)은 순서를 거꾸로 읽어도 제대로 읽은 것과 dojang.io Palindrome : 회문, 단어나 문장이 그 순서를 뒤집은 경우와 같은 것을 말한다. example ..

Programming/Python 2020.01.02