study/프로그래밍

[python] konlpy 활용 기사내용속 단어 빈도수 확인하기

밥짓는사나이- 2020. 7. 9. 15:32
728x90

저번 포스팅에서는 news title과 link를 feedparser로 가져오는 내용을 함수로 만들고, Article을 사용하여 링크를 통해 기사제목과 기사내용 전체를 긁어왔습니다.

    이번포스팅에서는
  1. 지난번에 진행된 내용을 함수로 만들어주고
  2. konlpy(한국어자연어처리) 패키지를 사용하여 한글을 분석해보고자합니다.

konlpy(코엔엘파이)는 https://konlpy-ko.readthedocs.io/ko/v0.4.3/ 사이트를 참고하시면 사용법을 익힐수 있습니다.

    목표
  1. Artilcle을 사용하여 링크에서 기사내용을 가져오는 함수만들기
  2. konlpy(한국어자연어처리) 패키지를 사용하여 기사내용에 나온 명사와 명사의 빈도 파악하기
post3 (1)
  • feedparser 와 newspaper3k 인스톨
In [1]:
!pip install feedparser
!pip install newspaper3k
Requirement already satisfied: feedparser in c:\programdata\anaconda3\lib\site-packages (5.2.1)
Requirement already satisfied: newspaper3k in c:\programdata\anaconda3\lib\site-packages (0.2.8)
Requirement already satisfied: feedparser>=5.2.1 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (5.2.1)
Requirement already satisfied: feedfinder2>=0.0.4 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (0.0.4)
Requirement already satisfied: beautifulsoup4>=4.4.1 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (4.6.0)
Requirement already satisfied: nltk>=3.2.1 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (3.4.5)
Requirement already satisfied: lxml>=3.6.0 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (4.5.0)
Requirement already satisfied: Pillow>=3.3.0 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (7.0.0)
Requirement already satisfied: jieba3k>=0.35.1 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (0.35.1)
Requirement already satisfied: cssselect>=0.9.2 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (1.1.0)
Requirement already satisfied: tldextract>=2.0.1 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (2.2.2)
Requirement already satisfied: python-dateutil>=2.5.3 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (2.8.1)
Requirement already satisfied: PyYAML>=3.11 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (5.3)
Requirement already satisfied: tinysegmenter==0.3 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (0.3)
Requirement already satisfied: requests>=2.10.0 in c:\programdata\anaconda3\lib\site-packages (from newspaper3k) (2.22.0)
Requirement already satisfied: six in c:\programdata\anaconda3\lib\site-packages (from feedfinder2>=0.0.4->newspaper3k) (1.14.0)
Requirement already satisfied: idna in c:\programdata\anaconda3\lib\site-packages (from tldextract>=2.0.1->newspaper3k) (2.8)
Requirement already satisfied: requests-file>=1.4 in c:\programdata\anaconda3\lib\site-packages (from tldextract>=2.0.1->newspaper3k) (1.5.1)
Requirement already satisfied: setuptools in c:\programdata\anaconda3\lib\site-packages (from tldextract>=2.0.1->newspaper3k) (45.2.0.post20200210)
Requirement already satisfied: certifi>=2017.4.17 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.10.0->newspaper3k) (2019.11.28)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.10.0->newspaper3k) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.10.0->newspaper3k) (1.25.8)

*

In [2]:
import feedparser
from newspaper import Article
In [3]:
#검색할 뉴스페이지
rss_url = ["http://rss.etnews.com/Section901.xml",
        # "http://rss.etnews.com/Section902.xml",
        # "http://rss.etnews.com/Section903.xml",
        # "http://biz.heraldm.com/rss/010000000000.xml",
        # "http://media.daum.net/rss/today/primary/all/rss2.xml",
        None]
In [4]:
#rss_urls를 받아 title과 link를 담아둔 rss_dic를 반환한다.

def news_rss(rss_url):
    rss_dic = []
    for rss in rss_url:
        if rss == None:
            break
        else:
            print(rss,"parsing...")
            parse_rss =  feedparser.parse(rss)
            print(rss,"complete..")
            for p in parse_rss.entries:
                rss_dic.append({'title':p.title, 'link':p.link})
    return rss_dic

#news의 url을 입력받아, 제목과 기사내용을 반환하는 함수 crawl_news작성
def crawl_news(url, language = 'ko'):
    #Article 함수를 사용하여 받아온 url을 parsing하여 news_article에 넣기
    news_article = Article(url,languages=language)
    news_article.download()
    news_article.parse()
    #news_article의 title과 text를 반환
    return news_article.title, news_article.text


def main():
    print('<<<parsing news titles>>>')
    news_list = news_rss(rss_url)
    print('<<<[completed] parsing news titles>>>')
    print(news_list)

    #crawl_news함수를 활용하여 text/ title을 가져와 넣어주기
    print('<<<crawlling news>>>')
    for news in news_list:
        title, text = crawl_news(news['link'])
        news['title'] = title
        news['text'] =text
    print('<<<[completed]crawlling news>>>')
    print(news_list[0]['text'][:20]) # 내용이 길기때문에 리스트에 있는 0번째 기사의 내용중 20자만 프린트해보자

if __name__ == "__main__":
    main()
<<<parsing news titles>>>
http://rss.etnews.com/Section901.xml parsing...
http://rss.etnews.com/Section901.xml complete..
<<<[completed] parsing news titles>>>
[{'title': '통일부 장관에 이인영…국정원장은 박지원', 'link': 'https://www.etnews.com/20200703000305'}, {'title': "SK텔링크, 태평양 횡단 네트워크 업그레이드… 시에나 '어댑티브 IP 솔루션' 도입", 'link': 'https://www.etnews.com/20200703000259'}, {'title': '김경만 의원, 온라인 유통시장 공정화 법안 대표발의…"불공정거래 행위 근절"', 'link': 'https://www.etnews.com/20200703000255'}, {'title': '"日 수출규제 1년, 공급망 확실한 진정"…정부, \'소부장 2.0\'으로 자립 가속', 'link': 'https://www.etnews.com/20200703000254'}, {'title': '1분 만에 코로나19 진단 플랫폼 나온다', 'link': 'https://www.etnews.com/20200703000237'}, {'title': '내년 1월부터 전원코드 싹 바꿔야', 'link': 'https://www.etnews.com/20200703000236'}, {'title': "한화생명, 미래 전략 방향 '디지털'로 낙점…디지털 전환·플랫폼 비즈니스 모델 구축 추진", 'link': 'https://www.etnews.com/20200703000229'}, {'title': '에이프로 "이차전지 활성화 공정기술로 에너지 솔루션 기업 도약"', 'link': 'https://www.etnews.com/20200703000217'}, {'title': '미오내츄럴, 손소독제 2종 美 FDA 등록', 'link': 'https://www.etnews.com/20200703000208'}, {'title': 'LG생활건강 실적 연속 신기록 행진, 60분기에서 멈추나', 'link': 'https://www.etnews.com/20200703000207'}, {'title': "테슬라, 한 달간 2827대 팔았다...'韓 역대 최대 실적'", 'link': 'https://www.etnews.com/20200703000170'}, {'title': "삼성SDS, 2900억원 산업銀 'IT프로젝트' 따내", 'link': 'https://www.etnews.com/20200703000155'}, {'title': "['2020'중소기업우수제품]아이와나테크 '맘 공기청정기'", 'link': 'https://www.etnews.com/20200703000135'}, {'title': "['2020'중소기업우수제품]원삼메디 '슈퍼맥스24 종합비타민'", 'link': 'https://www.etnews.com/20200703000132'}, {'title': '[대한민국 과학자]양승학 호남대 전기공학과 교수 “철저한 산·학 협력”', 'link': 'https://www.etnews.com/20200703000129'}, {'title': "코로나 비켜간 수입차 벌써 '13만대' 육박…전년比 17.3%↑", 'link': 'https://www.etnews.com/20200703000106'}, {'title': '통합당 기재차관 출신 3인방, "3차 추경 심사과정 용납 못해"', 'link': 'https://www.etnews.com/20200703000099'}, {'title': '김태년 "7월 국회서 종부세법 등 후속법안 처리…임시회 요구서 제출"', 'link': 'https://www.etnews.com/20200703000092'}, {'title': '한국MS, 한국정보화진흥원과 사회적 가치 실현 위한 AI 협력', 'link': 'https://www.etnews.com/20200703000091'}, {'title': '[국제]남아공 통신사 MTN, 화웨이 5G 장비 선택', 'link': 'https://www.etnews.com/20200703000090'}, {'title': '"세탁기+건조기" LG워시타워도 에너지효율 1등급', 'link': 'https://www.etnews.com/20200703000087'}, {'title': '중소기업 대출만기 조치 재연장 여부 9월전에 결정', 'link': 'https://www.etnews.com/20200703000063'}, {'title': '중진공, 재해 피해 중소벤처기업 신속 지원체계 구축', 'link': 'https://www.etnews.com/20200703000051'}, {'title': "폭스바겐 티구안, 韓 누적 판매 '5만대' 돌파", 'link': 'https://www.etnews.com/20200703000037'}, {'title': "과총 광주전남연합회-KBSI, '자기응용과학 기술포럼' 공동 개최", 'link': 'https://www.etnews.com/20200703000033'}, {'title': '두빛나래소프트-딜리온그룹, QR기반 서비스 플랫폼 업무협약', 'link': 'https://www.etnews.com/20200703000024'}, {'title': "전자서명법 전부 개정안 통과…사설인증시장 대응책 마련 `팁' 제시", 'link': 'https://www.etnews.com/20200703000001'}, {'title': '반도체 집적도 1000배 향상 가능한 원리 제시…이준희 UNIST 교수팀', 'link': 'https://www.etnews.com/20200702000253'}, {'title': '디지털 뉴딜, 하반기 일자리 창출·산업 활력 만든다…공공솔루션위크 막올라', 'link': 'https://www.etnews.com/20200702000249'}, {'title': '국가융합망, 사업 참여 조건 논란...GNS 만들고 활용 안하는 행안부', 'link': 'https://www.etnews.com/20200702000194'}]
<<<crawlling news>>>
<<<[completed]crawlling news>>>
국가안보실장은 서훈

외교안보 특보에

한글 문장 분석하기

  • konlpy패키지의 okt 함수를 활용하여 주요명사들을 추출

https://konlpy.org/en/latest/api/konlpy.tag/

In [5]:
!pip install konlpy
Requirement already satisfied: konlpy in c:\programdata\anaconda3\lib\site-packages (0.5.2)
Requirement already satisfied: tweepy>=3.7.0 in c:\programdata\anaconda3\lib\site-packages (from konlpy) (3.8.0)
Requirement already satisfied: JPype1>=0.7.0 in c:\programdata\anaconda3\lib\site-packages (from konlpy) (0.7.2)
Requirement already satisfied: colorama in c:\programdata\anaconda3\lib\site-packages (from konlpy) (0.4.3)
Requirement already satisfied: lxml>=4.1.0 in c:\programdata\anaconda3\lib\site-packages (from konlpy) (4.5.0)
Requirement already satisfied: numpy>=1.6 in c:\programdata\anaconda3\lib\site-packages (from konlpy) (1.18.1)
Requirement already satisfied: beautifulsoup4==4.6.0 in c:\programdata\anaconda3\lib\site-packages (from konlpy) (4.6.0)
Requirement already satisfied: six>=1.10.0 in c:\programdata\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (1.14.0)
Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\programdata\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (1.3.0)
Requirement already satisfied: PySocks>=1.5.7 in c:\programdata\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (1.7.1)
Requirement already satisfied: requests>=2.11.1 in c:\programdata\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (2.22.0)
Requirement already satisfied: oauthlib>=3.0.0 in c:\programdata\anaconda3\lib\site-packages (from requests-oauthlib>=0.7.0->tweepy>=3.7.0->konlpy) (3.1.0)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.11.1->tweepy>=3.7.0->konlpy) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.11.1->tweepy>=3.7.0->konlpy) (1.25.8)
Requirement already satisfied: idna<2.9,>=2.5 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.11.1->tweepy>=3.7.0->konlpy) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in c:\programdata\anaconda3\lib\site-packages (from requests>=2.11.1->tweepy>=3.7.0->konlpy) (2019.11.28)
In [6]:
from konlpy.tag import Okt
from collections import Counter
  • Okt?

    Okt.nouns() - 단어 분리후 명사만 반환
    Okt.pos() - 단어를 분리후 단어와 품사를 반환

In [7]:
splt = Okt()
#기사내용중 한문장으로 테스트
sentence = """SK텔링크가 태평양 횡단 경로에 최초로 패킷 기반 전송 네트워크를 구축, 세계적 통신사업자로 나아가고 있다.
SK텔링크는 지난해 출시한 시에나(Ciena) 어댑티브 IP 솔루션을 도입해 태평양 횡단 해저 네트워크를 업그레이드하고 차별화된 고객경험을 제공하는 플랫폼을 구축한다고 5일 밝혔다.
'글로벌 IT 선도 기업'을 추구하는 SK텔링크는 세계 각국 고객에게 통신 서비스를 편리하고 안전하게 제공할 수 있는 환경을 조성하고 있다. 서울, 홍콩, LA를 연결하는 자사 해저 네트워크에 시에나 어댑티브 IP 솔루션을 도입해 통합형 패킷 네트워크를 구축, 차세대 IP 기반 서비스로 나아가는 발판을 마련할 계획이다.
회사는 시에나 어댑티브 IP 솔루션 기능 중 하나인 시에나 6500 패킷전송시스템(PTS)을 운용해 기존 시분할 다중 방식 네트워크를 지원하고 장비운영 규모와 전력소비를 줄인다. 또 시에나 관리·제어·계획(MCP) 도메인 컨트롤러로 신속한 네트워크·서비스 관리를 지원해 SK텔링크의 패킷 네트워크 수명주기 운영을 자동화한다.
SK텔링크는 이를 계기로 새로운 수준의 확장성, 유연성, 프로그래밍 가능성을 달성해 고속 인터넷·클라우드 서비스를 효율적으로 전달할 수 있을 것으로 기대하고 있다.
이정열 SK텔링크 ICT인프라본부장은 “최근 급속도로 빨라지고 있는 고객의 데이터 소비 수요에 대응하기 위해 시에나 솔루션으로 태평양 횡단 경로에 패킷기반 전송 네트워크 중 하나를 처음 구축했다”면서 “'미래를 생각하는 세계적 통신사업자'가 되고자 하는 SK텔링크의 비전을 실현하고 '세계 최고 통신 서비스를 제공하겠다'는 고객과 약속을 실현할 수 있을 것”이라고 말했다.
최근 5세대(G) 이동통신, 사물인터넷(IoT), 인공지능(AI) 등 디지털 혁명으로 더 간단하고 효과적 방식으로 네트워크를 확장할 수 있도록 IP 네트워크를 재구성해 달라는 고객 수요가 급증하고 있다. 이에 시에나는 지난해 어댑티브 IP 솔루션을 출시, 끊임없이 변화하는 최종 사용자 요구에 대응 가능한 어댑티드 네트워크 구축을 돕는 솔루션을 고객에게 제공하고 있다.
김인성 시에나 한국지사장은 “한국 정부가 포스트 코로나 시대를 대비해 디지털 뉴딜 카드를 꺼내들었고 SK텔링크 또한 한국의 새로운 디지털 성장에 대비하고 있다”면서 “시에나의 패킷 솔루션은 변화하는 고객 수요에 실시간 대응할 수 있는 네트워크 환경을 조성하기 위한 기반이 될 것”이라고 전했다.
""" 
noun = splt.nouns(sentence)
pos = splt.pos(sentence)

print("<<<noun>>>",noun)
print("<<<pos>>>",pos)
<<<noun>>> ['텔링크', '태평양', '횡단', '경로', '최초', '패킷', '기반', '전송', '네트워크', '구축', '세계', '통신사', '업자', '텔링크', '지난해', '출시', '시에나', '어댑티브', '솔루션', '도입', '태평양', '횡단', '해저', '네트워크', '업그레이드', '차별', '고객', '경험', '제공', '플랫폼', '구축', '글로벌', '선도', '기업', '추구', '텔링크', '세계', '각국', '고객', '통신', '서비스', '제공', '수', '환경', '조성', '서울', '홍콩', '를', '자사', '해저', '네트워크', '시에나', '어댑티브', '솔루션', '도입', '통합', '패킷', '네트워크', '구축', '차세대', '기반', '서비스', '발판', '마련', '계획', '회사', '시에나', '어댑티브', '솔루션', '기능', '중', '하나', '시에나', '패킷', '전송', '시스템', '운용', '기존', '시분할', '다중', '방식', '네트워크', '지원', '장비', '운영', '규모', '전력', '소비', '또', '시에나', '관리', '제어', '계획', '도메인', '컨트롤러', '네트워크', '서비스', '관리', '지원', '텔링크', '패킷', '네트워크', '수명', '주기', '운영', '자동', '텔링크', '계기', '수준', '확장', '유연성', '프로그래밍', '가능성', '달성', '고속', '인터넷', '클라우드', '서비스', '효율', '전달', '수', '것', '이정열', '텔', '링크', '인프라', '본부장', '최근', '급속도', '고객', '데이터', '소비', '수요', '대응', '위해', '시에나', '솔루션', '태평양', '횡단', '경로', '패킷', '기반', '전송', '네트워크', '중', '하나', '처음', '구축', '면서', '미래', '생각', '세계', '통신사', '업자', '텔링크', '실현', '세계', '최고', '통신', '서비스', '제공', '고객', '약속', '실현', '수', '것', '말', '최근', '세대', '이동통신', '사물인터넷', '인공', '지능', '등', '디지털', '혁명', '더', '효과', '방식', '네트워크', '확장', '수', '네트워크', '성해', '달라', '고객', '수요', '급증', '이', '시에나', '지난해', '어댑티브', '솔루션', '출시', '변화', '최종', '사용자', '요구', '대응', '어댑티드', '네트워크', '구축', '솔루션', '고객', '제공', '김인성', '시에나', '한국', '사장', '한국', '정부', '포스트', '코로나', '시대', '대비', '디지털', '뉴딜', '카드', '텔', '링크', '또한', '한국', '디지털', '성장', '대비', '면서', '시에나', '패킷', '솔루션', '변화', '고객', '수요', '실시간', '대응', '수', '네트워크', '환경', '조성', '위', '기반', '것', '전']
<<<pos>>> [('SK', 'Alpha'), ('텔링크', 'Noun'), ('가', 'Josa'), ('태평양', 'Noun'), ('횡단', 'Noun'), ('경로', 'Noun'), ('에', 'Josa'), ('최초', 'Noun'), ('로', 'Josa'), ('패킷', 'Noun'), ('기반', 'Noun'), ('전송', 'Noun'), ('네트워크', 'Noun'), ('를', 'Josa'), ('구축', 'Noun'), (',', 'Punctuation'), ('세계', 'Noun'), ('적', 'Suffix'), ('통신사', 'Noun'), ('업자', 'Noun'), ('로', 'Josa'), ('나아가고', 'Verb'), ('있다', 'Adjective'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('SK', 'Alpha'), ('텔링크', 'Noun'), ('는', 'Josa'), ('지난해', 'Noun'), ('출시', 'Noun'), ('한', 'Josa'), ('시에나', 'Noun'), ('(', 'Punctuation'), ('Ciena', 'Alpha'), (')', 'Punctuation'), ('어댑티브', 'Noun'), ('IP', 'Alpha'), ('솔루션', 'Noun'), ('을', 'Josa'), ('도입', 'Noun'), ('해', 'Verb'), ('태평양', 'Noun'), ('횡단', 'Noun'), ('해저', 'Noun'), ('네트워크', 'Noun'), ('를', 'Josa'), ('업그레이드', 'Noun'), ('하고', 'Josa'), ('차별', 'Noun'), ('화', 'Suffix'), ('된', 'Verb'), ('고객', 'Noun'), ('경험', 'Noun'), ('을', 'Josa'), ('제공', 'Noun'), ('하는', 'Verb'), ('플랫폼', 'Noun'), ('을', 'Josa'), ('구축', 'Noun'), ('한다고', 'Verb'), ('5일', 'Number'), ('밝혔다', 'Verb'), ('.', 'Punctuation'), ('\n', 'Foreign'), ("'", 'Punctuation'), ('글로벌', 'Noun'), ('IT', 'Alpha'), ('선도', 'Noun'), ('기업', 'Noun'), ("'", 'Punctuation'), ('을', 'Josa'), ('추구', 'Noun'), ('하는', 'Verb'), ('SK', 'Alpha'), ('텔링크', 'Noun'), ('는', 'Josa'), ('세계', 'Noun'), ('각국', 'Noun'), ('고객', 'Noun'), ('에게', 'Josa'), ('통신', 'Noun'), ('서비스', 'Noun'), ('를', 'Josa'), ('편리하고', 'Adjective'), ('안전하게', 'Adjective'), ('제공', 'Noun'), ('할', 'Verb'), ('수', 'Noun'), ('있는', 'Adjective'), ('환경', 'Noun'), ('을', 'Josa'), ('조성', 'Noun'), ('하고', 'Josa'), ('있다', 'Adjective'), ('.', 'Punctuation'), ('서울', 'Noun'), (',', 'Punctuation'), ('홍콩', 'Noun'), (',', 'Punctuation'), ('LA', 'Alpha'), ('를', 'Noun'), ('연결하는', 'Adjective'), ('자사', 'Noun'), ('해저', 'Noun'), ('네트워크', 'Noun'), ('에', 'Josa'), ('시에나', 'Noun'), ('어댑티브', 'Noun'), ('IP', 'Alpha'), ('솔루션', 'Noun'), ('을', 'Josa'), ('도입', 'Noun'), ('해', 'Verb'), ('통합', 'Noun'), ('형', 'Suffix'), ('패킷', 'Noun'), ('네트워크', 'Noun'), ('를', 'Josa'), ('구축', 'Noun'), (',', 'Punctuation'), ('차세대', 'Noun'), ('IP', 'Alpha'), ('기반', 'Noun'), ('서비스', 'Noun'), ('로', 'Josa'), ('나아가는', 'Verb'), ('발판', 'Noun'), ('을', 'Josa'), ('마련', 'Noun'), ('할', 'Verb'), ('계획', 'Noun'), ('이다', 'Josa'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('회사', 'Noun'), ('는', 'Josa'), ('시에나', 'Noun'), ('어댑티브', 'Noun'), ('IP', 'Alpha'), ('솔루션', 'Noun'), ('기능', 'Noun'), ('중', 'Noun'), ('하나', 'Noun'), ('인', 'Josa'), ('시에나', 'Noun'), ('6500', 'Number'), ('패킷', 'Noun'), ('전송', 'Noun'), ('시스템', 'Noun'), ('(', 'Punctuation'), ('PTS', 'Alpha'), (')', 'Punctuation'), ('을', 'Josa'), ('운용', 'Noun'), ('해', 'Verb'), ('기존', 'Noun'), ('시분할', 'Noun'), ('다중', 'Noun'), ('방식', 'Noun'), ('네트워크', 'Noun'), ('를', 'Josa'), ('지원', 'Noun'), ('하고', 'Josa'), ('장비', 'Noun'), ('운영', 'Noun'), ('규모', 'Noun'), ('와', 'Josa'), ('전력', 'Noun'), ('소비', 'Noun'), ('를', 'Josa'), ('줄인다', 'Verb'), ('.', 'Punctuation'), ('또', 'Noun'), ('시에나', 'Noun'), ('관리', 'Noun'), ('·', 'Punctuation'), ('제어', 'Noun'), ('·', 'Punctuation'), ('계획', 'Noun'), ('(', 'Punctuation'), ('MCP', 'Alpha'), (')', 'Punctuation'), ('도메인', 'Noun'), ('컨트롤러', 'Noun'), ('로', 'Josa'), ('신속한', 'Adjective'), ('네트워크', 'Noun'), ('·', 'Punctuation'), ('서비스', 'Noun'), ('관리', 'Noun'), ('를', 'Josa'), ('지원', 'Noun'), ('해', 'Verb'), ('SK', 'Alpha'), ('텔링크', 'Noun'), ('의', 'Josa'), ('패킷', 'Noun'), ('네트워크', 'Noun'), ('수명', 'Noun'), ('주기', 'Noun'), ('운영', 'Noun'), ('을', 'Josa'), ('자동', 'Noun'), ('화한다', 'Adjective'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('SK', 'Alpha'), ('텔링크', 'Noun'), ('는', 'Josa'), ('이를', 'Verb'), ('계기', 'Noun'), ('로', 'Josa'), ('새로운', 'Adjective'), ('수준', 'Noun'), ('의', 'Josa'), ('확장', 'Noun'), ('성', 'Suffix'), (',', 'Punctuation'), ('유연성', 'Noun'), (',', 'Punctuation'), ('프로그래밍', 'Noun'), ('가능성', 'Noun'), ('을', 'Josa'), ('달성', 'Noun'), ('해', 'Verb'), ('고속', 'Noun'), ('인터넷', 'Noun'), ('·', 'Punctuation'), ('클라우드', 'Noun'), ('서비스', 'Noun'), ('를', 'Josa'), ('효율', 'Noun'), ('적', 'Suffix'), ('으로', 'Josa'), ('전달', 'Noun'), ('할', 'Verb'), ('수', 'Noun'), ('있을', 'Adjective'), ('것', 'Noun'), ('으로', 'Josa'), ('기대하고', 'Adjective'), ('있다', 'Adjective'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('이정열', 'Noun'), ('SK', 'Alpha'), ('텔', 'Noun'), ('링크', 'Noun'), ('ICT', 'Alpha'), ('인프라', 'Noun'), ('본부장', 'Noun'), ('은', 'Josa'), ('“', 'Foreign'), ('최근', 'Noun'), ('급속도', 'Noun'), ('로', 'Josa'), ('빨라지고', 'Adjective'), ('있는', 'Adjective'), ('고객', 'Noun'), ('의', 'Josa'), ('데이터', 'Noun'), ('소비', 'Noun'), ('수요', 'Noun'), ('에', 'Josa'), ('대응', 'Noun'), ('하기', 'Verb'), ('위해', 'Noun'), ('시에나', 'Noun'), ('솔루션', 'Noun'), ('으로', 'Josa'), ('태평양', 'Noun'), ('횡단', 'Noun'), ('경로', 'Noun'), ('에', 'Josa'), ('패킷', 'Noun'), ('기반', 'Noun'), ('전송', 'Noun'), ('네트워크', 'Noun'), ('중', 'Noun'), ('하나', 'Noun'), ('를', 'Josa'), ('처음', 'Noun'), ('구축', 'Noun'), ('했다', 'Verb'), ('”', 'Foreign'), ('면서', 'Noun'), ('“', 'Foreign'), ("'", 'Punctuation'), ('미래', 'Noun'), ('를', 'Josa'), ('생각', 'Noun'), ('하는', 'Verb'), ('세계', 'Noun'), ('적', 'Suffix'), ('통신사', 'Noun'), ('업자', 'Noun'), ("'", 'Punctuation'), ('가', 'Verb'), ('되고자', 'Verb'), ('하는', 'Verb'), ('SK', 'Alpha'), ('텔링크', 'Noun'), ('의', 'Josa'), ('비전을', 'Verb'), ('실현', 'Noun'), ('하고', 'Josa'), ("'", 'Punctuation'), ('세계', 'Noun'), ('최고', 'Noun'), ('통신', 'Noun'), ('서비스', 'Noun'), ('를', 'Josa'), ('제공', 'Noun'), ('하겠다', 'Verb'), ("'", 'Punctuation'), ('는', 'Verb'), ('고객', 'Noun'), ('과', 'Josa'), ('약속', 'Noun'), ('을', 'Josa'), ('실현', 'Noun'), ('할', 'Verb'), ('수', 'Noun'), ('있을', 'Adjective'), ('것', 'Noun'), ('”', 'Foreign'), ('이라고', 'Josa'), ('말', 'Noun'), ('했다', 'Verb'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('최근', 'Noun'), ('5', 'Number'), ('세대', 'Noun'), ('(', 'Punctuation'), ('G', 'Alpha'), (')', 'Punctuation'), ('이동통신', 'Noun'), (',', 'Punctuation'), ('사물인터넷', 'Noun'), ('(', 'Punctuation'), ('IoT', 'Alpha'), ('),', 'Punctuation'), ('인공', 'Noun'), ('지능', 'Noun'), ('(', 'Punctuation'), ('AI', 'Alpha'), (')', 'Punctuation'), ('등', 'Noun'), ('디지털', 'Noun'), ('혁명', 'Noun'), ('으로', 'Josa'), ('더', 'Noun'), ('간단하고', 'Adjective'), ('효과', 'Noun'), ('적', 'Suffix'), ('방식', 'Noun'), ('으로', 'Josa'), ('네트워크', 'Noun'), ('를', 'Josa'), ('확장', 'Noun'), ('할', 'Verb'), ('수', 'Noun'), ('있도록', 'Adjective'), ('IP', 'Alpha'), ('네트워크', 'Noun'), ('를', 'Josa'), ('재구', 'Verb'), ('성해', 'Noun'), ('달라', 'Noun'), ('는', 'Josa'), ('고객', 'Noun'), ('수요', 'Noun'), ('가', 'Josa'), ('급증', 'Noun'), ('하고', 'Josa'), ('있다', 'Adjective'), ('.', 'Punctuation'), ('이', 'Noun'), ('에', 'Josa'), ('시에나', 'Noun'), ('는', 'Josa'), ('지난해', 'Noun'), ('어댑티브', 'Noun'), ('IP', 'Alpha'), ('솔루션', 'Noun'), ('을', 'Josa'), ('출시', 'Noun'), (',', 'Punctuation'), ('끊임없이', 'Adjective'), ('변화', 'Noun'), ('하는', 'Verb'), ('최종', 'Noun'), ('사용자', 'Noun'), ('요구', 'Noun'), ('에', 'Josa'), ('대응', 'Noun'), ('가능한', 'Adjective'), ('어댑티드', 'Noun'), ('네트워크', 'Noun'), ('구축', 'Noun'), ('을', 'Josa'), ('돕는', 'Verb'), ('솔루션', 'Noun'), ('을', 'Josa'), ('고객', 'Noun'), ('에게', 'Josa'), ('제공', 'Noun'), ('하고', 'Josa'), ('있다', 'Adjective'), ('.', 'Punctuation'), ('\n', 'Foreign'), ('김인성', 'Noun'), ('시에나', 'Noun'), ('한국', 'Noun'), ('지', 'Josa'), ('사장', 'Noun'), ('은', 'Josa'), ('“', 'Foreign'), ('한국', 'Noun'), ('정부', 'Noun'), ('가', 'Josa'), ('포스트', 'Noun'), ('코로나', 'Noun'), ('시대', 'Noun'), ('를', 'Josa'), ('대비', 'Noun'), ('해', 'Verb'), ('디지털', 'Noun'), ('뉴딜', 'Noun'), ('카드', 'Noun'), ('를', 'Josa'), ('꺼내', 'Verb'), ('들었고', 'Verb'), ('SK', 'Alpha'), ('텔', 'Noun'), ('링크', 'Noun'), ('또한', 'Noun'), ('한국', 'Noun'), ('의', 'Josa'), ('새로운', 'Adjective'), ('디지털', 'Noun'), ('성장', 'Noun'), ('에', 'Josa'), ('대비', 'Noun'), ('하고', 'Josa'), ('있다', 'Adjective'), ('”', 'Foreign'), ('면서', 'Noun'), ('“', 'Foreign'), ('시에나', 'Noun'), ('의', 'Josa'), ('패킷', 'Noun'), ('솔루션', 'Noun'), ('은', 'Josa'), ('변화', 'Noun'), ('하는', 'Verb'), ('고객', 'Noun'), ('수요', 'Noun'), ('에', 'Josa'), ('실시간', 'Noun'), ('대응', 'Noun'), ('할', 'Verb'), ('수', 'Noun'), ('있는', 'Adjective'), ('네트워크', 'Noun'), ('환경', 'Noun'), ('을', 'Josa'), ('조성', 'Noun'), ('하기', 'Verb'), ('위', 'Noun'), ('한', 'Josa'), ('기반', 'Noun'), ('이', 'Josa'), ('될', 'Verb'), ('것', 'Noun'), ('”', 'Foreign'), ('이라고', 'Josa'), ('전', 'Noun'), ('했다', 'Verb'), ('.', 'Punctuation'), ('\n', 'Foreign')]
  • Collections의 Counter를 사용하여 명사의 빈도수 추출할수 있다.
In [8]:
count = Counter(noun)
print(count)
Counter({'네트워크': 12, '시에나': 9, '솔루션': 7, '고객': 7, '텔링크': 6, '패킷': 6, '구축': 5, '서비스': 5, '수': 5, '기반': 4, '세계': 4, '어댑티브': 4, '제공': 4, '태평양': 3, '횡단': 3, '전송': 3, '것': 3, '수요': 3, '대응': 3, '디지털': 3, '한국': 3, '경로': 2, '통신사': 2, '업자': 2, '지난해': 2, '출시': 2, '도입': 2, '해저': 2, '통신': 2, '환경': 2, '조성': 2, '계획': 2, '중': 2, '하나': 2, '방식': 2, '지원': 2, '운영': 2, '소비': 2, '관리': 2, '확장': 2, '텔': 2, '링크': 2, '최근': 2, '면서': 2, '실현': 2, '변화': 2, '대비': 2, '최초': 1, '업그레이드': 1, '차별': 1, '경험': 1, '플랫폼': 1, '글로벌': 1, '선도': 1, '기업': 1, '추구': 1, '각국': 1, '서울': 1, '홍콩': 1, '를': 1, '자사': 1, '통합': 1, '차세대': 1, '발판': 1, '마련': 1, '회사': 1, '기능': 1, '시스템': 1, '운용': 1, '기존': 1, '시분할': 1, '다중': 1, '장비': 1, '규모': 1, '전력': 1, '또': 1, '제어': 1, '도메인': 1, '컨트롤러': 1, '수명': 1, '주기': 1, '자동': 1, '계기': 1, '수준': 1, '유연성': 1, '프로그래밍': 1, '가능성': 1, '달성': 1, '고속': 1, '인터넷': 1, '클라우드': 1, '효율': 1, '전달': 1, '이정열': 1, '인프라': 1, '본부장': 1, '급속도': 1, '데이터': 1, '위해': 1, '처음': 1, '미래': 1, '생각': 1, '최고': 1, '약속': 1, '말': 1, '세대': 1, '이동통신': 1, '사물인터넷': 1, '인공': 1, '지능': 1, '등': 1, '혁명': 1, '더': 1, '효과': 1, '성해': 1, '달라': 1, '급증': 1, '이': 1, '최종': 1, '사용자': 1, '요구': 1, '어댑티드': 1, '김인성': 1, '사장': 1, '정부': 1, '포스트': 1, '코로나': 1, '시대': 1, '뉴딜': 1, '카드': 1, '또한': 1, '성장': 1, '실시간': 1, '위': 1, '전': 1})
  • counter의 most_common을 활용하여 빈도수 순서대로 정렬된 리스트를 얻을 수 있다.

    50개 단어까지만 출력되도록 50을 주었다.

In [9]:
count.most_common(50)
Out[9]:
[('네트워크', 12),
 ('시에나', 9),
 ('솔루션', 7),
 ('고객', 7),
 ('텔링크', 6),
 ('패킷', 6),
 ('구축', 5),
 ('서비스', 5),
 ('수', 5),
 ('기반', 4),
 ('세계', 4),
 ('어댑티브', 4),
 ('제공', 4),
 ('태평양', 3),
 ('횡단', 3),
 ('전송', 3),
 ('것', 3),
 ('수요', 3),
 ('대응', 3),
 ('디지털', 3),
 ('한국', 3),
 ('경로', 2),
 ('통신사', 2),
 ('업자', 2),
 ('지난해', 2),
 ('출시', 2),
 ('도입', 2),
 ('해저', 2),
 ('통신', 2),
 ('환경', 2),
 ('조성', 2),
 ('계획', 2),
 ('중', 2),
 ('하나', 2),
 ('방식', 2),
 ('지원', 2),
 ('운영', 2),
 ('소비', 2),
 ('관리', 2),
 ('확장', 2),
 ('텔', 2),
 ('링크', 2),
 ('최근', 2),
 ('면서', 2),
 ('실현', 2),
 ('변화', 2),
 ('대비', 2),
 ('최초', 1),
 ('업그레이드', 1),
 ('차별', 1)]
728x90
728x90