나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

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

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

프로그래밍

  • Chrono-gram을 이용해 라틴어 고문헌 연대 추정하기

    2019.09.16 by ∫2tdt=t²+c

  • [토픽 모델링] 대량의 문헌을 주제에 따라 클러스터링해보기

    2019.07.10 by ∫2tdt=t²+c

  • [Python] tomotopy로 쉽게 토픽 모델링 실시하기

    2019.05.22 by ∫2tdt=t²+c

  • Python용 토픽 모델링 패키지 - tomotopy 개발

    2019.05.19 by ∫2tdt=t²+c

  • [c++] CRTP를 이용한 다단계 정적 상속으로 코드 최적화하기

    2019.03.07 by ∫2tdt=t²+c

  • [Python] Segmented Least Squares를 이용해 구간 나누기

    2019.02.27 by ∫2tdt=t²+c

  • [c++] 빠른 log sigmoid 계산

    2019.01.02 by ∫2tdt=t²+c

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

    2018.12.09 by ∫2tdt=t²+c

Chrono-gram을 이용해 라틴어 고문헌 연대 추정하기

졸업 논문으로 연구했던게 통시적 단어 임베딩 기법이었습니다. 고전 그리스어로 '시간'을 뜻하는 단어 χρόνος와 '글'을 뜻하는 단어 γράμμα를 합쳐서 Chrono-gram(CG)이라고 이름을 붙였었는데요, 이 모형은 시간에 따른 언어의 변화를 포착하는데에 특화되어 있어서 텍스트의 연대를 추정하는데에 사용할 수 있습니다. 문제는 모형을 학습하려면 오랜 기간동안 변화를 보여주는 말뭉치를 구해야 하는데 이것이 생각보다 쉽지가 않습니다. 다행히도 구글에서 Google Books Ngram이라는 15세기부터 21세기까지의 Google Books의 책들을 바탕으로 빈도분석을 수행한 말뭉치를 공개해준 덕분에 이걸 바탕으로 논문을 마무리할 수 있었습니다.논문을 어찌어찌 끝내고 놀다보니 불현듯 고문헌 이미지를 수..

프로그래밍/NLP 2019. 9. 16. 23:35

[토픽 모델링] 대량의 문헌을 주제에 따라 클러스터링해보기

대량의 문헌이 있는데 그 문헌 안에 어떤 내용이 들어 있는지는 잘 모릅니다. 이 문헌들을 좀더 편하게 찾아볼 수 있게 하려면 주제별로 묶어서 분류하는게 최고입니다. 그런데 문헌 수가 너무 많기 때문에, 문헌 전체를 읽어보면서 얘네 안에 어떤 주제가 있는지 일일히 확인하는 건 어렵고, 얘네들을 일일히 분류하는 건 더 어렵습니다. 이런 경우 어떻게 하는게 좋을까요? 이 문제는 라틴어 고문헌을 OCR하여 아카이브를 구축하면서 제가 겪은 상황입니다. 수십 만건의 문헌을 확보했고 이를 차근차근 OCR하면서 텍스트화시키고 있는데, 당췌 이걸 일일히 읽어보면서 이쁘게 분류할 엄두가 나질 않더라구요. 분류를 하고는 싶은데 분류 체계가 마땅히 없거나 분류기를 학습할 만한 학습 데이터가 없는 경우 클러스터링이 유용합니다...

프로그래밍/NLP 2019. 7. 10. 01:24

[Python] tomotopy로 쉽게 토픽 모델링 실시하기

저번 글에 소개했던 것처럼, 토픽 모델링 툴인 tomoto의 Python 패키지 버전을 며칠 전에 공개했었습니다. 이번 포스팅에서는 Python에서 이를 이용해서 쉽게 토픽 모델링을 하는 예제 코드를 공유하고자 합니다.Step 1. tomotopy 패키지 설치하기명령줄 혹은 Terminal 에서 다음과 같이 입력하여 tomotopy를 설치합니다. (만약 파이썬이 설치가 되지 않은 경우라면 먼저 파이썬을 설치해야겠죠. 3.5 버전 이상을 설치하는걸 추천드립니다)$ pip install --upgrade tomotopyStep 2. 토픽 모델링 코드를 작성하기의외로 간단합니다. 바로 보도록 하시죠. import tomotopy as tp # 먼저 모듈을 불러와야겠죠 model = tp.LDAModel(k=2..

프로그래밍/NLP 2019. 5. 22. 17:06

Python용 토픽 모델링 패키지 - tomotopy 개발

최근 몇 년 여 간 토픽 모델링이라는 자연언어처리 기법을 접하고 이를 통해서 다양한 실험 및 논문 작업을 진행했었는데요, 연구 목적으로 편하게 자주 사용하는 Python에는 토픽 모델링을 제공하는 패키지가 gensim을 제외하고는 크게 많지 않더라구요. Java 기반 라이브러리(Mallet 등)를 종종 이용해오다가, Java로 코딩하기가 너무 귀찮아서 Python에는 왜 이런 라이브러리가 없을까 한탄도 자주 했었습니다.공부할 겸 깁스 샘플링 기반의 토픽 모델링 코드를 개인적으로 c++로 개발했던 적이 있습니다. 최근에 Python C API를 공부하며 겸사겸사 그 동안 개발해뒀던 토픽 모델링 툴을 Python 패키지화시키면 파이썬 유저들도 편하게 토픽 모델링을 할 수 있겠다 싶어서 용기를 내어 토픽 모델..

프로그래밍/NLP 2019. 5. 19. 20:32

[c++] CRTP를 이용한 다단계 정적 상속으로 코드 최적화하기

상속은 객체지향 프로그래밍의 꽃이라고 할 수 있습니다. 상속을 통해 공통되는 코드를 통합하고, 다형성을 확보하는 등 다양한 작업이 가능하지요. C++에서는 일반적으로 클래스와 가상 함수, 상속이라는 문법적 장치를 통해 이러한 개념들이 구현됩니다. 어떤 Data에 대한 처리를 수행하는 클래스 ModelA이 있다고 생각해봅시다. struct Data { int foo, bar; }; class ModelA { std::vector myData; public: virtual void loadData() { // myData에 값들을 채워넣는다~~ } virtual void work() { // myData를 가지고 어떠한 처리를 한다~~ } void loadAndWork() { loadData(); work(..

프로그래밍/테크닉 2019. 3. 7. 20:41

[Python] Segmented Least Squares를 이용해 구간 나누기

최소제곱법(Least Square Approximation)은 데이터를 근사하는 모형을 찾는데 흔히 사용하는 방법입니다. 참값과 근사값의 오차의 제곱합이 최소가 되게한다고 해서 최소제곱법이라고 부르지요. 대표적인 사례가 선형회귀입니다. 두 변수가 가지는 관계를 좌표평면 상에 늘어놓고, 데이터의 분포를 최대한 잘 근사하는 직선을 찾는 일입니다. 그 형태가 간단하고 닫힌 해가 알려져 있어서 통계학에서는 기초 중의 기초로 널리 쓰이고 있습니다. 근데 때로는 전체 데이터의 분포가 하나의 직선으로 표현하기에 어려운 경우도 있습니다. 이 경우 선형이 아닌 좀 더 복잡한 모형을 사용하는 방법을 쓸 수도 있고, 선형 모형 여러개를 결합하여 데이터를 표현하는 방법을 쓸 수도 있습니다.오늘의 주제는 오른쪽과 같이 복잡한 ..

프로그래밍 2019. 2. 27. 18:23

[c++] 빠른 log sigmoid 계산

sigmoid 함수는 연속이고 미분가능하면서 비선형이라는 특징 덕분에 여러 기계 학습 및 신경망에 두루 쓰이는 함수이죠. 최근에 word2vec을 확장한 모형을 공부하면서 목적함수에 log sigmoid를 잔뜩 사용하는 코드를 구현한 적이 있었는데, log sigmoid 계산 비용이 꽤나 컸기에 전반적인 속도 향상에 어려움이 있었습니다. 그래서 Look Up Table을 이용해 최적화를 실시했었는데 그 결과를 포스팅으로 공유하고자 합니다. 먼저 log sigmoid 함수는 다음과 같이 정의됩니다. 이름처럼 sigmoid 함수에 log를 취한 형태이구요, 그 그래프 모양은 다음과 같습니다. 전 범위에서 음수 값을 가지며, x > 0일는 그 값이 0에 극도로 가까워집니다. 이 함수를 계산하기 위해서는 exp..

프로그래밍 2019. 1. 2. 01:26

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

최근 Kiwi 형태소 분석기 0.6 버전 업데이트를 실시했습니다. 사실 엄청 바뀐건 없고, 이전 버전에서 사용하던 최적화를 좀더 한 단계 끌어올리는 작업을 수행했습니다. 0.4버전에서 도입한 그래프 기반 경로 탐색 알고리즘의 경우, 이상하게도 끝쪽에서 앞쪽으로 분석을 진행했습니다. 당시에 왜 이렇게 설계했는지 모르겠는데, 개발하고 보니, 역방향으로 추적을 진행하더라구요. 사실 경로 탐색을 진행하는게 순방향인지 역방향인지 자체는 성능에 영향을 미치지 않습니다만, n-gram 언어모델을 캐싱하는데에는 순방향이 훨씬 유리합니다. 0.5버전에서 Kneser-Ney smoothing을 적용한 n-gram 언어 모델을 바탕으로 형태소가 출현할 확률을 계산하도록 알고리즘을 교체하였는데요, 이게 약 2만 여개의 형태소..

프로그래밍/NLP 2018. 12. 9. 23:23

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

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

댓글

태그

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

방문자

오늘
어제
전체

페이징

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

티스토리툴바