KakaoTalk_Photo_2017-07-29-21-02-21_78

LOPES, 제6회 교통데이터 활용공모전 최우수상 수상!

KakaoTalk_Photo_2017-07-29-21-02-21_78

< 왼쪽부터  철학과 13 추선식, 경영학전공10 정동철, 철학과 10 이현성>

KakaoTalk_Photo_2017-07-29-20-57-26_39

KakaoTalk_Photo_2017-07-29-20-57-27_32

KakaoTalk_Photo_2017-07-29-20-57-24_59

KakaoTalk_Photo_2017-07-29-20-57-25_42

all

     감사합니다. 모두 수고하셨습니다!


참고 기사 링크

http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=001&aid=0009323651&sid1=001

참가 공모전 관련 링크

https://bigdata.seoul.go.kr/cntst/selectCntst.do?r_id=P600&cntst_seq=33

KBO 팀간 승패 자료를 github.com 에 올렸습니다.

안녕하세요. 외대 철학과 스터디 그룹 LOPES의 추선식 입니다.

데이터 분석을 공부하면서 느낀 점은 학습에 맞게 구성된 데이터가 적고 이런 형태의 자료를 현실적으로 찾아보기 어렵다는 점입니다. 그래서 대중적으로도 인기가 있는 한국의 프로야구 자료로 데이터 분석을 공부해보기로 했습니다.

자료를 모으기 위해 KBO 홈페이지에 등록된 2010년도부터 2016년도까지의 야구 자료를 모으고 보기 좋게 정리하기 시작했습니다.

저희가 수집하고 가공한 자료는 약 7년 치의 한국 프로야구 데이터가 있습니다. 이 데이터는 점수와 홈 & 원정팀, 시즌정보 등을 구분하여 경기정보를 쉽게 확인해 볼 수 있습니다. 또한 7년치의 데이터로 다양한 기록들을 시각화해볼 수 있습니다. 아래 링크로 가시면 자료를 받으실 수 있습니다.

choosunsick/KBO_data

##응용사례

  1. 경기 결과열을 만들어 줍니다.
kbo_total$경기결과 <- ifelse(kbo_total$홈팀점수>kbo_total$원정팀점수,"홈승",ifelse(kbo_total$홈팀점수<kbo_total$원정팀점수,"원정승","무"))
  1. 정규시즌만 뽑아 줍니다.
normal_season <- subset(kbo_total,kbo_total$비고=="정규시즌")
doosan <- subset(normal_season,normal_season$홈팀=="두산"|normal_season$원정팀=="두산")
  1. 홈팀과 원정팀의 경기 수를 경기결과에 따라 분류합니다.
home <- aggregate(홈팀점수~홈팀+원정팀+경기결과,doosan,length)
doosan_home <- home[home$홈팀=="두산",]
away <- aggregate(원정팀점수~홈팀+원정팀+경기결과,doosan,length)
doosan_away <- away[away$원정팀=="두산",]
  1. 두산이 홈일 때와 원정일 때의 승리만 따로 뽑아줍니다.
doosan_home_win <- doosan_home[doosan_home$경기결과=="홈승",]
doosan_away_win <- doosan_away[doosan_away$경기결과=="원정승",]
  1. 두산의 열이 중복되므로 지워줍니다.
doosan_home_win <- doosan_home_win[,-1]
doosan_away_win <- doosan_away_win[,-2]
  1. 하나의 자료로 만들어 줍니다.
colnames(doosan_home_win) <- c("상대팀","경기결과","승리횟수")
colnames(doosan_away_win) <- c("상대팀","경기결과","승리횟수")
doosan_win <- rbind(doosan_home_win,doosan_away_win)
  1. 이제 두산의 상대전적(승리)그래프를 그려봅시다.
install.packages("ggplot2")
library(ggplot2)
p <- ggplot(doosan_win,aes(x=상대팀,y=승리횟수,fill= 경기결과))+
geom_bar(stat="identity",colour = "black")+
scale_x_discrete(limits=c("한화","KIA", "SK", "LG", "넥센", "삼성", "롯데", "NC","kt" ))+
theme(axis.text.x= element_text(angle=90, hjust=1))
p+labs(title="두산상대전적그래프")

ps. R에서 플롯을 그렸을 때 한글이 깨질 수 있습니다.

R에서 Gephi 없이 igraph을 이용하여 군집화 하기

안녕하세요. 외대 철학과 스터디그룹 LOPES의 추선식입니다. 이번에는 오직 R만을 이용하여 와인데이터를 분석하고 군집화 해보겠습니다. 앞서 같은 스터디 그룹인 배서연 학우가 쓴 “와인 구매 데이터를 R로 분석하여 Gephi로 군집화, 시각화 하기“에서 Gephi를 이용해서 군집화 했었습니다. 그렇지만 저는 이 글에서 Gephi 없이 R을 이용해서 와인데이터를 군집화하고 그 결과를 서로 비교해보겠습니다.

준비 작업: 『DATA SMART』의 예제 와인데이터 이용하기

원본 와인데이터는 아래 링크로 가서 chapter2를 클릭하여 자료를 다운받으시고, WineKMC 파일 안의 Matrix시트를 R에서 지정한 디렉토리 폴더에 csv형식으로 내보내 사용하시거나 혹은 chapter10를 클릭하여 자료를 다운 받은 다음 그 안의 WineKMC.csv 파일을 사용하시면 됩니다.
Wiley: Data Smart: Using Data Science to Transform Information into Insight – John W. Foreman

R로 와인데이터 분석: (코사인 유사도 행렬 구하기 및 Cut-off 하기)

와인데이터의 군집화를 위해 먼저 해야 할 작업은 코사인 유사도 행렬을 만드는 것입니다. 코사인유사도는 각 구매자 간 구매데이터의 유사성에 비중을 둔 거리 계산법으로 이 예제에서는 와인 데이터의 구매 유사성을 토대로 구매자들 간의 거리를 측정할 수 있습니다. 코사인 유사도는 0과 1 사이의 값을 가지는데 코사인 유사도로 나타난 구매자들 간의 거리는 구매 데이터의 유사성 정도에 따라서 유사성이 강하면 그값이 1에 가까우며 유사성이 약할수록 0에 가까워지게 됩니다. 즉 이것으로 구매 데이터를 사람과 사람 간의 관계로 바꾸어 이후 군집화의 초석을 쌓는 것입니다.

다음 작업으로는 컷오프를 하는 것입니다. 이것을 하는 이유로는 와인 구매 데이터의 유사성을 통해 고객들 간의 모든 관계를 파악할 수 있지만, 그 관계가 너무 많아 데이터가 복잡하기 때문입니다. 따라서 중요하지 않은 관계는 지우고 강한 관계가 있는 데이터만 남기는 과정이 바로 컷오프입니다. 여기서 중요한 관계만 남기는 방법으로는 앞선 글애서와 똑같이 유사성이 강한 상위 20%만 남기는 것 입니다.

군집화하기: Igraph 패키지를 이용해서 군집화하기

군집화를 위해서는 Igraph 패키지가 필요합니다. 이 패키지가 기존의 Gephi의 기능인 네트워크 그래프를 다루는 일을 수행하기 때문입니다. Igraph 패키지는 컷오프 한 와인데이터 구매자들 간의 관계를 보고 군집화해주는 역할을 합니다. 이것을 이용해 R로 시각화를 해볼 순 있지만, 아직 모듈성 최적화가 되지 않은 상태이기에 군집 간 구분이 힘들기에 모듈성 최적화의 과정을 필요로 합니다.

따라서 Igraph로 군집화 된 것의 모듈성 최적화를 위해walktrap.community 나 multilevel.community 함수를 사용해야 합니다. 각 함수를 사용해서 군집의 최적화 즉 모듈성을 최적화하게 되면 모듈성은 walktrap.community 방식이 더 극대화되지만 두 방식의 모듈성 값 차이는 미세합니다. 두 가지 방식에 대한 더 자세한 설명을 알고 싶다면 이 두 기능이 내포된 Igraph 패키지와 각 함수에 대하여 Inside-r 링크에서 직접 찾아보실 수 있습니다.

R 코드 내용: 다음은 전체과정에 대한 R 코드입니다.

R 코드 설명

먼저 코사인 유사도를 구하는 데 필요한 패키지인 lsa를 다운 받습니다. 그 후 군집화에 사용할 패키지인 Igraph패키지를 다운 받습니다. 이제 와인 데이터를 읽어오고 코사인 유사도 그래프를 만들기 위한 작업(행,렬 변환 과 NA값 변환)을 합니다. 기본 작업이 완료되면 cosine 함수를 이용하여 코사인 유사도를 만들고 for 구문으로 대각선의 값을 0으로 바꿔 줍니다. 코사인 유사도 그래프가 완성되었으면 그것에 대한 컷오프 과정을 진행합니다. 컷오프 과정은 앞서 배서연 학우가 올린 글에서 설명되었기에 넘어가겠습니다.

이제 Igraph 패키지를 사용하게 되는데 가장 처음 할 일은 인접성 행렬 그래프를 만드는 것입니다. 인접성 행렬 그래프는 네트워크 데이터를 나타내는 그래프 중 하나로서 인접성 행렬을 통해 네트워크 데이터가 드러내는 관계를 보여주는 그래프입니다. 간단히 말해서 네트워크 데이터를 노드와 에지로 표현한 그래프라 할 수 있습니다.

코드에서 graph.adjacency 함수가 인접 행렬 그래프를 만들어 줍니다. graph.adjacency 함수는 방향성과 가중치에 따라서 인접 행렬을 다양하게 해석할 수 있기에 여기서는 가중치는 주지 않고 무방향성(undirected)을 설정해 줍니다.
다음으로 Igraph의 walktrap.community 함수를 사용합니다. 이 함수는 무작위 걸음(random walk)을 통해 그 걸음 길이가 짧을수록 같은 군집으로 묶는 역할을 합니다. 따라서 각 사람 간의 군집이 형성되는데 이것을 membership 함수를 통해 확인할 수 있습니다. 이어서 이 군집화 결과를 as.integer 함수를 통해 정수형 벡터로 바꾸어 줍니다.
남은 과정은 이제 기존의 정보들을 덧붙이는 과정입니다. 이것은 기존 와인에 대한 정보를 붙이고 하나의 데이터 벡터로 바꾸는 과정입니다. 이 과정을 진행하고 나면 최종 결과인 각 군집별 구매한 와인의 특성을 파악할 수 있습니다.

결과 비교해보기: Gephi 와 두 가지 방식(walktrap,multilevel)의 함수 결과 비교

비교하는 것에 앞서 결과를 추측해보자면 같은 군집화 알고리즘을 사용한다면 군집화의 결과가 같을 것이고 그렇지 않으면 차이가 있을 것이라 생각되어집니다.

군집화의 결과를 R로 비교해 보기 위해서는 19번째 코드까지 진행하고 그 이후 20번째 코드부터 다르게 진행합니다. 우선 walktrap.community 함수부터 사용해서 사람과 할당 군집목록을 만듭니다. 다음의 코드를 이용합니다.

winedata.wtc <- walktrap.community(winedata.graph)
membership(winedata.wtc)
walktrap.membership <- print(membership(winedata.wtc))
walktrap.community <- data.frame(walktrap.membership)

위 코드로 walktrap 함수의 구매자 별 군집 목록을 만듭니다. 같은 방식으로 multilevel.community 함수를 적용해 구매자 별 군집 목록을 완성합니다. 다음으로는 맨 위 링크에서 Gephi 로 작업한 파일을 Gephi 내부에서 csv 파일 형식으로 내보냅니다. Gephi에서 파일을 내보내는 방법은 gephi의 Data laboratory 섹션에서 Export table을 클릭하여 내보낼 수 있습니다. csv 형식으로 내보낸 파일을 R에서 읽어옵니다. R에서 csv 파일을 읽는 방법은 read.csv 함수를 사용하면 됩니다. 다음과 같이 gephi <- read.csv("CommunitiesGephi.csv") 사용합니다. R에서 불러온 다음엔 Gephi의 군집데이터를 이름을 토대로 다시 정렬해줍니다. 다음의 코드로 정렬할 수 있습니다.

library(plyr)
arrange(gephi,label)
gephi.community <- arrange(gephi,label)

이제 3개 방식의 군집 목록을 R에서 한 번에 비교해보도록 하겠습니다. 3개 방식을 한 번에 보는 방법은 cbind()함수를 사용하여 하나의 목록으로 합칠 수 있습니다.

walktrap.class <- walktrap.community$walktrap.membership
comparison.class <- cbind(gephi.community,walktrap.class)
multilevel.class <- multilevel.community$multilevel.membership
comparison.class <- cbind(comparison.class,multilevel.class)

위의 코드를 통해 하나의 목록으로 만들었다면 arrange() 함수를 통해서 방식별 정렬을 하여 비교할 수 있습니다. 예를 들면 arrange(comparison.class,modularity_class) 와 같이 Gephi의 군집을 기준으로 다른 방식과 비교한 것을 볼 수 있습니다.

3가지 방식의 군집화를 비교해본 결과 처음에는 모듈성이 거의 유사하기에 Gephi와 Igraph의 방식들의 군집화 결과가 서로 같을 것으로 생각했지만, 정렬을 통해 비교해본 결과 분명히 다르게 군집화가 이루어졌음을 확인할 수 있었습니다. 같은 자료, 같은 모듈성이지만 군집화 방식 도구에 따라 군집의 결과가 다르게 나누어진다는 사실에 놀랐습니다. 읽어주셔서 감사합니다

R로 나이브 베이즈 규칙을 사용하여 트위터 분류 모델 만들기

안녕하세요~ LOPES의 배서연 입니다. 저번에 올린 글이 반응이 나쁘지 않아 용기 내어 올려 봅니다. LOPES 스터디 그룹에서도 각자 R을 이용하여 정리한 내용을 공유 차원에서 올릴 예정입니다. 어설프더라도 예쁘게 봐 주세요~^^

이번에는 『DATA SMART』 3장에 나오는 나이브 베이즈(Naive Bayes)를 이용한 트윗 분류하기를 R로 구현해봤습니다. 저희 팀에서는 R로 구현하는 방법을 독자적으로 해결하고자 하다가 다음과 같은 곳을 발견하여 R로 쉽게 구현할 수 있었습니다. 나중에 나오는 설명과 코드 또한 아래 링크에서 많은 부분 빚졌음을 밝혀둡니다. 그리고 두 번째 링크는 동일한 내용을 다르게 해결하는 곳이 있어 추가합니다.

Tweet Bayes Classification: Excel and R : Salem Marafi

Data Smart, Ch3, Classifying Tweets using Naive Bayes – Working Analytics

R로 풀어볼 나이브 베이즈(Naïve Bayes) 모델은 소위 ‘지도 학습법(supervised learning)’에 속합니다. 주로 스팸 메일을 구분할 때 사용합니다. 스팸 메일에서 자주 등장하는 단어들의 확률 값을 통해 다른 메일이 스팸 메일인지 아닌지를 판단할 수 있는 방법입니다.

『DATA SMART』 3장에서는 나이브 베이즈(Naïve Bayes) 모델을 이용해 트위터에서 맨드릴(Mandrill)이라는 단어가 언급되는 경우, 새로 출시한 앱(app)인 맨드릴Mandrill에 대한 트윗인지 아니면 관련없는 것들을 언급하는 것인지 설명하고 있습니다. 진행 과정은 다음과 같습니다.

새로 출시한 ‘맨드릴(Mandrill)’이라는 서비스를 이야기하는 트윗은 (App)이라고 표기하고 다른 것들은 이야기하는 트윗은 (Other)으로 표기하겠습니다. ‘맨드릴(Mandrill)’이라는 단어를 언급하는 트윗을 조사했더니, 예를 들어 그 트윗에는 단어1, 단어2, 단어3 등등으로 구성되었다고 생각해 봅시다. 이때 맨드릴 서비스를 이야기하고 있는 150개의 트윗들을 가지고 있는 문장 안의 단어들을 다 조사할 수 있습니다. 이때 각각의 맨드릴 서비스를 이야기하고 있는 각각의 트윗이 단어1, 단어2, 단어3 등등을 가지고 있는 확률과 다른 것을 이야기하고 있는 트윗이 단어 2, 단어 4, 단어 6 등등을 가질 확률은 다음과 같습니다.

P(App | 단어 1, 단어 3, 단어 5, …)

P(Other | 단어 2, 단어 4, 단어 6, …)

이 확률 조건표를 가지고 후에 테스트할 트윗이 앱에 대해 이야기하는 것인지 아니면 다른 것을 이야기하고 있는지 확인할 수 있습니다. 테스트 할 트윗 단어들이 앱에 관련될 확률과 아니면 다른 것에 관련될 확률을 비교해 가장 확률이 높은 클래스로 분류시키는 것이 바로 최대 후험 규칙(MAP rule, Maxium A Posteriori rule)입니다. 이렇게 만들기 위해서는 베이즈 규칙을 적용하되 바보같이 각 단어들이 문맥과 상관없이 독립적인 사건이라고 가정하여 확률을 구합니다. 이를 나이브 베이즈 규칙이라고 합니다. 예를 들어 감기와 콧물이 문맥 상 전혀 관계없는 단어가 아니더라도 일단 둘 다 독립적인 사건으로 가정하면 다음과 같이 규칙을 쓸 수 있습니다.

P(스팸메일|감기, 콧물 ) = P(감기|스팸메일) * P(콧물|스팸메일)

이를 활용하여 새로 테스트할 트윗의 각 단어들(단어1′, 단어2′, 단어3’…)이 앱에 관련된 것인지 아닌 지에 대해 비교할 확률은 다음과 같이 구할 수 있습니다. 이 두 개의 값 중 더 큰 값에 따라 클래스를 분류할 수 있습니다.

P(App | 단어1′ , 단어2′, 단어3′ …)
= P(App) * (단어1’|App) * P(단어2’|App) * P(단어3’|App)…

P(Other |단어1′ , 단어2′, 단어3′ …)
=P(Other) * 단어1’|Other) * P(단어2’|Other) * P(단어3’|Other)…

재밌게도 나이브 베이즈 모델은 대충 부정확한 가정을 세워도 후에 어느 것이 더 큰 확률이냐를 비교하기 때문에 이상하지만 비교적 정확한 모델이라고 평가 받고 있습니다. 그럼 앞의 과정에 따라 R 로 예제 트윗을 분류해봅시다.

1) 첫 번째 단계: 데이터를 가져와 깨끗하게 정리하기

『DATA SMART』 3장에서는 엑셀로 작업하고 있지만, 우리는 R에서 작업을 하기 때문에 엑셀 파일에 들어 있는 자료를 CSV 형식 파일로 바꿔서 가져오겠습니다. 이 자료는 맨드릴(Mandrill) 앱(App)에 관련된 트윗과 관련되지 않은(Other) 트윗, 각각 150개로 되어 있습니다. 사용환경에 따라 아래 링크에서 다운 받으시면 됩니다. Mandrill.csv, Other.csv, Test.csv 이렇게 파일 3개가 있을겁니다.
윈도우 사용자분들은 아래 링크에서 다운 받을 수 있습니다.

https://www.dropbox.com/sh/1k3df26mbwwbtcn/AACnrKwvjg6GGtriRAWXWZ-6a?dl=0

맥 사용자분들은 아래 링크에서 다운 받을 수 있습니다.

https://drive.google.com/file/d/0B7Ov50qkZFF5NnJHNzZLalYtcVU/view

혹여 파일에 깨져서 실행이 안되는 분들은 책 홈페이지인 Wiley: Data Smart: Using Data Science to Transform Information into Insight – John W. Foreman에서 Chapter 3 파일을 다운 받으시면 됩니다. 아니면 아래 여기, ch03.zip을 눌러서 다운 받으시면 됩니다. 받으신 파일을 압축을 푼 다음 엑셀에서 열어서 csv 파일로 바꿔주세요. 위의 파일을 다운 받으시면 그 안에 AboutMandrillApp / AboutOther / AppTokens 시트에 A열 만 떼내 각각 Mandrill.csv / Other.csv / Test.csv 파일로 저장한 뒤 진행하면 됩니다 ^^

2) 가져온 파일을 컴퓨터가 이해할 수 있도록 처리하기

가져온 파일은 단순하게 각각 150열로 되어 있는, 즉 각각 150개 트윗으로 되어 있는 자료입니다. 앞에서도 이야기했지만, 우리는 각각의 트윗이 가지고 있는 단어를 가지고 분석할 예정입니다. 따라서 우리가 가지고 있는 모든 트윗에서 단어를 다 분리해야 합니다. 『DATA SMART』에서는 엑셀을 이용하여 조금은 복잡하게 단어로 분리하고 있습니다. 그러나 R에서는 ‘tm’이라는 패키지를 이용해서 엑셀에서 하는 것보다는 쉽게 분리할 수 있습니다. 우선 단어로 쪼개기 전에 트윗이 가지고 있는 모든 단어를 소문자로 바꾸고 문장 부호를 빈칸으로 교체합니다. 아래 코드에서는 replacePunctuation()이라는 함수를 만들어서 대문자를 소문자로 만들고, 문장 부호, “.”, “: ”, “?”, “!”, “;”, “,”을 모두 빈칸으로 바꿉니다. 이 함수 안에서는 tolower()는 대문자를 소문자로, gsub()는 문장 부호를 빈칸으로 바꿔주는 역할을 합니다. 이렇게 하는 이유는 ~ 그 다음 빈칸을 기준으로 단어들을 분류 시켜 하나의 matrix로 만들어줍니다.

토큰화 된 단어의 길이를 구해 의미 없는 단어들은 Cut-off 하기

컷 오프하는 방식은 데이터를 다룰 때 언제나 중요하게 다뤄지는 것 같습니다 ^^. 여기서는 글자 수 3개 이하의 토큰들을 다 컷오프시킵니다. 단순하게 말하자면 영어 단어 중 3글자 아래는 모두 지웁니다. 영어 단어 중 3글자보다 작은 단어는 통상적으로 의미가 없는 단어이기 때문입니다. 보통 이런 작업에서는 몇 개 이하의 짧은 단어를 제거하는 대신 because, instead와 같이 멈춤 단어(stop words)라고 불리는 단어들을 컷오프 하기도 합니다.

3) 나이브 베이즈 모델을 이용하여 분류 모델 만들기 – 각 단어의 App/Other에서 조건부 확률 구하기

본격적으로 앱에 관련된 단어들과 아닌 단어들의 빈도를 확률로 계산하기 전에 크게 두 가지 문제를 풀어야 합니다. 첫 번째로 트윗에 거의 나오지 않은 드문 단어들을 처리 해야 하고, 두 번째로 이런 드문 단어들의 아주 작은 확률 값이 컴퓨터가 잘 처리할 수 있도록 처리해야 합니다.

가산 평활

앱에 관련된 트윗과 아닌 트윗에서 나오지 않은 단어가 후에 나왔다면 이 단어는 어느 쪽에 속해야할까요? 이런 단어는 나이브 베이즈 확률값을 계산할 때 전체 확률 값을 0으로 만들기 때문에 일단 이런 드문 단어는 한 번 나온 것으로 가정합니다. 그러면 정말 한 번 나타난 단어들의 확률이 불공정해지기 때문에 모든 단어들의 빈도 수에 1씩 더해줍니다. 이렇게 쭉 1씩 더해주는 방식을 가산 평활법(addictive smoothing)이라고 합니다. (다른 책에서는 라플라스 추정기라고 하기도 하더군요^^)

자연 로그 값으로 변환

예컨대 확률이 0.001인 단어들이 여러 개 있다면 후에 단어들의 확률을 곱해서 클래스를 비교할 때 소숫점 수 백 개 이하의 0이 나오게 됩니다. 이 경우 컴퓨터가 제대로 처리하지 못하기 때문에 언더 플로라고 하는데 이를 해결하기 위해 0과 1 사이의 값에 대해서 자연 로그를 취합니다, 그러면 소수점 몇 백 개 이하의 수가 아니라 비교적 잘 와 닿는 음수가 되게 됩니다. 그 다음 최대 후험 비교를 수행하면 컴퓨터가 무리가 가지 않게 처리할 수 있습니다.

이제 2 가지 문제를 해결했으면 이제 R에서 트윗의 각 단어들이 App에 들어갈 확률과 그 외에 들어갈 확률을 구해줍니다.

4) 앞에서 만든 모델을 가지고 새로운 트윗들이 어디에 속하는지 예측해보기

앞에서 나이브 베이즈 모델을 이용하여 만든 분류 모델은 사실상 두 개의 조건부 확률 표를 만드는 것에 불과합니다. 이제 이 확률표라는 증거들을 가지고 새로운 트윗이 App에 관련된 트윗인지 아닌지 분류해봅시다. 테스트할 20의 트윗은 반은 App에 관련된 트윗이고 반은 상관 없는 트윗으로 이루어져 있습니다. 앞에서 한 토큰화, 가산 평활, 자연 로그 과정을 거친 뒤 이미 만들어 놓은 조건부 확률을 통해 그 단어들이 app에 관련될 확률과 그 외에 관련된 확률을 구해 비교합니다. 비교했을 때 확률 값이 더 큰 쪽으로 클래스를 분류합니다. 이제 정말 이 모델이 정확한 지 확인해 봅시다. 20개 중에 하나 빼고는 다 맞혔네요^^ R로 구현하는 코드는 다음과 같습니다. 윈도우 사용자 분들은 R코드 마지막 줄에 View(cbind(classified,tweets.test$Tweet))으로 하시면 더 멋진 결과를 보실 수 있습니다. 긴 글 읽어주셔서 감사합니다~!

#소피스트

#소피스트

4-1. 데모크리스토가 세상을 떠나기 전에 이미 그와 고향이 같은, 압데라 출신의 젊은 철학자 프로타고라스가 등장하였는데 프로타고라스는 새로운 철학자 계층인 소피스트의 선두주자가 되었다. 소피스트는 원래 여러 도시를 옮겨 다니면서 다양한 주제에 관한 전문적인 지식을 가르치는, 말하자면 순회 교사들이었다. 설령 이들이 가장 넓은 의미에서의 철학을 넘어서 더욱 폭넓고 다양한 영역의 교육을 제공하는 학교기관이나 시설을 세우지는 않았다 할지라도 이들은 지식이나 기술을 가르쳐 주면서 대가를 받았으므로 이들을 최초의 직업적인 철학자라고 불러도 별 무리가 없을 듯하다. 소피스트 중에 가장 다재다능한 인물이엇던 엘리스 출신의 히피아스는 수학, 천문, 음악, 역사, 문학, 신화 등에 모두 능하였을 뿐만 아니라 옷과 신발을 만드는 실용적인 기술까지도 겸비하였다고 전한다. 또 다른 소피스트들은 수학과 역사, 지리 등을 충분히 가르칠 수 있었다. 또한 이들 모두는 뛰어난 수사학자였다. 소피스트들은 기원전 5세기 중반에 주로 아테네에서 활발하게 활동하였는데 당시 아테네에는 법정에서 변론을 펴거나 정치에 진출하기를 바라는 젊은이들이 많았고, 이들은 교육과 지도를 받는 대가로 소피스트에게 상당한 액수의 비용을 기꺼이 지불하였다.

4-2. 소피스트들은 법정에서 이루어지는 토론과 웅변을 통한 설득의 방법을 체계적으로 연구하였으며 이 과정에서 이들은 다양한 주제에 관한 글을 썼다. 이들은 기본 문법으로부터 출발하엿다. 프로타고라스는 명사의 성 및 동사의 시제와 법을 처음으로 구별하였다. 이들은 계속해서 논증의 기법을 열거하고 자기 옹호를 위한 요령을 개발하였다. 애매한 문헌들을 해석하고 상대방의 연설을 평가하면서 이들은 최초의 문학비평가로도 활동하엿다. 또한 이들은 대중을 상대로 한 강의와 공연을 하기도 하고 논쟁을 주고받는 토론회를 개최하기도 하였는데, 이는 한편으로는 교육을 다른 한편으로는 여흥을 위한 것이었다. 종합해 보면 이들은 현대사회의 교사, 상담역, 변호사, 홍보 전문가, 대중매체의 유명인사 등등의 역할을 담당하였다.

4-3. 프로타고라스는 압데라의 대사 자격으로 아테네를 처음 방문하였다. 그는 아테네 시민들로부터 환영받았다고 전해지며 그 후 몇 차례 더 아테네를 방문하였다. 그는 라는 제목의 소논문을 큰 소리로 읽었는데 그 첫머리는 오래토록 기억되어 오늘날까지 전한다. ‘신들에 관하여, 나는 그들이 존재하는지 존재하지 않는지, 또 그들이 어떤 모습으로 보이는지 확신할 수 없다. 왜냐하면 신에 관한 지식에 이른느 길에는 많은 방해물이 놓여 있기 때문이다. 이런 방해물로는 주제 자체가 모호하다는 점 그리고 인간의 삶이 너무 짧다는 점을 들 수 있다’. ‘인간은 만물의 척도’라는 그의 유명한 말은 상대주의적인 인식론을 요약하여 표현하는데 이에 관해서는 후에 상세히 살펴볼 예정이다.

4-4. 프로타고라스는 어떤 질문에 대해서도 어떤 측면에 대해서도 논증을 펼칠 준비를 갖추었던 듯이 보인다. 사실 그는 자신은 항상 나쁜 논증을 더 좋게 만들 수 있다고 호언장담하엿다. 어쩌면 이는 그저 그가 논증 능력이 떨어지는 사람을 잘 가르쳐 소송 등에 대비한 최선의 준비를 갖추어 줄 수 있음을 의미하는지도 모른다. 하지만 아리스토파네스나 아리스토텔레스 같은 비판자들은 이와는 전혀 달리 그가 나쁜 논증을 좋게 보이도록 만들 수 있음을 의미하였다고 해석한다. 프로타고라스를 적대시하는 사람들은 그가 교육의 대가를 지불하지 않은 에우알토스를 고소한 이야기를 즐겨 언급한다. 에우알토스는 프로타고라스의 가르침을 받은 후 재판에 나가 자신이 이기면 대가를 지불하겠다고 약속하였다. 그런데 그는 아직 자신이 단 한번도 재판에서 이기지 못하였다는 이유로 대가의 지불을 거절하였다. 프로타고라스는 대가를 지불하라고 그를 고소하면서 다음과 같이 말한다. ‘내 말을 잘 듣게. 만일 이 소송에서 내가 이기면 자네는 재판의 판결에 따라 나에게 대가를 지불해야만 하네. 만일 자네가 이기더라도 여전히 자네는 나에게 대가를 지불해야 하네. 왜냐하면 자네는 재판에서 이긴 셈이 되기 때문이지’.

4-5. 또 다른 소피스트 포르디코스는 에게 해의 섬 케오스 출신인데 프로타고라스와 마찬가지로 자신이 속한 도시국가의 공적인 임무를 맡아 아테네로 왔다. 그는 언어학자였는데 문법보다는 단어의 의미에 더 큰 관심을 보였다. 아마도 그를 최초의 사전 편찬자로 여길 수 있을 듯하다. 그가 시도한 몇몇 구별은 후에 큰 철학적 중요성을 지니게 되었다.

4-6. 프로디코스는 덕과 악덕을 두 여성으로 의인화한 후 이 둘 중 누구를 선택할지를 놓고 고민하는 젊은 헤라클레스를 다룬 낭만적이고 도덕적인 우화의 저자로 여겨진다. 또한 그는 종교의 근원에 관한 이론도 제시하였다.

4-7. 시칠레아의 레온타니 출신인 고르기아스는 프로타고라스에 뒤이은 대사 출신의 소피스트이다. 그는 설득력 잇는 웅변가엿을 뿐만 아니라 전문적인 수사학자로서 연설에서 사용되는 서로 다른 수사법, 예를 들면 대조법이나 수사를 위한 질문법 등을 분류하기도 하엿다. 그의 문체와 연설법은 그의 생전에는 크게 칭찬받았지만 후에는 지나치게 미사여구를 즐긴다는 평가를 받았다. 그의 저술들 중 철학적 관심을 그는 두 편의 짧은 글이 오늘날까지 전한다.

4-8. 첫 번째 글은 트로이아의 헬레네를 비난하는 사람들에 대항하여 그녀를 옹호하는 수사학적 훈련을 다룬 것인데, 여기서 고르기아스는 헬레네가 파리스와 함께 달아남으로써 트로이아 전쟁의 불씨를 제공하였다는 점을 들어 그녀를 비난해서는 안 된다고 주장한다. ‘그녀는 단지 자신이 행하지 않을 수 없는 바를 행했을 뿐이다. 그녀가 그렇게 한 까닭은 변덕스러운 운명에, 즉 신들의 결정이나 필연적인 섭리에 따랐기 때문이거나 아니면 폭력에 의하여 유괴되었거나, 감언이설에 설득되었거나 또는 사랑에 압도되었기 때문이다.’ ‘말은 실재하거나 지각될 수 있는 대상이 아니기 때문에 무척 부담스러운 존재이다. 하지만 말은 신과 같은 결과를 낳을 수도 있다.’ 마지막으로 만일 헬레네가 사랑에 빠졌다면 비난받아서는 안 된다. 사랑은 우리 인간이 저항할 수 없는 신과 같은 것 또는 우리의 동정심을 자극하는 일종의 정신적 질병이기 때문이다. 이 짧고 재치 있는 언급이 바로 자유와 결정론, 불가항력, 외부의 자극, 억누를 수 없는 충동 등을 둘러싼 다양한 철학적 논의의 출발점을 이룬다.

4-9. 고르기아스의 저술 에는 세 가지 회의적인 결론에 이른느 논증이 등장한다. 이 세가지 결론은 첫째 아무것도 존재하지 않으며, 둘째 무언가가 존재하더라도 그것을 인식할 수 없으며, 셋째 무언가를 인식하더라도 그 내용을 다른 사람에게 전달할 수 없다는 것이다. 여기에 포함된 일련의 논증은 두 경로를 통해서 후세에 전해지는데 이 중 하나는 위 아리스토텔레스 계열의 저술인 이며 다른 하나는 섹스토스이다.

4-10. 첫 번째 논증은 ‘존재한다’는 그리스어 동사가 다양한 형태로 등장한다는 특징을 다소 악용한 듯하다. 여기서 이 논증을 상세히 언급하지는 않겠지만 후에 6장에서 이 논증에는 결정적인 모호함이 포함되어 있음을 보이려 한다. 두 번째의 논증은 다음과 같이 진행된다. 만일 사고의 대상들이 존재하는 것이라면 오직 존재하는 것만이 사고의 대상이 될 수 있다. 하지만 사고의 대상들은 존재하는 것이 아니다. 만일 사고의 대상이 존재한다면 우리가 사고하는 모든 것이 존재해야만 한다. 세 논증 중 가장 그럴듯한 세 번째 논증은 개인들 각각의 감각이 자신만이 갖는 사적인 것인데, 우리가 상대방에게 전달할 수 있는 바는 경험이 아니라 단지 말에 불과하다는 점을 지적한다.

4-11. 이 유명한 소피스트가 자신의 궁색한 결론을 이끌어 내기 위하여 도입한 논증들은 사실 궤변에 가까우며, 이를 처음 접한 사람들이 받아들이지 않으리라는 점은 의심의 여지가 없다. 궤변의 본질이 무엇인가를 진단하기보다 이를 바로 거부하는 일이 손쉬울지 모르지만, 궤변에서 벗어나는 해결책을 발견하기란 여전히 무척 어렵다. 첫 번째 궤변은 플라톤이 적절하게도 라고 이름 붙인 대화편에서 본질적으로 해소된다. 두 변째 궤변은 가끔 플라톤에서도 발견되는 논증적 오류를 포함한다. 하지만 아리스토텔레스의 논리학은 ‘모든 A가 B는 아니다’가 ‘어떤 B도 A가 아니다’를 함축하지 않는다는 점을 이후의 학자들에게 명확히 제시하였다. 세 번째 논증에서 등장한느 경험의 개인성 문제는 20세기에 이르러 비트겐슈타인의 저술이 등장한 후에야 비로소 결정적으로 해명되었다.

4-12. 프로타고라스와 히피아스, 프로디코스, 고르기아스 외에도 이름과 명성이 오늘날 우리에게까지 전해지는 또 다른 소피스트들이 있다. 힘이 곧 옳음이라는 주장의 강력한 옹호자인 칼리클레스, 정의란 권력을 쥔 자들의 자기이익이라고 폭로하였던 트라시마코스 등을 예로 들 수 있다. 또한 상대방에게 당신의 아버지는 개라는 점을 증명해 보이려했던 한 쌍의 궤변가 에우티데모스와 디오니시도로스도 있다. 하지만 이들을 비롯하여 앞에서 살펴보앗던 더욱 유명한 소피스트들 모두가 주로 플라톤의 대화편에서 대화를 나누는 등장인물로 우리에게 알려진다.

4-13. 어쨌든 이제 소피스트들에게 작별을 고하고 소크라테스를 살펴보려 한다. 소크라테스는 어떤 견해에 따르면 가장 위대한 소피스트이기도 하고, 다른 견해에 따르면 어떤 종류의 궤변도 단호히 거부하고 그 반대편에 섬으로써 참된 철학자의 전형을 제시한 인물이기도 하다.

#원자론자들

#원자론자들

3-1. 소크라테스 이전 시대의 마지막을 장식하면서 가장 두드러지게 현대 과학을 예견하게 한 인물로 밀레토스 출신의 레우키포스와 압데라 출신의 데모크리토스를 들 수 있다. 이들의 이름은 마치 무척 닮은 두 사람을 지칭하는 듯이 항상 함께 언급되므로 둘이 함께 원자론을 처음 제시하였다고 생각하기 쉽지만, 사실 레우키포스에 대해서는 데모크리토스의 스승이었다는 점을 제외하면 거의 알려진 바가 없다. 현재 우리가 원자론에 대하여 아는 지식은 거의 모두 데모크리토스가 남긴 저술에 의존한다.

3-2. 데모크리토스는 초기의 중요 철학자들 중 그리스 본토에서 태어난 최초의 인물이다.

3-3. 데모크리토스의 기본 입장은 물체를 무한히 나눌 수 없다는 것이다. 이런 결론에 이른 논증 과정을 현재 정확히 알 수는 없지만 아리스토텔레스는 아마 다음과 같이 진행되었으리라고 추측한다. 어떤 종류의 물체라도 한 조각 잘라내어 다시 그것을 현재 정확히 알 수는 없지만 아리스토텔레스는 아마 다음과 같이 진행되었으리라고 추측한다. 어떤 종류의 물체라도 한 조각을 잘라 내어 다시 그것을 가능한 한 작게 잘라 나누어 보자. 그것이 더 이상 나눌 수 없는 작은 조각이 되면 이 일을 멈출 수밖에 없다. 물체를 무한히 나눌 수 있다고 가정해서는 안 된다. 만일 그럴 수 있다고 가정하려면 이렇게 끝까지 나눈 후에 그 다음에는 무슨 일이 일어나겠는가를 한번 생각해 보자. 만일 무한한 수의 부분들 각각이 어떤 크기도 지닌다면 부분들은 다시 나뉠 수 있어야만 하는데, 이는 이미 끝까지 나누었다는 가정과 모순을 일으킨다. 반면에 만일 각각의 부분들이 어떤 크기도 지니지 않는다면 이들을 아무리 더한다 할지라도 어떤 분량에도 도달할 수 없다. 영은 무한히 더하더라도 여전히 영이기 때문이다. 따라서 우리는 물체를 이렇게 나누는 일에는 어떤 한계가 있으며, 가능한 한 작게 나뉜 부분들도 반드시 크기와 형태를 지님에 틀림없다고 결론지어야 한다. 데모크리토스는 더 이상 나눌 수 없는 이 작은 물체를 바로 ‘원자’라고 불렀다.

3-4. 데모크리토스는 원자들은 너무 작아서 감각을 통해서는 인식되지 않는다고 생각하였다. 하지만 원자들의 수는 무한하며, 무한하게 다양한 모습으로 등장할 수 있지만 원자들 자체는 영원히 존재한다. 엘레아학파와는 달리 데모크리토스는 진공을 허용하더라도 아무 모순이 발생하지 않는다고 주장한다. 진공은 존재하며, 이 무한한 텅 빈 공간에서 원자들은 마치 어두운 방에 빛줄기가 비칠 때 보이는 먼지처럼 끊임없이 운동한다. 원자들은 서로 다른 형태를 보인다. 원자들은 형태가 서로 다를 수도 있고, 결합의 순서가 또는 위치가 다를 수도 있다. 원자들은 끊임없이 운동하면서 결합하기도 한다.

3-5. 아낙사고라스와 마찬가지로 데모크리토스도 다수의 세계가 존재한다고 생각한다.
‘서로 크기가 다른 무수히 많은 세계들이 존재한다.’
데모크리토스는 오직 원자와 빈 공간, 둘만이 실재한다고 생각한다. 우리가 물이나 불, 식물이나 인간으로 인식하는 대상들 모두는 빈 공간에서 서로 결합된 원자에 지나지 않는다. 우리가 감각을 통해서 파악하는 성질들은 실재하지 않으며, 이들은 단지 관습의 결과일 뿐이다.

3-6. 데모크리토스는 우리가 지각하는 성질들이 어떻게 서로 다른 종류의 원자와 그 배열로부터 생겨나는지를 상세히 설명한다. 예를 들면 매운 맛은 작고, 날카롭고, 모나고, 표면에 굴곡이 있는 원자들로부터, 단 맛은 크고, 둥글고, 부드러운 원자들로부터 생긴다. 우리가 감각을 통해서 얻는 지식은 원자론에 의해서 밝혀지는 지식에 비하면 단지 어둠에 지나지 않는다. 자신의 여러 주장을 정당화하기 위하여 데모크리토스는 체계적인 인식론을 발전시켰다.

3-7. 데모크리토스는 자연학뿐만 아니라 윤리학에 대해서도 많은 글을 썼다. 많은 내용이 격언의 형태로 오늘날까지 전하는데 이 중 몇몇은 일상에서 자주 인용되기도 한다. 아래의 8장에서 살펴보겠지만, 그가 남긴 언급들을 주의 깊게 검토해 보면 그가 체계적인 도덕 이론을 전개한 최초의 사상가 중 한 사람임을 확인할 수 있다.

#아낙사고라스

#아낙사고라스

2-1. 엠페도클레스가 다윈의 선구자로서 그 이름을 오늘날까지 전한다면 그와 같은 시대 인물은 아낙사고라스는 자주 최근에 유행하는 우주 대폭발 이론의 지적인 선구자로 간주되기도 한다.

2-2. 우주의 기원에 관한 그의 설명은 다음과 같다. ‘모든 것은 함께 있었고, 수적으로 무한히 많은 동시에 무한히 작았다. 왜냐하면 작다는 것은 또한 한정이 없기 때문이다. 모든 것이 함께 있었으므로 그들 중 어떤 것도 작음으로 인하여 분명하게 구별되지 않았다. 모든 것은 무한한 공기와 에테르의 아래에 놓여 그들의 지배를 받았다. 이런 원시 상태의 무한정한 것들이 그들을 둘러싼 에테르와 공기에서 벗어나 회전하기 시작하는데 이로부터 별들과 해, 달이 형성된다. 이 회전을 통하여 희박한 것으로부터 농후한 것이, 차가운 것으로부터 뜨거운 것이, 젖은 것으로부터 마른 것이, 어두운 것으로부터 밝은 것이 떨어져 나온다.

2-3. 아낙사고라스는 우주의 팽창이 지금까지 계속되어 왔으며 미래에도 계속되리라고 주장한다. 어쩌면 우주는 우리가 사는 세계와 다른 어떤 세계를 이미 만들어 내었는지도 모른다. 이러한 다른 세계에 관하여 아낙사고라스는 다음과 같이 말한다.
‘사람들만이 아니라 혼이 부여된 다른 동물들도 형성되었다. 이런 일이 오직 우리들에게만 일어나는 것이 아니라 다른 어디에서도 얼마든지 일어날 수 있기 때문에 나는 이들이 모두 분리의 과정이라고 말하였다.’
그렇다면 아낙사고라스는 한참 후에 브루노가 내세웠으며, 오늘날 상당히 많은 학자들 사이에서 유행하는 주장, 즉 우리가 사는 우주는 단지 수많은 우주들 중 하나에 불과하며 우리의 우주와 마찬가지로 다른 우주들에도 얼마든지 지적인 존재들이 살지도 모른다는 주장을 최초로 제시한 인물이라 할 수 있다.

2-4. 아낙사고라스에 따르면 우주의 전개를 이끄는 운동은 지성의 작용이다. ‘모든 것이 함께 있었는데, 지성이 등장하여 여기에 질서를 부여하였다’. 지성이 물체를 확고하게 지배한다는 이런 주장은 당시 사람들에게 매우 충격적으로 받아들여졌으며, 이 때문에 그들은 아낙사고라스를 지성이라는 별명으로 부르기도 하였다.

2-5. 플라톤의 대화편 에서 소크라테스는 죽기 전 마지막 날 감옥에서 초기 철학자들에게서 발견되는, 자연과학의 영역에 적용되는 기계론적 설명에 대하여 자신이 점차 환멸감을 느끼게 되었음을 고백한다. 그는 아낙사고라스가 모든 것을 지성 또는 정신을 통해서 설명하였다는 이야기를 듣고 무척 만족스러웠다고 말한다. 하지만 아낙사고라스의 저술에 가치에 관한 언급이 전혀 등장하지 않는 점을 알고 실망하였음을 밝힌다. 즉 아낙사고라스는 소크라테스의 모든 행위가 오직 행위가 오직 지성에 따라 수행되었을 뿐이라고 말한다. 여기서 소크라테스는 목적론적 설명이 기계론적 설명보다 훨씬 중요하다고 생각한다. ‘만일 누군가가 왜 각각의 것이 생겨나고, 사라지고 또 계속 유지되는지 그 이유를 알고 싶어 한다면 그가 발견해야만 하는 바는 바로 다음과 같은 것이네. 즉 그것이 어떻게 존재해야 최선인지 도는 어떻게 다른 것들에 작용하고 또 작용을 받아야 최선인지를 밝혀야만 하네’.

2-6. 망명지 람프사코스에서 아낙사고라스는 처음으로 학교에 방학을 도입함으로써 마지막까지 인류에게 큰 기여를 하엿다. 도시의 관리들이 그의 명예를 기리기 위하여 무엇을 했으면 좋겠는가라고 묻자 그는 자신이 죽는 그 달에는 어린이들이 학교에 오지 않고 놀도록 매년 허락하라고 답하였다. 그는 쉬운 설명을 위하여 저술에 도표를 포함시킨 최초의 인물로서 이미 많은 과학도들이 그에게 깊이 감사하고 있다.

소크라테스-소크라테스 자신의 철학(p. 78~96)

기원전 404년, 고대 그리스의 문명국가였던 아테네는 스파르타에게 항복하고 만다. (펠로폰네소스 전쟁) 아테네와 스파르타는 너무도 달랐는데 스파르타는 엄격한 군국주의를 바탕으로 금욕과 절제를 강조한 반면 아테네는 다수결의 원리를 따르는 민주주의 정치를 펼치고 있었다. 한때 그리스의 절대적인 지배권을 행사하던 아테네였지만 다수결의 폐단으로 인해 갈수록 불안정해져 갔다. 일례로 다수결로 죄의 유무를 가리던 아테네 법정은 법률에 대한 지식 없이 오직 화려한 말솜씨가 죄의 유무를 결정하는 중우정치 그 자체였다. 이 모습을 본 아테네의 일부 엘리트들은 스파르타의 체계적인 교육과 규율 등의 필요성을 느꼈고, 그 엘리트 중심에는 소크라테스가 있었다. 소크라테스는 아테네의 천민적 민주주의를 비난했고 스파르타 체제에 대한 필요성을 내비쳤다.

전쟁이 끝난 404년 스파르타는 아테네의 정치체제를 민주주의에서 이른바 ‘30인 참주’에 의한 과두정치(소수의 사람이나 집단이 사회의 정치적·경제적 권력을 독점하고 행사하는 정치 체제)로 바꾸었는데 민주주의를 회복하려는 과정에서 소크라테스는 어떤 역할도 담당하지 않고 어떤 반응을 보이지도 않았다. 이에 민주주의 정치가 아니토스는 ‘소크라테스는 국가가 인정하는 신들을 부인하고 다른 새로운 신들을 도입함으로써 범죄를 저질렀다. 또 그는 젊은이들을 타락시키는 범죄도 저질렀다. 이에 대한 처벌로 사형을 요구한다.’며 소크라테스를 고발하였고 결국 소크라테스는 사형 당한다.

이 과정에서 소크라테스의 제자였던 크세노폰과 플라톤은 비록 실패했지만 소크라테스를 변호하는 글을 썼다. 우리는 이 변론을 통해서 소크라테스를 추측할 수 밖에 없는데 그 이유는 소크라테스의 생애와 사상을 확실히 알려주는 문헌이 거의 없기 때문이다. 그러나 문제는 크세노폰과 플라톤에서 쓰인 소크라테스에 대한 묘사가 다르다는 점이다.

 

  1. 크세노폰이 묘사한 소크라테스

크세노폰은 군인 출신의 역사가로 소크라테스가 고발당한 후 변론을 저술로 남겼고 소크라테스 회상록과 소크라테스가 등장하는 대화편<향연>을 추가적으로 저술하였다. 크세노폰은 소크라테스를 다음과 같이 설명한다.

경건한 인물로 종교적인 의식에 충실히 따랐으며 신탁을 존중하였다. 탐욕이나 야심없이 예의 바르고 온화한, 욕망을 절제할 줄 알고 어려움을 잘 참는 사람이었다. 그는 교사가 아니었지만 말뿐만 아니라 실행을 통해서 덕을 가르쳤으며, 꾸지람뿐만이 아니라 짓궂게 놀리고 우회적인 비유를 들면서 악덕을 말렸다. 그가 이렇게 모범을 보였지만 몇몇 제자들은 잘못된 길로 빠지기도 하였는데 이를 근거로 그를 비난해서는 안된다. 비록 아테네 민주주의의 어떤 측면에 대해서는 비판적이었지만 그는 사람들의 좋은 친구였으며, 어떤 범죄나 국가에 대한 반역을 전혀 저지르지 않았다.

 

이처럼 크세노폰은 소크라테스를 융통성 없지만 예리한 통찰력을 갖추고 현실적인 윤리적 문제들에 대하여 조언을 하는 인물로 묘사했다.

  1. 플라톤이 묘사한 소크라테스

반면 플라톤이 저술한 <소크라테스의 변론>과 그 외의 대화편에서 쓰인 소크라테스는 어떤 일관된 역할이나 특성을 보이지 않는다. 몇몇 대화편에서 그는 문답법(산파술)을 활용하여 스스로 모순을 발견하도록 유도하기도 하며, 또 청중들 앞에서 열변을 토하며 다소 독단적인 형태의 윤리적, 형이상학적 체계를 제시한다. 또 다른 대화편에서는 중요하지 않은 역할을 맡아 철학적 논의의 주도권을 넘기고 떠나기도 한다. 이에 학자들은 대화편이 쓰인 시기를 구별하여 소크라테스에 대한 설명을 구분하고자 했다. 플라톤의 대화편을 초기, 중기, 후기로 나누어 각각에 드러나는 소크라테스의 모습을 분류해 볼 수 있다.

먼저 초기의 대화편은 <크리톤>, <카르미데스>, <라케스> 등으로 여기서 소크라테스의 철학적 견해를 잘 반영한다고 여겨진다. 초기의 대화편에서 소크라테스는 질문을 던지는 탐구자로 등장하며 이 때에는 중기, 후기와 달리 이데아론이 제시되지 않는다. 그리고 중기의 대화편은 <파이드로스>, <파이돈>, <국가>, <향연> 등으로 여기서 소크라테스는 질문을 던지는 탐구자가 아닌 하나의 철학 체계 전반을 꿰뚫고 있는 교사의 모습으로 등장한다. 중기부터 소크라테스보다는 플라톤 자신의 철학을 반영한다고 보는 편이 합리적이다. 마지막으로 후기의 대화편은 <크라티아스>, <필레보스>, <소피스테스>, <티마이오스>등으로 이 무리에 속하는 대화편 모두에서는 소크라테스의 역할이 극히 미미하다. 이는 이미 오래전 세상을 떠난 스승 소크라테스보다는 자신의 사상을 완성한, 성숙한 플라톤의 견해를 표현한다고 볼 수 있다.

 

  1. 소크라테스 자신의 철학

플라톤의 초기 대화편에서 묘사된 모습을 중심으로 살펴보면 소크라테스는 우주론 등의 과학적 탐구에서 벗어나 철학적 문제들에만 집중하였다. 플라톤의 <변론>에 따르면 소크라테스는 아폴론의 이름으로 전한 여사제로부터 소크라테스보다 현명한 사람이 없다는 신탁을 받고 혼란에 빠졌기 때문이다. 이에 그는 다른 계층의 많은 사람들을 만나며 정치가와 시인들은 어떤 전문적 지식도 전혀 지니고 있지 않다는 사실을 발견하였고, 장인들도 단지 특수한 영역에서만 지식을 지녔음에도 보편적 지혜를 지닌 척하는 사실도 밝혀졌다. 이를 통하여 소크라테스는 오직 자신만이 자신의 지혜가 부족함을 깨달았다는 점에서 자신이 현명하며 따라서 신탁은 옳았다고 결론짓는다. (무지의 지)

소크라테스에게 진정한 지식을 추구하고 거짓 지식을 폭로하는 일은 도덕의 영역이다. 왜냐하면 최선이 무엇인지 진정으로 아는 사람은 그에 어긋나는 행위를 할 수 없기 때문이다. 따라서 모든 그릇된 행위, 즉 비도덕적 행위는 무지의 결과이다.

이러한 소크라테스의 생각을 바탕으로 그는 정의(定義)와 귀납적 논증을 추구하였다. 소크라테스가 정의를 추구한 까닭은 우리가 정의(正義)나 경건함 등 어떤 덕목에 관하여 완벽한 정의(定義)를 내리지 못한다면 그 덕목의 특수한 속성을 유익성, 보편성 등을 결정할 수 없기 때문이다. 만약 보편적인 정의가 어렵거나 불가능하다면 개별적인 경우들의 진리성을 확인할 수 있는 귀납적 논증을 적용하는 것이다.

#엠페도클레스

고대철학 스터디

#엠페도클레스

1-1. 그리스와 이탈리아의 초기 철학자들 중 갖아 눈부신 활약을 펼친 인물은 엠페도클레스인데 그는 주로 기원전 5세기 중반에 활동하였다.

1-2. 엠페도클레스는 말 경연대회에서 상을 받은 종마를 위한 사육장을 소유할 정도로 부유한 귀족 가문에서 태어났다. 하지만 정치적인 측면에서 그는 민족주의자였다고 전해진다. 그는 도시국가에 독재를 실시하려는 음모를 좌절시켰다고 한다. 이에 감사한 시민들이 그를 왕으로 추대하려 하였으나 그는 이 직위를 거부하고 자연학자와 조언자로서 검소한 삶을 사는 편을 택했다.

1-3. 시인으로서 엠페도클레스는 파르메니데스보다 원숙한 모습을 보이며 더욱 다재다능하다. 아리스토텔레스에 따르면 그는 페르시아의 왕 크세르크세스가 그리스를 침공한 사건에 대해 서사시도 썼다고 하며, 또 다른 자료에 의하면 몇 변의 비극도 썼다고 전한다.

1-4. 엠페도클레스의 자연철학은 어떤 관점에서 보면 이오니아철학자들의 사상을 종합한 것이라 할 수 있다. 엠페도클레스는 물, 공기, 흙, 불 이 네 실체 모두를 우주의 근본적인 구성요소 또는, 그 자신의 표현에 따르면 ,’뿌리’라는 동일한 용어로 부른다. 그의 주장에 따르면 이 뿌리들은 항상 존재해 왔는데 다양한 비율로 서로 혼합됨으로써 우리에게 친숙한 세계의 여러 동식물들을 만들어 낸다.

1-5. (시_)
엠페도클레스가 뿌리라고 불렀던 바를 플라톤을 비롯한 이후 그리스철학자들은 요소라는 용어로 표현하였는데 이 용어는 원래 단어의 음절을 의미하였다. 이 용어의 라틴어 번역은 elementum이며 이로부터 현재 우리가 사용하는 ‘요소’라는 용어가 유래하엿다. 17세기 보일(Boyle)이 등장하기 이전까지 많은 철학자와 과학자들은 엠페도클레스가 제시한 네 요소를 물리학과 화학에서 매우 중요한 역할을 담당하는 것으로 여겼다.

사실 이 네 요소는 다소 변형된 형태로 오늘날 우리에게까지 영향을 미친다고 말할 수 있다. 엠페도클레스는 자신의 요소들을 서로 다른 네 종류의 물체로 생각하였다. 현재 우리는 고체, 액체, 기체를 물체의 세 가지 상태로 여긴다. 엠페도클레스라면 얼음과 물, 수증기를 각각 흙과 물, 공기의 특별한 경우로 간주하겠지만 우리는 이를 물이라는 동일한 물질의 상태라고 생각한다. 불을, 특히 해가 내뿜는 불을 다른 요소들과 마찬가지로 중요한 네 번째의 요소로 생각하는 일은 그리 불합리하지 않다. 어쩌면 20세기에 해와 같이 높은 온도 상태의 물체가 지니는 속성들을 연구하는 플라즈마 물리학이 등장한 사실은 엠페도클레스의 네번째 요소에 다른 세 요소와 동등한 지위를 부여한 결과일지도 모른다.

1-6. 아리스토텔레스는 엠페도클레스가 우주론이 우주에 존재하는 요소들과 동일시되어서는 안 되는 어떤 원인, 즉 현실 세계의 생물과 무생물을 구성하는 요소들이 전개되고 혼합되는 데 필요한 원인을 지적하여야 한다는 사실을 깨달았다는 점을 들어 그를 칭찬한다. 엠페도클레스는 사랑과 불화가 바로 이런 역할을 한다고 생각한다(<<?!). 사랑은 요소들을 결합하며, 불화는 이들을 분리시킨다. 네 가지 뿌리는 어떤 때는 다수가 결합하여 하나를 이루기도 하고, 다른 대는 불화의 증오가 작용하여 서로 분리되기도 하는, 이런 계속되는 상호관계는 결코 멈추지 않는다고 엠페도클레스는 말한다.

1-7. 사랑과 불화는 그 후 여러 시대를 거치면서 자연에 관한 이론에서 자주 등장하였던 인력과 척력이 최초로 모습을 드러내는 독창적인 개념이기도 하다. 엠페도클레스는 역사가 때로는 사랑이, 때로는 불화가 지배하는 일종의 순환이라고 생각한다. 사랑의 영향을 받을 때는 여러 요소들이 결합하여 안정되고 조화로운, 빛나는 세계를 이루는데, 이는 파르메니데스의 우주를 떠올리게 한다. 불화의 영향을 받을 때는 요소들이 서로 분리되지만 사랑이 회복되면서 잃었던 영역을 되찾을 때 서로 다른 모든 생물체의 종이 등장한다. 네발짐승과 새, 물고기 등의 모든 복합적 존재는 생겨났다가 사라지는 일시적인 피조물일 뿐이다. 오직 네 가지 요소만이 영원히 지속되며, 오직 우주적 순환만이 영원히 이어진다.

1-8. 생물 종들의 기원을 설명하면서 엠페도클레스는 적자생존이라는 주목할 만한 진화론을 제시한다. 맨 처음 살과 뼈는 네 요소의 화학적 혼합에 의해 생겨났는데 살은 불과 공기, 물이 각각 같은 분량으로 섞여 만들어졌고, 뼈는 둘만큼의 물과 둘만큼의 흙 그리고 넷만큼의 불이 섞여 만들어졋다. 이런 복합물로부터 아직 세분되지 않은 팔다리와 기관들이 형성되었다. 이들은 서로 결합할 만한 상대방을 찾을 때까지 여기저기를 방황한다. 이들이 우연히 만난 상대방과 결합하는 경우가 자주 일어나느데 이렇게 미숙한 단계에서 이루어지는 결합은 지극히 부적절하다. 이렇게 우연히 만들어진 유기체 대부분은 허약하고 제대로 대를 잇지 못한다. 오직 가장 적합한 구조를 갖춘 존재들만이 살아남아 현재 우리가 아는 인간과 동물 종이 된다. 이들이 생식에 적합하여 계속 살아남는지 여부는 의도나 계획이 아니라 우연의 문제이다.

1-9. 아리스토텔레스는 엠페도클레스가 서로 다른 생명체가 지닌 서로 다른 기관이 동일한 기능을 수행할 수도 있다는 중요한 생물학의 원리를 처음 발견하였다고 주장하면서 이를 높이 평가한다. 하지만 목적론을 우연으로 축소 해석하려는 엠페도클레스의 시도는 비난하는데, 그 후 수세기 동안 생물학자들은 엠페도클레스보다는 아리스토텔레스를 따랐다. 하지만 다윈이 '그리 엄밀하지는 않지만 자연 선택의 원리를 예견하였다는 점'을 들어 엠페도클레스에게 경의를 표함으로써 최후에 미소를 지은 사람은 엠페도클레스라 할 수 있다.

1-10. 엠페도클레스는 자신의 네 요소를 활용하여 감각적 지각에 대한 설명도 제시하는데 이는 유사한 것은 유사한 것을 통해서 알려진다는 원리에 기초한다. 이라는 종교시에서 그는 자신의 자연학 이론을 피타고라스의 윤회설과 연결한다.

1-11. 엠페도클레스는 엄격한 기계론적 태도와 신비적인 종교적 태도 사이를 계속 오가는 모습을 보인다. 때로 그는 자신의 네 요소를 각각 신의 이름으로 부르기도 하였다.

1-12. 그의 죽음에 관해서 다음과 같은 이야기가 전해진다. 의사들이 이미 죽었다고 단념한 판테이아라는 여성이 있었는데 엠페도클레스가 그녀의 생명을 기적적으로 소생시켰다.
(시)