나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

  • 홈
  • Tag
  • Guestbook
  • Admin
  • 분류 전체보기
    • 적분史
    • 프로그래밍
      • PG어
      • 테크닉
      • 3D
      • Multi precision
      • 포니게임개발
      • 스페샬
      • NLP
    • 소리
    • 언어
      • 어원 이야기
      • 라틴어
    • 수업노트
      • 한국고대경제와사회
      • 영어구조론
      • 정보검색론
      • 인간의삶과역사속의미생물
      • 기타
    • 잉여
      • 미래
      • 수학
      • 종교개혁
    • 그냥 공부
    • 가짜 정보 정정합니다.

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

프로그래밍

  • SIMD를 이용한 깁스 샘플링 연산 최적화(SSE2, AVX)

    2018.05.06 by ∫2tdt=t²+c

  • 동시출현빈도 제대로 계산하기!

    2018.03.04 by ∫2tdt=t²+c

  • [토픽 모델링] 깁스 샘플링의 병렬화 & GPU 위에서 돌리기

    2018.02.20 by ∫2tdt=t²+c

  • [Python] 3변수 상호정보량을 활용한 연어 추출 코드

    2018.01.30 by ∫2tdt=t²+c

  • [Kiwi] 지능형 한국어 형태소 분석기 GUI 버전

    2017.10.31 by ∫2tdt=t²+c

  • 영어 동사 원형 복원기(English Verb Lemmatizer)

    2017.09.26 by ∫2tdt=t²+c

  • [Kiwi] 지능형 한국어 형태소 분석기 0.4버전 업데이트

    2017.09.11 by ∫2tdt=t²+c

  • [Kiwi] 지능형 한국어 형태소 분석기 ver 0.3 - 알고리즘 최적화 & 메모리 풀

    2017.05.05 by ∫2tdt=t²+c

SIMD를 이용한 깁스 샘플링 연산 최적화(SSE2, AVX)

지난 몇년간 CPU의 성능은 반도체 공정의 향상과 그로 인한 클럭 상승에 따라서 줄곧 높아져왔습니다. 무어의 법칙이 잘 작동하던 2000년대 초반까지는 프로그램 코드를 고치지 않아도 CPU의 클럭 상승으로 자동으로 프로그램의 성능도 높아져올 수 있었습니다. 그러나! 공정 미세화가 차츰 둔해지고, 집적화로 인한 발열을 감당할 수 없게 되자 CPU업계는 CPU의 발전 방향을 약간 틀었는데요, 1) 단일 코어의 성능을 향상시키기보다, 코어의 수를 늘리는 쪽으로, 2) 명령어 수준의 병렬성을 높여 최대한 효율적으로 연산을 처리하는 쪽으로 말이죠.1번은 멀티 스레딩 프로그래밍을 촉발시켰습니다. 기존의 알고리즘들을 병렬화하는 방향으로 코드를 수정함으로써 프로그램의 성능을 높일수 있게된 것입니다. 깁스 샘플링 알고리..

프로그래밍 2018. 5. 6. 19:52

동시출현빈도 제대로 계산하기!

동시출현(Co-occurrence)은 두 단어(키워드)가 얼마나 같은 문헌에 자주 등장했는지에 대한 개념으로, 단어 간의 연관관계를 따지는데 가장 기초적이면서도 중추적인 역할을 수행합니다. 기초적이지만 중요한 개념이라고 할 수 있죠.동시출현 빈도를 세는 작업은 의외로 간단합니다. 1. A, B, C2. A, D, C3. B, D, E 문헌 1, 2, 3에 단어 A, B, C, D, E가 다음과 같이 분포한다고 할때 단어 A, C는 문헌 1에도 함께 등장하고, 2에도 함께 등장하므로 동시출현 빈도는 2라고 간단하게 셀 수 있습니다. 따라서 이를 프로그래밍하는 것도 비교적 간단한 편이기에 코딩 연습 문제로 자주 나오는 편이기도 하죠. 어느 정도 코딩을 하신 분이라면 머리속에서 동시출현 빈도를 카운트하는 코드..

프로그래밍 2018. 3. 4. 02:58

[토픽 모델링] 깁스 샘플링의 병렬화 & GPU 위에서 돌리기

깁스 샘플링(Gibbs Sampling, 기브스 표집)을 이용한 LDA 모델 추정 과정은 예전 포스팅에서 소개한 바가 있습니다. 다시 한번 간략하게 짚어보자면, 깁스 샘플링은 복잡한 확률분포 에서 표본을 추출하기가 어려우므로 그 대신 와 같이 나머지 변수를 모두 고정한 상태에서 각각의 변수의 표본을 추출하고 이를 합쳐서 전체 확률 분포의 표본을 근사하자는 아이디어입니다. 반복 횟수(iteration)이 늘어날 수록 위 근사는 원래 확률 분포를 따라간다고 이미 알려져 있기에 마음 놓고 이렇게 사용하는 것이죠. LDA에서 단어의 주제 분포를 계산하는 경우, 모든 문헌의 단어 개수가 N개이고, 주제 개수가 K개라고 하면, 각각의 단어가 주제에 배정될 수 있는 모든 조합의 개수는 KN개가 됩니다. 어마어마하게 ..

프로그래밍/NLP 2018. 2. 20. 12:40

[Python] 3변수 상호정보량을 활용한 연어 추출 코드

최근 연어 추출과 관련하여 몇몇 문의가 있었어서 '다변수 정규화 상호정보량과 연어 추출'에서 다뤘던 다변수 상호정보량을 계산하는 파이썬 코드를 공유해드립니다. class PMI3: def __init__(self, **kargs): self.dictCount = {} self.dictTriCount = {} self.nTotal = 0 def train(self, sentenceIter, weight = 1): for sent in sentenceIter: self.nTotal += len(sent) for word in sent: self.dictCount[word] = self.dictCount.get(word, 0) + weight for a, b, c in zip(sent[:-2], sent[1:..

프로그래밍/NLP 2018. 1. 30. 18:55

[Kiwi] 지능형 한국어 형태소 분석기 GUI 버전

웹 버전 말고 윈도우즈용 GUI 버전의 Kiwi 형태소 분석기를 구하시는 분들이 의외로 많으셔서, 간단하게나마 GUI를 입힌 버전을 만들어보았습니다. (2022-03-20일자 업데이트) https://github.com/bab2min/kiwi-gui/releases/에서 최신 버전의 kiwigui_win_v0.**.*.zip (별표는 버전 넘버) 파일을 다운 받으시는걸 권장합니다. 입력된 한국어 문장을 형태소 분석하여 출력해주는 것이 모든 기능입니다. KiwiGui가 받아들이는 인코딩은 CP949(ANSI), UTF-8, UTF-16 BE, UTF-16 LE 입니다. 출력 파일은 항상 UTF-8로 나옵니다. 기본 분석기 창. 분석할 텍스트를 입력하거나 텍스트 파일을 열어서 분석을 진행할 수 있습니다. 일..

프로그래밍/NLP 2017. 10. 31. 23:00

영어 동사 원형 복원기(English Verb Lemmatizer)

최근 전산 영어학 관련 업무를 하다보니 어간 추출(Stemming)이나 원형 복원(Lemmatization)을 할 일이 많습니다. 이미 이쪽 분야는 많이 연구되어서 쉽게 사용할 수 있는 자바 라이브러리(LingPipe, Stanford Core NLP, OpenNLP 등등)가 널려 있습니다. 문제는 제가 필요한 건 오직 영어 동사의 원형을 복원하는 작업인데, 대부분의 라이브러리에서는 Lemmatizer를 단독으로 제공하지 않고, Stemmer, POS Tagger 등과 함께 제공한다는 것이었지요. 용량이 작은 서버에 올려야 했기에 이런 추석종합선물세트 같은 라이브러리 패키지를 사용하기에는 어려웠습니다. 그래서 동사만 원형복원하는 코드를 간단하게 작성해봤습니다. (다행히도 영어 동사의 굴절 법칙은 아주아주..

프로그래밍 2017. 9. 26. 02:26

[Kiwi] 지능형 한국어 형태소 분석기 0.4버전 업데이트

속도가 만족할 만큼 나오지 않아서 아쉽길래 한동안 접어두고 있었는데, 갑자기 좋은 아이디어가 떠올라서 업데이트를 해보았습니다. 약간의 알고리즘 수정으로 최소 +50%~200%의 속도 향상을 달성할 수 있었는데, 기록하지 않고 넘어가기에 너무 아까워서 포스팅을 써보았습니다. 0.3버전까지 방법이전 포스팅에서도 간단히 적었듯이 형태소 분석기의 핵심은 마르코프 연쇄입니다. 각각의 형태소가 등장할 확률 및 한 형태소 다음에 다른 형태소가 등장할 확률을 계산해서, 그 확률이 가장 높은 형태소열을 찾는것이 형태소 분석기의 업무라고 할 수 있습니다. 원활한 이해를 위해 다음 예시를 들어보죠. 먹었다 위 단어를 분석한다고 해봅시다. 어떤 형태소가 들어갈 수 있는지 일단 나열해보자면, 다음과 같을 겁니다. 먹었다 먹/V..

프로그래밍/NLP 2017. 9. 11. 02:59

[Kiwi] 지능형 한국어 형태소 분석기 ver 0.3 - 알고리즘 최적화 & 메모리 풀

그새를 못 참고 업데이트했습니다. 이번 업데이트에서는 정확도 개선은 없었지만, 알고리즘 최적화와 메모리 관리 향상을 통한 성능 향상이 주요 내용입니다. 0.3 버전 업데이트 내역속도가 0.2 버전 대비 약 86%향상되었습니다. 1.알고리즘 최적화실행 속도를 높이기 위해서는 실행 시간의 대부분을 차지하는 함수를 튜닝하는게 좋습니다. 다행히도 마솔루야, 거룩하신 MS께서 내리신 Visual Studio에서 성능 분석에 아주아주 좋은 기능을 제공하더라구요. 이 기능을 활용하여 실행시간의 대부분을 소모하는 함수를 찾아 들어가보니 코드 순서를 바꾸고 불필요한 할당을 제거할 수 있는 부분이 있어서 라인 몇줄을 옮기고 지웠습니다. 별거 아닌 것 같은 작업이었지만 이를 통해 10%이상의 성능 향상을 얻을 수 있었죠. ..

프로그래밍/NLP 2017. 5. 5. 21:02

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

제가 안 것의 대부분은 인터넷으로부터 왔으니, 다시 인터넷에게 돌려주어야 합니다. bab2min@gmail.com

댓글

태그

토픽 모델링 Direct3D 정보조직론 NLP 영어구조론 BigFloat 포니게임 라틴어 우리역사바로알기대회 python 문헌정보통계 php 악보 kiwi 한국고대경제와사회 pg어 자연언어처리 리듬게임 c++ 텍스트 마이닝

방문자

오늘
어제
전체

페이징

이전
1 ··· 3 4 5 6 7 8 9 ··· 28
다음
나의 큰 O는 log x야
메일 bab2min@gmail.com
Skin Images are from Stinkehund.

티스토리툴바