개발일지

[TextRank] pytextrank와 spacy 한글 키워드 추출

송채채 2023. 4. 27. 13:27
반응형

pytextrank 설치

pip install pytextrank

dependency로 spacy가 함께 설치됨

 

한국어 키워드 추출 예시

근데 성능 진짜 안좋은거같음...파라미터 조작이나 한글 모델을 더 정교한거 아니면 힘든것같음

encoding 깨지면 # -*- coding: utf-8 -*- 추가하기

# -*- coding: utf-8 -*-
import spacy
import pytextrank

# scapy의 한국어모델인 ko_core_news_sm을 사용함 https://spacy.io/models/ko/
# example text
text = "서울 지진 피해에 대한 데이터 분석을 위해서는 어떤 종류의 데이터를 사용해야 할지 먼저 생각해보아야 합니다. 예를 들어, 지진 발생 시간, 지진 규모, 지진 발생 지역, 피해 규모 등의 정보가 필요할 것입니다. 서울 지진 피해 분석 예시: 서울 지역에서 최근 몇 년간 발생한 지진 데이터를 수집하여 지진 발생 건수, 지진 규모, 지진 발생 지역 등의 정보를 파악할 수 있습니다. 이를 바탕으로 서울 지역에서 지진 발생이 가장 많은 지역, 지진 규모와 피해 규모 간의 상관 관계, 지진 발생 시간대 등을 분석할 수 있습니다. 또한, 특정 지역에서의 지진 발생 시 피해 규모가 어떻게 나타나는지 분석하여 지진 대비 대응 전략을 마련할 수 있습니다. 서울 지진에 대한 데이터는 국가지진정보센터에서 제공하는 '국내 지진 정보 시스템'에서 확인할 수 있습니다. 이 시스템에서는 지난 1년간의 국내 지진 정보를 확인할 수 있으며, 서울 지역에서 발생한 지진 정보도 포함되어 있습니다. 이를 바탕으로 데이터를 수집하고 분석할 수 있습니다."

# load a spaCy model, depending on language, scale, etc.
nlp = spacy.load("ko_core_news_sm")

# add PyTextRank to the spaCy pipeline
nlp.add_pipe("textrank")
doc = nlp(text)

# # examine the top-ranked phrases in the document
# for phrase in doc._.phrases:
#     print(phrase.text)
#     print(phrase.rank, phrase.count)
#     print(phrase.chunks)

keywords_textrank = []
keywords_textrank_rank = []
for phrase in doc._.phrases[:10]:
    keywords_textrank.append(phrase.text)
    keywords_textrank_rank.append(phrase.rank)
    
print(keywords_textrank)
>> ['서울', '서울 지진에', '지난 1년간의']

 

참고 사이트

https://github.com/DerwenAI/pytextrank

 

GitHub - DerwenAI/pytextrank: Python implementation of TextRank algorithms ("textgraphs") for phrase extraction

Python implementation of TextRank algorithms ("textgraphs") for phrase extraction - GitHub - DerwenAI/pytextrank: Python implementation of TextRank algorithms ("textgraphs") for...

github.com

https://derwen.ai/docs/ptr/sample/

 

Sample Usage - pytextrank

Getting Started First, we'll import the required libraries and add the PyTextRank component into the spaCy pipeline: import pytextrank import spacy nlp = spacy.load("en_core_web_sm") nlp.add_pipe("textrank"); Let's take a look at this pipeline now... ['tok

derwen.ai

https://jehyunlee.github.io/2022/08/27/Python-DS-111-textprocfn/

 

Text Processing Functions

자연어 처리는 품이 많이 듭니다. 단어부터 문장, 맥락까지 처리할 것이 한 두 가지가 아닙니다. 그러면서도 반복이 많습니다. 함수로 만듭니다. 초록 요약 및 키워드 추출 Pega Devlog: Open API를 이

jehyunlee.github.io