나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

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

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

분류 전체보기

  • 빠른 구문 검색을 위한 인덱싱 기법

    2018.10.14 by ∫2tdt=t²+c

  • 벡터 공간 모형에서의 효과적인 질의 평가 방법 - WAND를 활용한 2단계 검색

    2018.10.13 by ∫2tdt=t²+c

  • 상위어 자동 추출(Hypernym Detection) 기법 정리

    2018.10.10 by ∫2tdt=t²+c

  • [C++] 템플릿 함수를 이용해 STL 컨테이너를 직렬화해보자

    2018.10.05 by ∫2tdt=t²+c

  • AdaGram : 동음이의어를 구분하는 Word2Vec

    2018.09.23 by ∫2tdt=t²+c

  • Word2Vec을 이용한 한국어 관련어 네트워크 보기

    2018.09.17 by ∫2tdt=t²+c

  • [Python] 디리클레 분포 추정하기

    2018.09.03 by ∫2tdt=t²+c

  • 코퍼스 내에서 알려지지 않은 새로운 명사(미등록어)를 추출하기

    2018.09.02 by ∫2tdt=t²+c

빠른 구문 검색을 위한 인덱싱 기법

'포도 주스'라고 검색한다면 '포도'가 포함된 문헌과 '주스'가 포함된 문헌의 교집합을 보여줄수도 있지만(이는 고전적인 불리언 검색 모형에서의 AND 연산자를 이용하는 것과 동일합니다), 정확하게 '포도'라는 단어 다음에 '주스'라는 단어가 등장하는 문헌만을 보여줄 수도 있죠. 후자의 경우를 구문 검색(Phrase Query)이라고 합니다. 단어 하나 만으로는 원하는 결과를 정확하게 얻지 못할 수 있기 때문에 사람들은 두 단어 이상의 구문을 질의어로 입력하는 경우가 많습니다. 문제는 고전적인 불리언 검색 모형에서는 구문 검색 시 구문의 길이가 길어질수록 검색 속도가 현격하게 떨어진다는 것입니다. 당연히 이를 극복하기 위한 방법들이 제시되었겠죠? 본 포스팅에서는 다음 논문의 내용을 기반으로 큰 성능 손실 ..

수업노트 2018. 10. 14. 18:44

벡터 공간 모형에서의 효과적인 질의 평가 방법 - WAND를 활용한 2단계 검색

정보 검색 모형 중 벡터 공간 모형(질의와 문헌을 벡터 공간 상의 좌표로 표현하고, 검색 시 질의와 문헌 좌표 간의 코사인 유사도를 계산하여 정렬하는 모형)은 안정적이면서 뛰어난 성능 덕분에 현재 다양한 검색 엔진에 널리 쓰이고 있습니다. 문제는 두 좌표 상의 코사인 유사도를 계산하는 것이 생각보다 비싼 연산이라는 것입니다. 벡터 공간의 dimension이 V일 경우, 총 V번의 곱셈과 덧셈이 필요하죠. 이게 모든 쿼리-문헌에 대해 계산되어야 전체 문헌에 대한 순위화가 가능하므로, 문헌이 총 D개라고 할 경우 최소 D*V 번의 곱셈이 필요합니다. 문헌 갯수 D가 커질수록 덩달아 V도 커질테니, 사실상 그 전체 연산 비용은 어마어마하게 늘어날 것이라고 예상할 수 있겠습니다. 이는 대량의 정보를 처리해야하는..

수업노트 2018. 10. 13. 14:57

상위어 자동 추출(Hypernym Detection) 기법 정리

우리가 사용하는 단어(그 중 특히 명사)는 어떤 개념을 나타내고 있고, 그 개념들 사이에는 서로 포함관계가 존재하는 경우가 많습니다. '포도'라는 개념은 '과일'이라는 개념에 포함되고, '과일'이라는 개념은 '음식'이라는 개념에 포함됩니다. 이를 수식처럼 표현하면포도 ⊂ 과일 ⊂ 음식처럼 쓸 수 있을 겁니다. 이 때 상위 개념에 포함되는 하위 단어를 하위어(Hyponym), 하위 개념을 포함하는 상위 단어를 상위어(Hypernym)이라고 부릅니다. 즉, 위와 같은 개념 간의 포함관계를 예로 들자면, 포도의 상위어는 과일이 되고, 과일의 하위어에는 포도가 들어가겠죠. 상위어, 하위어 관계를 따지는 것은 결국 그 단어가 가리키는 개념 간의 관계를 파악하는 것이고, 이는 인간이 언어로 표현하는, 세상에 대한 ..

그냥 공부 2018. 10. 10. 02:04

[C++] 템플릿 함수를 이용해 STL 컨테이너를 직렬화해보자

프로그래밍을 하다보면 클래스나 구조체의 내용물을 그대로 파일에 저장하거나, 파일로부터 읽어와야 할 경우가 생깁니다. 구조가 있는 객체의 내용물을 바이트 배열로 저장하는 것을 직렬화(Serialization)이라고 하고, 반대로 바이트 배열로부터 내용물을 읽어와 객체에 채우는 것을 역직렬화(Deserialization)라고 합니다.Java나 C#과 같은 여러 언어에서는 직렬화 기능을 언어차원의 라이브러리로 지원해주는 경우가 많습니다. 따라서 클래스나 구조체의 내용물을 저장하는데에 어려움을 겪지 않죠. 하지만... 당연하게도 C++에서는 언어 자체적으로 그런 기능을 지원하진 않습니다. 직렬화가 하고싶으시다면 직접 짜시면 됩니다. (어떻게 보면 그게 C++의 매력이라고 할수도 있겠죠...?) 사실 이런 꼭 필..

프로그래밍/테크닉 2018. 10. 5. 18:10

AdaGram : 동음이의어를 구분하는 Word2Vec

2013년 등장한 Word2Vec은 강력한 단어 임베딩 기법입니다. 의미적으로 유사한 단어를 벡터 공간 상에 가까운 위치에 배치시키도록 학습하는 신경망을 이용해서 성공적으로 단어를 임베딩시켰습니다. 유사한 단어가 유사한 위치에 배치된다는 특징 덕분에 여러 자연언어처리 기법에서 이미 널리 쓰이고 있는데요, 사실 이 기법에는 한가지 약점이 있습니다. 오직 단어의 형태로만 단어를 구분하기 때문에 형태가 같아도 의미가 전혀 다른 단어를 구분해내지 못한다는 것입니다. 예를 들어 한국어 단어 '밤'을 생각해봅시다. 해 진 이후의 시간대를 뜻하는 '밤'과 견과류의 일종인 '밤'이 같은 형태로 적히기 때문에 Word2Vec은 학습과정에서 두 단어를 동일한 단어로 간주하고 처리합니다. 실제로 두 단어는 다른 단어인데 말..

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

Word2Vec을 이용한 한국어 관련어 네트워크 보기

Word2Vec이 단어 간의 의미론적인 관계를 잘 잡아준다는 것은 이미 널리 알려진 사실이지요. 신기해서 작년에 실제로 실험도 돌려보았었구요 (https://bab2min.tistory.com/545), 당시에는 세종 말뭉치의 데이터만 가지고 Word2Vec을 학습했었는데, 꽤나 그럴싸한 결과가 나와서 놀랐던게 기억에 남네요. 한동안 잊고 지냈었는데, 최근 Kiwi 0.5 버전을 준비하면서 코퍼스에서 사전에 등록되지 않은 단어를 발견하는 기법에 대해서 알게 되었고, 이가 적용된 Kiwi 0.5버전을 이용해 실제로 나무위키의 수 몇 백만건의 문헌을 형태소 분석을 진행하여 약 20여만건의 단어를 추출해보았습니다. 하는 김에 이 단어들을 가지고 Word2Vec을 돌려보았는데요(gensim 라이브러리를 사용했고..

프로그래밍/NLP 2018. 9. 17. 17:28

[Python] 디리클레 분포 추정하기

토픽 모델링 이론들을 공부하다 보니 종종 깁스 샘플링 이후에 디리클레 분포를 추정하는 방법을 사용하는걸 봤었는데, 매번 봐도 잘 이해도 못하고 계속 까먹길래 아예 까먹지 포스팅을 하나 파둡니다. 디리클레 분포(Dirichlet Distribution)은 다항 분포에 대한 분포라는 건 잘 알고 계실 겁니다. 예를 들어 토픽 모델링과 같은 상황에서, 각 주제는 단어들에 대한 다항 확률 분포이므로, 주제의 분포는 다항 분포에 대한 분포, 즉 디리클레 분포가 되죠. 디리클레 분포에서 임의의 다항 (확률) 분포를 뽑아낼 수 있고, 다항 분포에서는 n지선다에서 하나를 뽑아낼 수 있습니다. 이런 유용성 때문에 토픽 모델링에서 디리클레 분포는 널리 쓰입니다. 디리클레 분포는 하이퍼 파라미터를 하나 가집니다. 흔히 α라..

그냥 공부 2018. 9. 3. 17:59

코퍼스 내에서 알려지지 않은 새로운 명사(미등록어)를 추출하기

한국어에 대한 자연언어처리를 실시할 때 맞닥뜨리는 가장 큰 문제는 새로운 단어를 나타나면 분석기가 얘를 파악하지 못하고 제멋대로 분해해버린다는 겁니다. 고유명사나 외래어가 많이 포함된 텍스트를 분석할때 이런 문제가 크게 두드러지는 데요, 예를 들면 다음과 같은 문제인거죠. 한국어 형태소 분석기를 계속 최신으로 업데이트하며 새로운 고유명사들을 추가해준다고 해도 새로운 단어가 만들어지는 속도를 따라잡을 수는 없기 때문에 이는 큰 문제입니다. 위의 예시를 가져온 연구에서는 형태소 분석 후 후처리로 PMI를 이용해 이 값들이 높은 형태소 쌍을 다시 묶어주는 방법으로 이 문제를 해결하고자 했습니다. 저런 문제로 계속 고민을 하던 중에 최근 https://github.com/lovit/soynlp 에서 간단한 통계..

그냥 공부 2018. 9. 2. 15:48

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

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

댓글

태그

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

방문자

오늘
어제
전체

페이징

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

티스토리툴바