2014/05

    n-gram 출현빈도에 기초한 텍스트 데이터 학습 - 1

    이번에는 n-gram 출현빈도에 기초한 텍스트 데이터 학습에 대해 알아 본다. 어떠한 글에서 여러 단어들의 빈도수는 그 단어의 글의 특징을 알 수 있는 좋은 정보이다. 하지만, 문장에서 어떠한 글을 뽑아내는 기준은, 그 전에 설명했던 방법 중 띄워쓰기나 여러가지 방법이 있다. 하지만 여기서는 가장 기초적으로 n개의 글을 하나씩 묶어서 빈도수를 확인해보는 가장 기초적인 방법에 대해서 알아보자. 먼저 데이터를 구하는게 어려울 꺼다. www.gutenberg.org 라는 곳에 접속해서, 아무 ebook 이나 다운받자. #include #define MAX_N 10 void setlastch(int n, char data, char lastdata[]); int main(){ FILE *pfile; char l..

    텍스트 마이닝 - 1

    이 시대의 인터넷은 정보의 바다를 넘어서고 있다. 웹이나, 블로그등의 자료는 무수히 많은 데이터로 사용 될 수 있고, 이런 방대한 데이터들이 지속적으로 축적되면서, 그 데이터들을 분석할려는 텍스트 마이닝 기술이 널리 사용되고 있다. 학습에 피룡한 데이터 세트가 한국어나, 영어 등의 자연언어로 구술된 텍스트 데이터이다. 일반적인 텍스트들을 데이터로 하여 정보를 추출하여, 분석하여 실질적으로 그 결과를 이용해 필요한 판단을 내리는 것이다. 이러한 텍스트 데이터를 분석하기 위해서는, 자연어 처리 기술이 필요하다.!! 자연어 처리는 인공지능의 한 분야이고, 이러한 자연어로 기술된 문장을 다루는 기술이다. 문장추출 -> 형태소 분석 -> 구문 분석 -> 의미 분석 -> 담화 이해 의 순서로 진행된다. 문장을 분석..

    이진 탐색 ( Binary Search )

    BinarySearch.h #ifndef __BINARYSEARCH_H__#define __BINARYSEARCH_H__ #define FAIL -1 int binarySearch_Recursive(int value[], int start, int end, int data);int binarySearch(int value[], int start, int end, int data); #endif BinarySearch.c #include#include"BinarySearch.h" //Using Recursiveint binarySearch_Recursive(int value[], int start, int end, int data){ int ret=FAIL; int middle; if(start

    순차 검색 (Sequential Search)

    SequentialSearch.h #ifndef __SEQUENTIALSEARCH_H__#define __SEQUENTIALSEARCH_H__ #define TRUE 1#define FALSE 0 int SequentialSearch_NotSorted(int value[], int size, int data);int SequentialSearch_Sorted(int value[], int size, int data); #endif SequentialSearch.c #include#include"SequentialSearch.h" int SequentialSearch_NotSorted(int value[], int size, int data){ int i; for(i=0 ; i

    최소자승법을 이용한 학습 프로그램 - 2

    이 전에 최소자승법을 이용한 예측에 대하여 글을 쓰고,수식을 정리해 보았다. 원하는 그래프 y = a0 + a1x 에서 파라미터를 얻을 수 있는 a0, a1을 구하는 방법 또한증명했었다. 증명한 내용을 토대로 소스코드를 작성하였다. 위에 수식에서 보면 a0와 a1을 구하기 위해 필요한 것이xi, yi, xi*yi, xi^2에 필요함을 알 수 있다. #include #define DATA_SIZE 2000 int main(){ unsigned char data[DATA_SIZE]; double xi=0, yi=0; double sum_xi=0, sum_yi=0, sum_xiyi=0, sum_xi2=0; //xi, yi, xiyi, xi^2 double a0, a1; //y = a0+a1x int count..

    최소자승법을 이용한 학습프로그램 - 1

    최소자승법을 이용한 학습프로그램 - 1

    파라미터 조정에 의한 학습법 중 하나로 최소자승법에 의한 학습이 있다. 최소자승법에 대해서는 검색해 보면 쉽게 확인할 수 있다. 어떠한 데이터를 이용하여 1차 방정식 계수를 구해 데이터 관계를 기계 학습하는 프로그램을 생각해 보자. 최소자승법의 관계에서 구할 1차 방정식을 y = a0x + a1 이라 하면, 구해야 할 파라미터는 a0와 a1이 된다.! 위의 풀이 처럼 계산을 하면 a0와 a1의 파라미터를 구할 수 있다.! 그럼 다음은 이어서 소스코드를 보면서 설명하겠다.!!