Analizar texto sobre ciencia de datos

4744 단어 datascience
| Analizar texto sobre ciencia de datos - by _ |

과제: 데이터 과학에 대한 텍스트 분석



이 예에서는 기존 데이터 과학 프로세스의 모든 단계를 다루는 간단한 연습을 해보겠습니다. 코드를 작성할 필요가 없으며 아래 셀을 클릭하여 실행하고 결과를 관찰할 수 있습니다. 도전 과제로, 다른 데이터로 이 코드를 시도해 보는 것이 좋습니다.

목표



이번 시간에는 데이터 과학과 관련된 다양한 개념에 대해 논의했습니다. 텍스트 마이닝을 수행하여 더 많은 관련 개념을 발견해 봅시다. 데이터 사이언스에 대한 텍스트로 시작하여 키워드를 추출한 후 결과를 시각화해 보도록 하겠습니다.

텍스트로 Wikipedia의 데이터 과학 페이지를 사용하겠습니다.

url = 'https://en.wikipedia.org/wiki/Data_science'


1단계: 데이터 가져오기



모든 데이터 과학 프로세스의 첫 번째 단계는 데이터를 가져오는 것입니다. 이를 위해 requests 라이브러리를 사용합니다.

import requests

text = requests.get(url).content.decode('utf-8')
print(text[:1000])


2단계: 데이터 변환



다음 단계는 데이터를 처리에 적합한 형식으로 변환하는 것입니다. 우리의 경우 페이지에서 HTML 소스 코드를 다운로드했으며 이를 일반 텍스트로 변환해야 합니다.

이를 수행할 수 있는 방법에는 여러 가지가 있습니다. Python에서 가장 간단한 내장HTMLParser 개체를 사용합니다. HTMLParser 클래스를 하위 클래스로 분류하고 <script><style> 태그를 제외한 HTML 태그 내의 모든 텍스트를 수집하는 코드를 정의해야 합니다.

from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):
    script = False
    res = ""
    def handle_starttag(self, tag, attrs):
        if tag.lower() in ["script","style"]:
            self.script = True
    def handle_endtag(self, tag):
        if tag.lower() in ["script","style"]:
            self.script = False
    def handle_data(self, data):
        if str.strip(data)=="" or self.script:
            return
        self.res += ' '+data.replace('[ edit ]','')

parser = MyHTMLParser()
parser.feed(text)
text = parser.res
print(text[:1000])



3단계: 인사이트 얻기



가장 중요한 단계는 데이터를 통찰력을 얻을 수 있는 형식으로 바꾸는 것입니다. 우리의 경우 텍스트에서 키워드를 추출하고 어떤 키워드가 더 의미가 있는지 확인하려고 합니다.

키워드 추출을 위해 Python 라이브러리RAKE를 사용합니다. 먼저 이 라이브러리가 없는 경우를 대비하여 설치해 보겠습니다.

import sys
!{sys.executable} -m pip install nlp_rake



주요 기능은 Rake 개체에서 사용할 수 있으며 일부 매개 변수를 사용하여 사용자 지정할 수 있습니다. 이 경우에는 키워드의 최소 길이를 5자로, 문서에서 키워드의 최소 빈도를 3으로, 키워드의 최대 단어 수를 2로 설정합니다. 자유롭게 다른 값을 가지고 놀면서 관찰하십시오. 결과.

import nlp_rake
extractor = nlp_rake.Rake(max_words=2,min_freq=3,min_chars=5)
res = extractor.apply(text)
res



관련 중요도와 함께 목록 용어를 얻었습니다. 보시다시피 기계 학습 및 빅 데이터와 같은 가장 관련성이 높은 분야가 목록의 최상위 위치에 있습니다.

4단계: 결과 시각화



사람들은 시각적인 형태로 데이터를 가장 잘 해석할 수 있습니다. 따라서 통찰력을 얻기 위해 데이터를 시각화하는 것이 종종 의미가 있습니다. Python에서 matplotlib 라이브러리를 사용하여 관련성과 함께 키워드의 간단한 분포를 그릴 수 있습니다.

import matplotlib.pyplot as plt

def plot(pair_list):
    k,v = zip(*pair_list)
    plt.bar(range(len(k)),v)
    plt.xticks(range(len(k)),k,rotation='vertical')
    plt.show()

plot(res)



그러나 Word Cloud를 사용하여 단어 빈도를 시각화하는 더 좋은 방법이 있습니다. 키워드 목록에서 단어 구름을 구성하려면 다른 라이브러리를 설치해야 합니다.

!{sys.executable} -m pip install wordcloud


WordCloud 개체는 원본 텍스트 또는 빈도와 함께 미리 계산된 단어 목록을 가져오는 역할을 하며 반환 및 이미지는 matplotlib를 사용하여 표시할 수 있습니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

wc = WordCloud(background_color='white',width=800,height=600)
plt.figure(figsize=(15,7))
plt.imshow(wc.generate_from_frequencies({ k:v for k,v in res }))



원본 텍스트를 WordCloud에 전달할 수도 있습니다. 비슷한 결과를 얻을 수 있는지 봅시다.

plt.figure(figsize=(15,7))
plt.imshow(wc.generate(text))




wc.generate(text).to_file('images/ds_wordcloud.png')



이제 단어 구름이 더 인상적으로 보이지만 노이즈도 많이 포함되어 있음을 알 수 있습니다(예: Retrieved on 와 같이 관련 없는 단어). 또한 데이터 과학자 또는 컴퓨터 과학과 같이 두 단어로 구성된 키워드가 적습니다. 이것은 RAKE 알고리즘이 텍스트에서 좋은 키워드를 선택하는 데 훨씬 더 잘 작동하기 때문입니다. 이 예는 데이터 전처리 및 정리의 중요성을 보여줍니다. 마지막에 명확한 그림이 있으면 더 나은 결정을 내릴 수 있기 때문입니다.

이 연습에서 우리는 Wikipedia 텍스트에서 키워드와 단어 구름의 형태로 일부 의미를 추출하는 간단한 과정을 거쳤습니다. 이 예제는 매우 간단하지만 데이터 수집에서 시작하여 시각화에 이르기까지 데이터로 작업할 때 데이터 과학자가 수행하는 모든 일반적인 단계를 잘 보여줍니다.

이 과정에서는 이러한 모든 단계에 대해 자세히 설명합니다.

좋은 웹페이지 즐겨찾기