목록파이썬 (147)
꿈 많은 사람의 이야기
지난 글에서 파이썬으로 연결리스트를 구성해봤습니다.(https://lsjsj92.tistory.com/461) 하지만 단순한 연결리스트는 단방향만 가기 때문에 양방향보다는 효율이 떨어집니다 그것을 보완하기 위해 양방향으로 갈 수 있는 연결 리스트를 구상했는데요 그게 이중 연결 리스트(doubly linked list) 입니다. 그림으로 보면 아래와 같은 구조입니다. 각 노드가 있고 노드안에 prev, next가 있어서 prev는 본인 노드 전의 지점을 가리킵니다. next는 본인 노드 다음의 노드를 가리킵니다. 어렵지 않는 구조이죠 지난 번 포스팅에서 크게 달라지는 것은 없으며 prev 구조가 추가 되었습니다. 이게 끝입니다 ㅎㅎ 단순하죠? 하지만 삽입이나 삭제 같은 연산을 할 때는 좀 많이 달라집니다...
최근 다시 한 번 알고리즘, 자료구조를 공부하고 싶었다 솔직히 알고리즘까지는 아니더라도 자료구조라도 공부를 하고 싶었다 그래서 파이썬으로 코드를 작성하며 공부를 해보려고 한다 이번 편은 파이썬으로 해보는 자료구조 연결 리스트(linked list)이다 연결리스트는 어찌보면 배열과 비슷하지만 구조적으로 다르다 배열은 같은 성질끼리(요즘엔 언어에 따라서 다른 성질도 묶어도 되지만) 연속적으로 되어 있는 상태이다 연결 리스트(linked list)는 구조상으로 봤을 때 계속 링크를 따라서 이어지는 구조이다 이런식으로 말이다 하나의 노드에 데이터와 다음 노드를 가리키는 next point가 있다 이런 식으로 쭉 이어나가고 중간에 삽입, 삭제도 가능하도록 코드를 구성해보겠다 파이썬으로! python data st..
텐서플로 책을 보다가 햇갈려서 정리하는 부분이다바로 concat인데이해를 했다가도 햇갈리고 그런다특히 axis 부분..axis = 0이냐axis = 1이냐axis = -1이냐3차원이면 axis = 2까지..tf.concat을 정리하면서 다시 정리한다 https://www.tensorflow.org/api_docs/python/tf/concat참고 tensorflow를 import하고 t1, t2가 저렇게 있다고 가정하자 모양은 (2, 3)이 된다즉, 바깥쪽에 2개가 있고 안쪽에 3개씩 있는 2차원 매트릭스이다. 이제 이것을 concat할 것이다 tf.concat([t1, t2], axis = 0)을 하게 되면 결과는 아래와 같이[[1,2,3], [4,5,6], [7,8,9], [10,11,12]로 나온다..
이번 커널 필사편은 7주차 이후로 또 다시 자연어 처리 편입니다이 커널은 toxic 이라는 데이터로 알려져 있는데요. 캐글에서 자연어 처리(nlp) 데이터 셋으로 많이 유명합니다.일종의 분류 문제입니다. 하지만 label이 1개가 아닌 6개를 가진 특이한 데이터 구조입니다 처음 캐글을 시작할 때 타이타닉 다음으로 이 데이터 셋으로 했었는데..당시에는 아무것도 모를 때라 그냥 너무 어렵다.. 하고 포기했었는데요처음 봤을 때보다 지금이 7개월 정도 흘렀는데 이젠 좀 눈에 보이네요 ㅎㅎ 필사를 하면서 이해가 되더군요제가 그 만큼 공부를 했다는 거겠죠 ㅎㅎ 바로 진행합니다 역시 처음에 필요한 라이브러리를 가져와줍니다keras, matplotlib, seaborn, pandas, numpy 등을 가져와줍니다lay..
이번 커널 필사편은 자연어 처리 부분입니다.당분간은 자연어 처리 위주로 글을 올릴 예정입니다캐글에 있는 자연어 처리 데이터 중 쉬운 편에 속하는 스팸(sparm or ham) 데이터를 가지고 해당 글이 스팸인지 아닌지를 딥러닝으로 처리해보겠습니다.https://www.kaggle.com/uciml/sms-spam-collection-dataset캐글 데이터는 여기서 구할 수 있습니다! 먼저 필요한 라이브러리를 불러옵니다파이썬의 판다스(pandas), numpy와 그래프를 그릴 matplotlib, seaborn을 불러옵니다.그리고 머신러닝 라이브러리 scikit learn(사이킷런)과 딥러닝 라이브러리인 keras(케라스)를 불러옵니다 데이터는 v1, v2 컬럼으로 각각 라벨, 문장으로 되어있습니다.하지..
최근에 텐서플로우로 배우는 자연어 처리 책을 보고 있습니다 평소에는 케라스(keras)만 위주로 써서 이 책의 내용의 코드와 잘 맞지 않는 부분이 있는데요이 책도 텐서플로우 안에 있는 keras 모듈을 사용하기는 합니다.tf.keras.layer 등을 사용하고 때에 따라서 tf.nn.rnn 등을 사용하기도 합니다. 하지만 완전 순수 keras 라이브러리와는 좀 사용법이 다르네요그 중 하나가 저는 model summary 부분이 정말 궁금했습니다. 케라스에서는 그냥 model.summary()를 하면 모델 요약이 나왔었는데요!tf.keras를 사용하다보니까 사용 방법이 좀 달랐습니다 model을 요약(summary)해서 shape 등의 정보를 볼 수 있는 방법을 소개합니다(tensorflow model s..
파이썬으로 딥러닝을 해봅시다!이번 포스팅은 파이썬(python)의 케라스(keras) 딥러닝 라이브러리를 이용해서자연어 처리(NLP)를 해봅니다. 데이터는 네이버 영화 평점 데이터를 활용합니다.사실 이 딥러닝을 한지는 꽤 되었습니다.모두의 연구소에서 진행한 모두콘(moducon)때에 자연어 처리 대회가 있었는데요그때 참여했던 소스입니다. 당시는 3등을 했습니다(정확도가 별로 높지는 않지만..)1, 2등 분들의 코드나, 아이디어를 얻고 싶어서 모두연에 요청도 했는데 ㅠ끝내는 받지 못했네요 ㅠㅠ아무튼 저는 아래와 같은 방식으로 자연어 처리 딥러닝을 진행했습니다. 먼저 형태소 분석기가 인식하지 못할 단어를 모아서 구축했습니다.자연어 처리에서 형태소 분석기는 자주 사용하는데요저는 은전한닢(mecab)을 자주 사..
벌써 이것을 진행한지는 꽤 되었지만 이 블로그에는 올리지 않아서 다시 올립니다~원본 게시글은https://post.naver.com/viewer/postView.nhn?volumeNo=16628864&memberNo=34022432 여기에 올려져 있습니다~파이썬으로 텍스트 데이터를 분석하는 작업인데 소셜 네트워크 서비스(SNS) 데이터를 활용합니다 타겟 데이터는 비트코인, 이더리움 등의 암호화폐(가상화폐)로 유명한 오픈 커뮤니티인 코인판(coinpan)을 활용합니다코인판에서 나온 메디블록(mediblock) 게시글을 분석해서 메디블록과 관련된 텍스트 데이터를 분석해보려고 합니다!참고로 이 분석은 벌써 시간이 반년정도 되었습니다.지금과는 이슈가 다를 것입니다.약올림이라는 어플이 나왔을 때 했던 프로젝트고본..
안녕하세요. 이번 포스팅은 파이썬 업무 자동화 편입니다. 지난 포스팅에서 파이썬으로 pdf를 엑셀로 만드는 자동화에 대해서 포스팅을 했었는데요이번 포스팅은 엑셀 데이터를 자동으로 데이터 흐름도(data flow chart)로 만들어주는 것을 해보려고 합니다.데이터 흐름도가 무엇인지, 어떻게 활용될 수 있는지 등 차근히 알아보죠 단순히 구글에 데이터 흐름도라고 검색하시면 이렇게 그림이 나오는 것을 볼 수 있습니다.음 이렇게 보니까 이번에 진행하는 것은 데이터 흐름도와 100% 일치한다고는 볼 수 없네요하지만 100% 일치하도록 만들 수도 있습니다 살짝 dot format에 가깝습니다.dot은 graph description language라고 불리는데요텍스트 데이터를 흐름도 처럼 그려주는 것입니다.단순히 ..
최근에 캐글을 하면서 가장 많이 헷갈렸던 부분이바로 StratifiedKFold와 pandas에서 axis=0, 1의 대한 개념이었다. 아무것도 모르는 상태도 아니었고 개념적으로는 알고 있었는데막상 코드를 필사하면서 보니까 정말 헷갈렸었다그래서 정리를 간단하게 해보려고 한다. 먼저 간단하게 데이터셋을 만들어본다.pd.DataFrame을 통해서 만든다 자, 처음으로는 StratifiedKFold를 해본다.from sklearn.model_selection import StratifiedKFold를 통해 라이브러리를 가져온다.사용법은 정말 간단하다. StratifiedKFold를 선언하고 splits 개수와 shuffle 여부, random_state 등을 설정해준다.그리고 저 상태에서 바로 .split(x..