분류 전체보기
-
-
[project] PDF parser 종류 탐색 및 비교카테고리 없음 2021. 6. 28. 21:40
Virus total api 사용해서 자동으로 악성 파일인지 판단하는 코드 생성하기 필자가 사용한 파일들은 sha256 해시값이 파일 이름으로 설정되어있었기 때문에 파일의 해시값을 얻어내는 기능은 생략했다. import requests import time url = 'https://www.virustotal.com/vtapi/v2/file/report' # not_labeled_samples : sample 정보를 가진 dataframe new_results = pd.DataFrame(columns=['sha256', 'label']) ambiguous_samples = pd.DataFrame(columns=['sha256', 'positives']) num_of_target = 20 # 4의 배수로 ..
-
[project] 악성 댓글 판별 위한 인공지능 모델 생성카테고리 없음 2021. 6. 16. 23:13
프로젝트 진행 프로세스는 아래 깃헙 주소 readme에 있음 github : https://github.com/yuminkim97/AI_proj1_detect_vicious 해당 포스팅에서는 프로젝트를 진행하면서 생긴 에러와 해결 방법, 참고한 링크 위주로 정리하고자 함. 프로젝트 목적 : 짧은 포스팅(게시판 게시글) 혹은 댓글의 악의성(모욕, 비난, 욕설 포함) 판별 프로젝트 목적에 따라 악성 댓글 데이터를 사용하였고, 데이터 문자열 길이가 짧은 관계로 토큰 집합의 크기가 크지 않고 전체 데이터중 1회~2회 등장하는 희소 단어도 많았다. 형태소 분석기 토큰화를 진행하기 위해 konlpy 라이브러리를 사용하였다. 이때 아래의 단계를 거쳐야한다. 1. JAVA 설치 https://www.oracle.com..
-
트리(Tree)카테고리 없음 2021. 5. 31. 18:00
출처 : https://www.onlybook.co.kr/entry/algorithm-interview 용어 루트(root) : 가장 위에 있는 노드, 트리에서 단 하나만 존재 서브트리(sub-tree) : 자식노드임과 동시에 부모노드인 노드가 있는 트리 차수(degree) : 노드가 갖고있는 최대 자식 노드 수 리프(leaf) : 레벨 별로 가장 마지막에 있는 노드 레벨(level) : 루트로부터 떨어진 거리를 표현 높이(height) : 리프레벨의 최대값 형제노드(sibling) : 부모가 같은 노드들 binary tree (이진 트리) : 각 노드 별 최대 2개의 서브 노드를 갖는 트리 (차수가 2인 트리) 종류 포화이진트리 : 모든 리프노드가 동일한 레벨을 갖고 있는 경우 완전이진트리 : 노드가 ..
-
재귀(Recursion)카테고리 없음 2021. 5. 31. 17:20
재귀 : 특정 함수를 재호출하는 것, 문제를 쉽게 해결하기 위해 문제를 작은 단위로 분할하여 해결하는 '분할정복법'을 구현하기 위한 방법 재귀의 조건 1. base case(반복을 중지할 수 있는 조건) 이 존재하고 2. base case 이외 추가 조건이 존재하며, 3. 자기자신을 호출해야 한다. 예시) def fibo(num) : if (num == 0) or (num == 1) : # base case return num else : # 추가 조건 return fibo(num-1) + fibo(num-2) # 자기자신 호출
-
자료구조(Data Structure)카테고리 없음 2021. 5. 31. 17:12
자료구조 : 다양한 데이터를 효율적(빠른 연산, 특수한 상황에 대한 대처 등)으로 처리(저장)하기 위해 생긴 개념 자료구조의 개념이 없다면 어떤 값을 저장하고 싶을 때 마다 새로운 변수를 생성하여야 할 것이다. 하지만 list와 같은 자료구조를 적절히 사용함으로서 같은 특징을 가진 데이터들을 하나의 변수에 묶을 수 있으며, 가공 또한 효율적이다. *참고 : python의 list는 배열의 특징(인덱스를 사용하여 각 요소에 접근 가능)과 연결리스트의 특징(리스트의 크기를 자유롭게 확장가능, 서로 다른 자료형도 같은 list안에 포함 가능)을 모두 가지고 있다. 추상자료형(ADT, Abstarct Data Type) : 추상적으로 필요한 기능을 나열한 자료형으로, 기본자료형(리스트, 숫자, 문자열)을 활용하..
-
복잡도와 Big O notation카테고리 없음 2021. 5. 31. 16:04
복잡도 : 알고리즘의 실행 효율성 (시간적, 공간적) 복잡도를 표기하는 방법 중 시간 복잡도를 표현하는 방법에는 Big O notation이 있다. Big O notation : 해당 코드가 얼마나 수행되었는지 (연산을 몇 번 반복하였는지) 표시하는 방법 출처 : https://dev.to/chandra/what-is-big-o-notation-understand-time-and-space-complexity-in-javascript-4684 O(1) 상수시간인 경우 def func(text): print(text) func('hello') 입력값에 상관없이 일정한 횟수만 실행되는 코드. O(n) 선형시간인 경우 def func(num_list): for num in num_list : print(num..
-
순회(Traversal)카테고리 없음 2021. 5. 24. 21:39
순회 : 트리/그래프 같은 연결구조에서 노드를 방문하면서 탐색하는 알고리즘 트리의 순회 방법 1. 전위 순회 (preorder) root node -> left node -> right node def pre_order(node, list): list.append(node.value) if node.left : pre_order(node.left, list) if node.right : pre_order(node.right, list) if node is None: return None 2. 중위 순회 (inorder) left node -> root node -> right node # 중위 순회 def in_order(node, list): if node.left : in_order(node.left..