나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

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

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

분류 전체보기

  • [Python] 임의의 웹 페이지에서 텍스트를 추출하기

    2018.11.04 by ∫2tdt=t²+c

  • [Python] 호환용 한자를 통합 한자로 변환하기

    2018.10.28 by ∫2tdt=t²+c

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

    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] 임의의 웹 페이지에서 텍스트를 추출하기

텍스트 마이닝을 하는 데에 있어 텍스트 데이터를 수집하는것은 아주 중요합니다. 아무리 휘황찬란한 텍스트 분석 기술이 있어도 분석할 텍스트가 없다면 쓸모가 없으니깐요. 과거였다면 대량의 텍스트 데이터를 구하는게 어려운 작업이었겠지만, 현재는 다행히도 웹으로부터 (정제되지는 않았지만) 수많은 텍스트를 구할 수 있습니다. 웹 페이지에서 텍스트를 추출하는 작업은 의외로 간단합니다. 웹 페이지들은 HTML이라는 마크업 랭귀지로 구성되어 있고, 여기에서 필요한 텍스트만을 뽑아오는건 HTML 파서나 정규표현식 등을 이용해 쉽게 이뤄질 수 있기 때문입니다. 다만 문제는 우리가 보는 웹 페이지에는 실제 알맹이보다 다양한 껍데기들이 많다는 것입니다. 위 사진은 한 신문사의 기사 페이지입니다. 이 페이지의 알맹이는 기사 내..

프로그래밍 2018. 11. 4. 15:34

[Python] 호환용 한자를 통합 한자로 변환하기

한때 국내를 평정했던 한국어 문자 인코딩 규격인 KS X 1001에는 정말 많고 많은 문제가 있습니다... 다행히도 유니코드의 등장으로 레거시 시스템을 제외하고는 대부분 문자 인코딩 셋이 유니코드로 대통일되고 있는 상황이지만, 아직도 그 잔재가 끼치는 악영향은 이루 말할 수 없죠.. 대표적인 문제 중 하나는 같은 한자인데 발음이 다르다는 이유로 문자 코드에 중복 배당을 하여, 모양은 같지만 코드 상으로는 다른 글자가 수없이 생겨났다는 겁니다. 이 문제의 자세한 정보에 대해서는 나무위키 문서를 참조하시면 좋을 듯 합니다. 현재 유니코드에는 통합 한자와 호환용 한자라는 두 종류의 한자가 배당되어 있습니다. 통합 한자는 말 그대로 모양이 같은(거의 유사한) 한자들은 같은 코드로 합친 영역을 말하며, 호환용 한..

프로그래밍 2018. 10. 28. 23:10

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

'포도 주스'라고 검색한다면 '포도'가 포함된 문헌과 '주스'가 포함된 문헌의 교집합을 보여줄수도 있지만(이는 고전적인 불리언 검색 모형에서의 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

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

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

댓글

태그

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

방문자

오늘
어제
전체

페이징

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

티스토리툴바