반응형

gensim + word2vec 모델 만들어서 사용하기 



참고 : https://www.lucypark.kr/courses/2015-ba/text-mining.html



#Load data

from konlpy.corpus import kobill

docs_ko = [kobill.open(i).read() for i in kobill.fileids()]


#Tokenize

from konlpy.tag import Twitter; t = Twitter()

pos = lambda d: ['/'.join(p) for p in t.pos(d)]

texts_ko = [pos(doc) for doc in docs_ko]


#Train

from gensim.models import word2vec

wv_model_ko = word2vec.Word2Vec(texts_ko)

wv_model_ko.init_sims(replace=True)

wv_model_ko.save('ko_word2vec.model')    #model create


#Test - 유사도 분석

wv_model_ko.most_similar(pos('정부'))

wv_model_ko.most_similar(pos('초등학교'))





  * 저장된 model 사용하기 : https://radimrehurek.com/gensim/models/word2vec.html


Initialize a model with e.g.:

>>> model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)

Persist a model to disk with:

>>> model.save(fname)
>>> model = Word2Vec.load(fname)  # you can continue training with the loaded model!

The word vectors are stored in a KeyedVectors instance in model.wv. This separates the read-only word vector lookup operations in KeyedVectors from the training code in Word2Vec.

>>> model.wv['computer']  # numpy vector of a word
array([-0.00449447, -0.00310097,  0.02421786, ...], dtype=float32)


model 이 잘 불러와졌는지 확인하려면 model의 내용을 보자. 

model.vocab 하며 내용을 볼 수 있다. 

most_similar 에서 vocaburary에 단어가 없다고 에러나오면 내용을 확인 후 다시 검색해보면 된다. 

저장된 vocab이 '국어' 인지, '국어/Noun' 인지 확인 바람요! 


>>>len(model.vocab)

9867

>>>model.vocab 



Code for the word2vec HTTP server running at https://rare-technologies.com/word2vec-tutorial/#bonus_app



*** 대화 형 word2vec 데모 용 전체 HTTP 서버 코드 : 

     https://github.com/RaRe-Technologies/w2v_server_googlenews



모델 저장 및로드

표준 gensim 메소드를 사용하여 모델을 저장 /로드 할 수 있습니다.

1
2
model.save('/tmp/mymodel')
new_model = gensim.models.Word2Vec.load('/tmp/mymodel')

내부적으로 피클을 사용하는 선택적 mmap를 프로세스 간 메모리 공유 디스크 파일에서 직접 가상 메모리에 모델의 내부 큰 NumPy와 행렬을 보내고 '.

또한 텍스트 및 이진 형식을 사용하여 원본 C 도구로 만든 모델을로드 할 수 있습니다.

1
2
model = Word2Vec.load_word2vec_format('/tmp/vectors.txt', binary=False)
# using gzipped/bz2 input works too, no need to unzip:
model = Word2Vec.load_word2vec_format('/tmp/vectors.bin.gz', binary=True)

온라인 교육 / 훈련 재개

고급 사용자는 모델을로드하고 더 많은 문장으로 계속 교육 할 수 있습니다.

1
2
model = gensim.models.Word2Vec.load('/tmp/mymodel')
model.train(more_sentences)

시뮬레이트 할 학습 속도 감소에 따라 total_words 매개 변수를 train ()에 맞게 조정해야 할 수도 있습니다 .

C 도구 load_word2vec_format ()에 의해 생성 된 모델로는 교육을 재개 할 수 없습니다 당신은 여전히 ​​그것들을 질의 / 유사성을 위해 사용할 수 있지만, 훈련에 필수적인 정보 (보캐 트리)가 거기에 없습니다.

모델 사용

Word2vec는 여러 단어 유사 작업을 즉시 지원합니다.

1
2
4
5
6
model.most_similar(positive=['woman', 'king'], negative=['man'], topn=1)
[('queen', 0.50882536)]
model.doesnt_match("breakfast cereal dinner lunch";.split())
'cereal'
model.similarity('woman', 'man')
0.73723527

응용 프로그램에서 원시 출력 벡터가 필요한 경우에는 단어 단위로 이들에 액세스 할 수 있습니다

1
2
model['computer'# raw NumPy vector of a word
array([-0.00449447, -0.003100970.02421786, ...], dtype=float32)

... 또는 en-masse를 model.syn0 의 2D NumPy 행렬로 사용 하십시오 .



...

반응형
반응형

Flask 설치 - http://flask-docs-kr.readthedocs.io/ko/latest/installation.html


소개 : https://code.tutsplus.com/ko/tutorials/an-introduction-to-pythons-flask-framework--net-28822



플라스크는 작고 강력한 파이썬의 웹 프레임워크 입니다. 플라스크는 배우기 쉽고, 짧은 시간에 웹앱을 만들수 있습니다.


Flask의 세계에 오신것을 환영합니다.

Flask: web development, one drop at a time

Flask 문서에 오신것을 환영합니다. 이 문서는 다양한 파트로 나누어져 있습니다. 저자는 설치하기 와 빠르게 시작하기 를 먼저 보실것을 추천합니다. 빠르게 시작하기 뿐만아니라, 어떻게 Flask 어플리케이션을 만들 수 있는지 좀 더 상세하게 다루는 튜토리얼 또한 볼 수 있습니다.

만약 여러분이 오히려 Flask의 내부로 직접 뛰어 들고 싶은 경우라면,
API 문서를 확인하십시오. 일반적으로 사용되는 패턴들은

Flask를 위한 패턴들 섹션을 확인하면 됩니다..

Flask는 두개의 외부 라이브러리에 의존합니다.: 바로 Jinja2 템플릿엔진과 Werkzeug WSGI 툴킷입니다. 이 라이브러리들은 이 문서에서 다루지않습니다. 만약 여러분이 이 라이브러리들에 대해서 깊이 알고 싶다면 다음의 링크를 확인하십시오.


반응형
반응형

[MSSQL] 세로 데이터 가로로 출력 (데이터 한줄로 출력) STUFF, FOR XML PATH


http://ggmouse.tistory.com/127




DECLARE @string AS VARCHAR(1000);

SET @string = '';

 

WITH TABLE_A (NAME) AS (

    SELECT '손꽁쥐' UNION ALL

    SELECT '윤선생' UNION ALL

    SELECT '황박사'

)

 

SELECT @string = NAME + ', ' + @string FROM TABLE_A

SELECT @string AS '가로출력' 




--  

WITH TABLE_A (CLASS, NAME) AS (

    SELECT 'A', '손꽁쥐' UNION ALL

    SELECT 'B', '윤선생' UNION ALL

    SELECT 'A', '황박사'

)

SELECT * FROM

(

    SELECT CLASS, STUFF((SELECT ',' + NAME FROM TABLE_A WHERE CLASS = A.CLASS FOR XML PATH('')), 1, 1, '') AS 'Result'

    FROM TABLE_A AS A

) A

GROUP BY A.CLASS, A.Result


반응형
반응형

기업이 실패하는 이유에는 두 가지가 있다.

하나는 계획을 달성하지 못한 경우고,

다른 하나는 계획을 달성하긴 했지만

원대함이 부족했던 경우다.

계획이 원대하지 못했다는 건 근본적으로

시작하기도 전에 실패한 것과 마찬가지다.

나는 결코 두 번째 원인의 실패를 원치 않는다.

- 마크 저커버그, 페이스북 창업자

 

코미디 배우 윌 패럴은 USC 졸업식 축사에서

“내게도 두려움이 있다. 하지만

실패보다는 도전하지 않는 두려움이 더 크다.”고 말했습니다.

작은 목표에 도전해 성공하는 것 보단,

실패하더라도 큰 목표에 도전하는 것이

‘한번뿐인 소중한 인생’을 잘 살아내는 방법입니다.



...

반응형
반응형

처음에 그 생각은 

그리 명확한 것이 아니었어요.

명확한 계획이라기보다는 차라리 단순한 소망에

가까웠습니다. 그러나 내가 그것을 마음속에

새기고 내 마음을 온통 차지하도록 만들자,

마침내 내가 그 아이디어를 움직이는 대신

그 아이디어가 나를 움직이게 했습니다.


- 나폴레온 힐의《생각하라 그러면 부자가 되리라》중에서 -


* 아이디어뿐 아니라 

꿈에도 그런 힘이 있습니다.

단순한 소망이 자라나 꿈이 되고

그 꿈에 온 마음을 집중하여 몰입하면

그 꿈이 놀라운 힘으로 나를 움직입니다.

기적과도 같은 그 강력한 힘이 내 삶을 이끌고 

나의 미래를 창조합니다. 



...

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

금메달 선수들이 한결같이 하는 말  (0) 2017.07.04
바꾸는 용기  (0) 2017.07.03
6월, 그대 생각  (0) 2017.06.27
영적 휴식  (0) 2017.06.26
사랑은 바라지 않는다  (0) 2017.06.24

+ Recent posts