Code Monkey home page Code Monkey logo

unification_isnt_it's People

Contributors

yenoss avatar

unification_isnt_it's Issues

1.5 크롤링한 데이터 필터링하기(word2Vec)

크롤링한 데이터 필터링

문제 0. 데이터의 문제

  • 통일과 같은 단어는 그 단어 특성상 다양한 용도로 사용된다.
  • 하여 통일과 관련되지 않은 많은 글들이 같이 검색된다.
  • 어떻게 통일과 관련된 글만 추출해 낼 수 있을까?

해결법

  • word2Vector를 이용하여 통일과 연관된 단어들을 찾고 남북통일 관련 유사도가 높은 단어들이 존재하는 글들을 걸러낸다.
  • word2Vector에서 나온 단어가 통일과의 유사도가 0.5 이상이면 연관, 0보다 작으면 안연관 그 사이면 무관 으로 판단하여 각 트윗메시지 형태소분석 한것에 스코어를 매겨 해당 트윗이 유효한지(통일과연관되어있는지) 확인한다.

참고 링크들

** 그래프그리기
https://machinelearningmastery.com/develop-word-embeddings-python-gensim/
** word2Vec
https://ko.wikipedia.org/wiki/코사인_유사도
https://ratsgo.github.io/natural%20language%20processing/2017/03/08/word2vec/

2. 긍정부정문 구분하기

긍정부정문 구분하기

어떻게?

  • 긍정 단어 부정 단어 사전을 이용하여 긍정문장 부정문장을 구분해낸다.
  1. konlpy로 형태소 분석
  2. 분석된 단어의 긍정 부정 contain여부 확인
  3. 최종 긍정 부정 갯수 비교를 통해 문장 판별

문제 1. 긍정 부정 갯수의 정확한 값 찾기

  • 긍정단어 갯수 - 부정단어 갯수 의 값을 계산하였을때 어느정도가 적당한가 ?
  • text마다 그 값이 달라질 수 있다.
  • 일종의 긍정 부정의 분류 기준을 정하는 것인대 그 기준값인 c를 어떻게 찾아낼것인가? 가 관건이다.
    ==> 너무 애매하다. 정확한 결과를 찾기 어렵다.

해결 GoogleCloud Natural Language를 이용하자

  • https://cloud.google.com/natural-language/
  • google natural Language가 생각보다 잘 분석해준다. 내가 수집한 글들은 모두 통일관련 데이터임으로 긍정 부정 sentiment만 잘 나눠주면 의미가 있을 것이다.

1. 트위터 데이터 가져오기

트위터 데이터 가져오기

목적 & 어떻게?

  • 트위터에서 특정 단어에 따른 사람들 멘션을 가져오고 싶다.
  • 웹에서 데이터를 가져오는 방법은 여러가지가 있다.
  • 나에게 가장 간편하고 알맞는 것을 선택하면된다.

1. Twitter Developer API 이용하기

  • Twiter Developer에 내 Service를 등록하고 Twitter API를 직접 호출하는 방법이 있다.
특징
  • standard, premium등의 급별로 가져올 수 있는 데이터가 다른등의 각기 다른 혜택이 있다. (standard는 7일치 데이터만, premium 30일치까지 등)
  • 등급에 따라 돈을 내야한다.
  • 개발자 서비스 등록 과정이 번거롭다.(서비스 상세설명 300자 이상, 리뷰를 거쳐 승인이되야 그때부터 트위터 API 사용가능 등)
  • 웹 통신에 대한 기본적인 이해가 필요하다.

2. 등록하지 않고 Twitter API 따기

  • 웹 사이트의 개발자 모드의 네트워크 상태 혹은 Charles,WireShark와 같은 Web Proxy Debugging툴을 이용하여 콜되는 API를 분석하여 경우에 알맞는 데이터를 가져온다.
  • 일반적으로 인증(로그인)이 필요한경우 다음과 같은 순서를 거쳐 원하는 데이터를 얻는다.
    • 로그인 요청 => Authorization token 획득 => token으로 데이터 API콜
특징
  • 개발자 등록등 번거로운 과정을 거치지 않아도 된다.
  • 웹 통신에 대한 기본적인 이해가 필요하다.
  • 특정 security등에 의해 응답 정보가 막혀있을 수 있다. (twitter... ㅂㄷㅂㄷ)

3. Crawling 하기

  • 실제 유저가 웹사이트에 접속한것과 같은 환경에서 html파일에서 원하는 데이터를 긁어온다.
특징
  • 웬만하면 원하는 데이터를 대부분 긁어올 수 있다.
  • 크롤링 과정이 손이 많이 간다.
  • api방식보다 수정에 민감하다. html코드의 변경등이 있다면 html 파싱작업을 다시 작업해줘야 한다.

결론

  • 3번 선택.
  • Developer Api는 확장에 돈이 드니.. 불가..
  • 기존 API 따기는 Twitter Security에 의해 쉽지 않음..
  • 단순 크롤리이 가장 나을듯.. 속도는 느리겠지만

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.