나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

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

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

프로그래밍

  • Kneser-Ney 언어 모형을 활용한 한국어 초성체 해석기 개발

    2018.06.17 by ∫2tdt=t²+c

  • 간편한 토픽 모델링 툴 Tomoto Gui

    2018.06.09 by ∫2tdt=t²+c

  • 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

Kneser-Ney 언어 모형을 활용한 한국어 초성체 해석기 개발

사실 초성체 해석기에 대한 생각은 말년 병장 때 할일 없어서 처음 떠올렸었습니다. 세종 말뭉치 통계 자료가 때마침 있었고, (사지방 시간도 꽤 있었고) PHP를 굴릴 수 있는 웹 서버도 하나 가지고 있었기에, 간단하게 단어의 초성을 추출해서 P(단어 | 초성) 을 계산하는 방식을 선택하기로 했죠. 각각의 단어가 다 독립이므로, 문장을 추론하는데에는 하나도 도움이 안되는 단순 멍청한 모델이었다고 할 수 있겠죠. (열악한 환경에서 하루만에 만드려니 어쩔수 없었다고 변명을 대어봅니다.) 최근 Modified Kneser Ney Smoothing을 적용한 N-gram Language Model를 공부하면서 이를 초성체 해석에 사용할 수 있다는 걸 깨달았습니다. 시험 삼아 초성체를 해독하는 도구를 짜보았는데, 이..

프로그래밍/NLP 2018. 6. 17. 03:01

간편한 토픽 모델링 툴 Tomoto Gui

최근 1년 간 집중적으로 자연언어처리 기술 중 토픽 모델링을 공부했었는데요, 공부하면서 느꼈던것은 토픽 모델링이 유용하게 쓰일수 있는 기법임에도 사용하려면 코딩이나 스크립트를 짜야해서 진입장벽이 생각보다 높을 것 같다는 것이었습니다. 예시로 자연언어처리로 유명한 Stanford 대학에서 만든 Topic Modeling Toolbox가 있는데 확인해보시면 알겠지만 스크립트를 짜서 텍스트를 전처리하면 이를 토픽 모델에 넣어 시각화를 할수있게 해주는 툴입니다. 생각보다 간단하지는 않죠. 또한 토픽 모델링의 경우 굉장히 다양한 모델이 등장했고, 모델마다 특성이 다르기에 상황에 따라 사용해야할 모델이 다른데, 이 코드들이 다 흩어져 있다(프로그래밍 언어도 제각각입니다. c/java/python은 예사..)는 것이..

프로그래밍/NLP 2018. 6. 9. 13:26

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

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

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

댓글

태그

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

방문자

오늘
어제
전체

페이징

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

티스토리툴바