'뇌세포덩어리""'에 해당하는 글 185건

#!/usr/bin/env python

# coding: utf-8


# In[1]:



corpus = ['king is a strong man', 

          'queen is a wise woman', 

          'boy is a young man',

          'girl is a young woman',

          'prince is a young king',

          'princess is a young queen',

          'man is strong', 

          'woman is pretty',

          'prince is a boy will be king',

          'princess is a girl will be queen']



# In[2]:



print corpus



# In[7]:



def remove_stop_words(corpus):

    stop_words = ['is', 'a', 'will', 'be']

    results = []

    for text in corpus:

        tmp = text.split(' ')

        for stop_word in stop_words:

            if stop_word in tmp:

                tmp.remove(stop_word)

        results.append(" ".join(tmp))

    return results



# In[8]:



corpus = remove_stop_words(corpus)

print corpus



# In[10]:



words = []

for text in corpus:

    for word in text.split(' '):

        words.append(word)

        

words = set(words)


words



# In[12]:



word2int = {}


for i,word in enumerate(words):

    word2int[word] = i

    

sentences = []

for sentence in corpus:

    sentences.append(sentence.split())

    

WINDOW_SIZE = 2


data = []

for sentence in sentences:

    for idx, word in enumerate(sentence):

        for neighbor in sentence[max(idx - WINDOW_SIZE, 0) : min(idx + WINDOW_SIZE, len(sentence)) + 1]:

            if neighbor != word:

                data.append([word, neighbor])

                



# In[14]:



import pandas as pd

for text in corpus:

    print(text)

    

df = pd.DataFrame(data, columns = ['input', 'label'])



# In[15]:



df.head(10)



# In[16]:



df.shape



# In[17]:



word2int



# In[19]:



import tensorflow as tf

import numpy as np


ONE_HOT_DIM = len(words)


def to_one_hot_encoding(data_point_index):

    one_hot_encoding = np.zeros(ONE_HOT_DIM)

    one_hot_encoding[data_point_index] = 1

    return one_hot_encoding


X = []

Y = []


for x,y in zip(df['input'], df['label']):

    X.append(to_one_hot_encoding(word2int[x]))

    Y.append(to_one_hot_encoding(word2int[y]))

    

X_train = np.asarray(X)

Y_train = np.asarray(Y)


x = tf.placeholder(tf.float32, shape = (None, ONE_HOT_DIM))

y_label = tf.placeholder(tf.float32, shape = (None, ONE_HOT_DIM))



EMBEDDING_DIM = 2 


# hidden layer: which represents word vector eventually

W1 = tf.Variable(tf.random_normal([ONE_HOT_DIM, EMBEDDING_DIM]))

b1 = tf.Variable(tf.random_normal([1])) #bias

hidden_layer = tf.add(tf.matmul(x,W1), b1)


# output layer

W2 = tf.Variable(tf.random_normal([EMBEDDING_DIM, ONE_HOT_DIM]))

b2 = tf.Variable(tf.random_normal([1]))

prediction = tf.nn.softmax(tf.add( tf.matmul(hidden_layer, W2), b2))


# loss function: cross entropy

loss = tf.reduce_mean(-tf.reduce_sum(y_label * tf.log(prediction), axis=[1]))


# training operation

train_op = tf.train.GradientDescentOptimizer(0.05).minimize(loss)



# In[20]:



sess = tf.Session()

init = tf.global_variables_initializer()

sess.run(init) 


iteration = 20000

for i in range(iteration):

    # input is X_train which is one hot encoded word

    # label is Y_train which is one hot encoded neighbor word

    sess.run(train_op, feed_dict={x: X_train, y_label: Y_train})

    if i % 3000 == 0:

        print('iteration '+str(i)+' loss is : ', sess.run(loss, feed_dict={x: X_train, y_label: Y_train}))



# In[21]:



vectors = sess.run(W1 + b1)

print(vectors)



# In[22]:



w2v_df = pd.DataFrame(vectors, columns = ['x1', 'x2'])

w2v_df['word'] = words

w2v_df = w2v_df[['word', 'x1', 'x2']]

w2v_df



# In[25]:



import matplotlib.pyplot as plt


fig, ax = plt.subplots()


for word, x1, x2 in zip(w2v_df['word'], w2v_df['x1'], w2v_df['x2']):

    ax.annotate(word, (x1,x2 ))

    

PADDING = 1.0

x_axis_min = np.amin(vectors, axis=0)[0] - PADDING

y_axis_min = np.amin(vectors, axis=0)[1] - PADDING

x_axis_max = np.amax(vectors, axis=0)[0] + PADDING

y_axis_max = np.amax(vectors, axis=0)[1] + PADDING

 

plt.xlim(x_axis_min,x_axis_max)

plt.ylim(y_axis_min,y_axis_max)

plt.rcParams["figure.figsize"] = (10,10)


plt.show()



# In[24]:






# In[ ]:





'뇌세포덩어리"" > tensorflow' 카테고리의 다른 글

1. word2Vec  (0) 2018.10.08

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret
def linear_search(list, find_key):
for i in range(len(list)):
if list[i] == find_key:
return i
return "not find"


def binary_search(list, find_key):
mid = len(list)//2
while True:
if list[mid] == find_key:
return mid
elif list[mid] < find_key:
mid += mid/2
if mid >= len(list):
mid = len(list)-1
else:
mid -= mid/2
if mid/2 == 0:
mid = 0


class binary_tree:
value = 0
left = None
right = None

def __init__(self, value):
self.value = value

def get_value(self):
return self.value

def get_left(self):
return self.left

def get_right(self):
return self.right

def input_value(self, value):
if self.value > value:
if self.left is None:
new_binary_tree = binary_tree(value)
self.left = new_binary_tree
return self.left
else:
return True
else:
if self.right is None:
new_binary_tree = binary_tree(value)
self.right = new_binary_tree
return self.right
else:
return False


def binary_tree_create(list):
root = binary_tree(list[0])
for i in range(len(list)):
if list[i] != root.get_value():
now_obj = root
while True:
temp_obj = now_obj.input_value(list[i])
if isinstance(temp_obj, binary_tree):
break
else:
if temp_obj is True:
now_obj = now_obj.get_left()
else:
now_obj = now_obj.get_right()

return root


def binary_tree_search(node, value, depth):

temp_value = node.get_value()
if temp_value == value:
return temp_value, depth
elif temp_value > value:
if isinstance(node.get_left(), binary_tree) is False:
return "not find"
return binary_tree_search(node.get_left(), value, depth+1)
else:
if isinstance(node.get_right(), binary_tree) is False:
return "not find"
return binary_tree_search(node.get_right(), value, depth+1)


temp_list = [33, 11, 99, 1, 22, 88, 55, 44, 66, 77]


print(linear_search(temp_list, 77))
print(binary_search(temp_list, 77))
root = binary_tree_create(temp_list)
print(binary_tree_search(root, 77, 0))


이진트리는 트리 형식으로 만들어야 함으로 쪼금 길다.



선형 탐색 O(n)

이진 탐색 O( logn) 단 정렬이 되 있어야 함

이진 트리 O( logn) 


WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

파이썬을 간단하게 짠 정렬들... 원리만 알면 구하기 쉬움.





def bubble(list):
for i in range(len(list)):
for j in range(len(list)):
if list[i] < list[j]:
list[i], list[j] = list[j], list[i]

return list


def selection(list):
for i in range(len(list)):
min_temp = i
for j in range(i, len(list)):
if list[min_temp] > list[j]:
min_temp = j
list[i], list[min_temp] = list[min_temp], list[i]

return list


def insertion(list):
for i in range(len(list)):
if i+1 < len(list):
pin = i+1
for j in reversed(range(0, pin)):
if list[j] > list[pin]:
list[pin], list[j] = list[j], list[pin]
pin = j
else:
break
return list


def quicksort(list):
if len(list) <= 1:
return list

pivot = list[len(list)//2]
small = []
many = []
equal = []
for x in list:
if x < pivot:
small.append(x)
elif x > pivot:
many.append(x)
else:
equal.append(x)

return quicksort(small)+equal+quicksort(many)


def mergesort(list):
if len(list) <= 1:
return list

helf = len(list)/2
left = mergesort(list[:helf])
right = mergesort(list[helf:])

return_list = []
left_x = 0
right_x = 0
while left_x < len(left) and right_x < len(right):
if left[left_x] < right[right_x]:
return_list.append(left[left_x])
left_x += 1
else:
return_list.append(right[right_x])
right_x += 1

return_list += left[left_x:]
return_list += right[right_x:]

return return_list


temp_list = [33, 11, 99, 1, 22, 88, 55, 44, 66, 77]


print(bubble(temp_list))
print(selection(temp_list))
print(insertion(temp_list))
print(quicksort(temp_list))
print(mergesort(temp_list))


버블   O(n^2)

선택   O(n^2)

삽입  O(n^2) but 버블/선택 보단 빠르고 메모리를 적게 먹음

퀵     최적 O(nlogn)     최악 O(n^2)

머지  O(nlogn)


WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret



- 이 세상에서 이십년 동안 존 재하면서 습득한 상식을 알고 싶다면 그 일에 이십년을 들여야 한다. 이에 상응하는 자기발견적방법론을 그 보다더 짧은 시간내에 조립할 방도는 없다. 경험은 알고림적으로 압축할 수 없기 때문이다.


sf소설로 유명한 테드창의 작품

우리가 AI를 어떻게 발전시키고 이용해 나가는가에 대해서 상상한 작품이다. 꽤나 현실적으로 다가오는 부분이 많은데 AI를 꼭 좋은 일에만 쓰진 않는다는 것이다. 


마지막까지 인간이 되지 못하는 AI들을 주인공이 위와 같이 한 말이 너무나 맘에 와 닿는다. 

한 인간이 되기 위해선 그 한인간만큼의 삶을 살아야 한다는것.

그리고 그만큼의 삶동안은 어떤 생물이든 존경받아야 한다는것.


'뇌세포덩어리"" > ' 카테고리의 다른 글

소프트웨어 객체의 생애주기  (0) 2015.06.21
까칠하게 힐링  (0) 2015.06.08
나무를 심은 사람  (0) 2014.09.12
죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret




까칠하게 힐링!

'뇌세포덩어리"" > ' 카테고리의 다른 글

소프트웨어 객체의 생애주기  (0) 2015.06.21
까칠하게 힐링  (0) 2015.06.08
나무를 심은 사람  (0) 2014.09.12
죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret




내용은 정말 짧은데...이게 실화라는게 더욱 당혹스럽게 하는책.

한사람이 자연을/ 사람들의 인생을 바꿀수 있다는게 가능하다는걸.

한사람의 조금만한 생각이 많은것을 변화시킬수 있다는것을 깨닫게 된다.

'뇌세포덩어리"" > ' 카테고리의 다른 글

소프트웨어 객체의 생애주기  (0) 2015.06.21
까칠하게 힐링  (0) 2015.06.08
나무를 심은 사람  (0) 2014.09.12
죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret




신과 영혼/ 죽음과 삶에 대해서 논리 정연하게 정리한 책.


솔직히 이 책을 2년전에 사고 방치 했다가 이번에 읽긴 했지만......

어렵다..ㅜㅡㅜ

꼼꼼하게 생각해야 할것이 너무 많아서 요약도 불가능할 정도.

정말 꼭 한번 맘먹고 읽어보시면 후회는 없을책


'뇌세포덩어리"" > ' 카테고리의 다른 글

까칠하게 힐링  (0) 2015.06.08
나무를 심은 사람  (0) 2014.09.12
죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12
MIT 스타트업 바이블  (0) 2014.07.09

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret



이제 코딩을 시작하는 학생들에게 추천.

대부분 코드컨벤션 이라 하면 낙타/헝가리안 을 주축으로 여러 회사 컨벤션을 참고하라 하는데

그건의 근본이 되는 것은 잘 알려주지 않는다(정확히는 잘 아는 사람도 별로 없는거 같다.)

이 책을 읽으면 확실히 어느 정도의 컨벤션은 잡을수 있을꺼라 생각한다. 

쉽게 쓰여지기도 했고 여러 언어에 걸쳐서 쓰여져서 지금까지 본 컨센션 문서중에 가장 좋은 느낌이 들었다.

추천!

'뇌세포덩어리"" > ' 카테고리의 다른 글

나무를 심은 사람  (0) 2014.09.12
죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12
MIT 스타트업 바이블  (0) 2014.07.09
박칼린 사는 동안 멋지게  (0) 2014.06.08

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret


후회가득!!

AR로 보여주는거라 괜찬을꺼라 생각했는데 일단 화면이 작은 아이폰계열은 티라노 발만 봐야 하고

익룡은 날라가서 보이지도 않음. (갤럭시 같은 큰 화면은 그나마 괜찬음)


그리고 총 4개(티라노/프테라노돈/새끼 브라키오사우르스/랩터) 만 AR로 보여지며 나머지 5장은 유료로 사야함. 하나당 3천원정도.(유료란 말이 책에 써여있었으면 내가 않샀을텐데..)


조카가 좋아해서 이정도로 참지 정말 이쪽 출판사꺼는 다시는 않살꺼임.


(솔직히 내가 만들까 생각중.  케릭 이미지만 받아서 간단히 만들수 있는데.. )


'뇌세포덩어리"" > ' 카테고리의 다른 글

죽음이란 무엇인가  (0) 2014.09.12
읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12
MIT 스타트업 바이블  (0) 2014.07.09
박칼린 사는 동안 멋지게  (0) 2014.06.08
위험한 관계학  (0) 2014.06.06

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret


스타트업에 관심이 있거나 계획중이라면 상당히 추천할만하다.

단계별로 스타트업을 어떻게 준비하며 계획해야하는지 상당히 자세히 나와있다.(너무 자세히 나와있어서 부담스러울 정도;)

이책은 절대로 창의적인 생각을 주진 않는다. 단지 스타트업을 실패하지 않게 하기 위해, 철저한 준비가 필요하다는것을 처음부터 끝까지 채워준다.


'뇌세포덩어리"" > ' 카테고리의 다른 글

읽기 좋은 코드가 좋은 코드다  (0) 2014.09.11
공룡은 살아있다.  (0) 2014.07.12
MIT 스타트업 바이블  (0) 2014.07.09
박칼린 사는 동안 멋지게  (0) 2014.06.08
위험한 관계학  (0) 2014.06.06
철들고 그림 그리다  (0) 2014.05.26

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret