목록전체 글 (302)
elevne's Study Note
JSP파일에서 forEach문으로 게시판 보드에 tr 태그 별로 다른 값을 넣어주었다. 여기에서, 각 tr 태그에 Input 값이 따로 있는데 특정 버튼을 눌렀을 때 이 Input tag 안에 해당 행의 다른 열에서 값을 가져와서 value setting을 해줘야하는 로직이 필요했다. 처음에는 varStatus의 .index 혹은 .count를 사용하여 class이름을 row 별로 세팅해준 후 javascript for문을 돌릴까 했지만,, 비효율적인 것 같아서 방법을 고민하다 다음과 같은 코드로 마무리할 수 있었다. $('table > tbody > tr ').each(function(index, tr) { var data = $(this).find("td:eq(1) input[type='text']"..
자바스크립트의 비동기처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추는 것이 아니라, 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미한다. 비동기처리의 가장 흔한 사례는 ajax를 사용할 때라고 한다. ajax를 사용하는 함수와, 이를 통해 가져온 정보를 출력하는 함수를 순서대로 적었을 때, 밑의 console.log의 결과 값이 undefined로 나온다는 것이다. (ajax로 값을 가져오기 이전에 console.log가 실행되어 버리는 것) 아래 코드가 그 예시가 될 수 있다. $.ajax({ type: "POST", url:"/json", dataType:"json", data:{ value : value }, success: function(data) { result =..

Github에 공개되어 있는 네이버 영화 평점 데이터를 사용하여 감성분석을 진행해보았다. 해당 데이터는 총 20만 개의 영화리뷰 데이터로 이루어져 있고, 20만 개의 리뷰는 각각 긍정/부정으로(각각 1,0)으로 레이블링이 되어있다. 아래 링크에서 데이터를 다운로드 받을 수 있다. 데이터링크: https://github.com/e9t/nsmc import pandas as pd train_data = pd.read_csv("ratings_train.txt", header=0, delimiter="\t") train_data.head() 위에서는 데이터가 tab으로 구분되어 있어 delimiter=”\t”을 인자로 넣어서 파일을 읽어주었다. 그 후, 전체 트레이닝 데이터셋의 특징을 알아보기 위한 과정을 몇 ..
오늘은 가지고 있는 JSON파일을 토대로 같은 이름의 음성파일을 편집/전처리를 해야 했다. JSON 파일 안에는 같은 이름의 음성파일의 데이터의 텍스트 정보가 시간대별로 나눠져 적혀 있는데, 그 정보를 바탕으로 음성파일을 자르는 것과, JSON 파일을 파싱하여 필요한 정보만 가져와서 csv 파일로 만드는 것이 목표였다. 우선 python의 os 라이브러리를 사용하여 Input 데이터들이 전부 짝이 맞게 잘 갖춰져있는지 확인하였다. def chkFilesFolders(inputFolderPath, resultFolderPath): if not (os.path.exists(inputFolderPath)): print("입력 파일 폴더가 존재하지 않습니다.") if not (os.path.exists(resu..

이전 글에 썼던 것처럼, 자연어데이터를 컴퓨터에서 처리하기 위해서는 이를 숫자들로만 이루어진 데이터로 변환해주는 과정이 필요하다. 자연어데이터를 수치화할 때는 주로 벡터로 표현을 하게 되고 이를 Word Embedding이라고 표현한다. Word Embedding의 한 방법으로 One-Hot-Encoding 방식이 있다. 데이터에 있는 총 단어의 종류가 벡터의 길이가 되고, 단어벡터는 해당 단어의 위치에만 1, 나머지는 전부 0을 갖는 벡터이다. Keras에서 제공하는 to_categorical 함수를 통해서 다음과 같이 간단한 코드로 One-Hot-Encoding을 구현할 수 있다. from tensorflow.keras.preprocessing.text import Tokenizer from tens..

각종 자연어처리 기법을 사용하기 위해서는 자연어데이터를 숫자데이터로 변환하는 과정이 필요하다. Scikit-Learn 라이브러리를 활용하여 이를 간단하게 진행할 수 있는 방법 2가지에 대해 알아보았다. 1. CountVectorizer CountVectorizer은 자연어 데이터에서 단어의 빈도수에 따라서 특징을 추출하는 방식이다. 아래와 같은 코드로 쉽게 사용해볼 수 있다. from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer() data = ["자연어처리 공부 하는 중", "오늘 저녁에 약속이 있다", "약속에 나가서 친구와 같이 공부를 하기로 했다"] vectorizer.fit(data) vec..
프로젝트를 진행하면서 지금껏 다뤄보지 않았던 상황을 마주했다. 두 개의 Select 태그와 하나의 Input(text) 태그가 있다. 1. 1번 Selector의 value를 사용하여 ajax function을 이용하여 2번 Selector의 label, value를 동적으로 변경한다. 2번 Selector는 기본적으로 비활성화 되어있고, 1번 Selector의 Option을 선택하면 2번 Selector가 활성화된다. 2. 2번 Selector의 label을 기반으로 Input의 value를 자동으로 채울 수 있도록 한다. 2번은 간단하게 다음과 같은 짧은 코드로 해결할 수 있었다. function setInputTag(value){ $("#InputTag").val($("#secondSelector ..

FastAPI 활용 프로젝트에서 최적 경로를 찾는 알고리즘이 필요하여 TSP 알고리즘을 찾아보고 사용하게 되었다. TSP(Travelling Salesman Problem)는 조합 최적화 문제로 전산학에서 연구된 가장 유명한 문제 중 하나라고 한다. 이 알고리즘을 통해 해결하고자 하는 문제는 다음과 같다. Q. 방문지의 개수와 각 방문지 쌍 간의 거리가 모두 주어질 때, 모든 방문지를 딱 한 번씩 방문하고 시작 위치로 돌아올 수 있는 최단거리경로를 구하시오. 내가 프로젝트에서 마주한 문제와 동일해서 해당 알고리즘의 코드를 찾아보았고, 아래 링크에서 가져온 코드는 다음과 같았다. 링크: https://stackoverflow.com/questions/66084154/python-dynamic-program..