728x90
반응형
원래는.. 리뷰들을 모아서 그 리뷰에 대한 긍정적인 부분/ 부정적인 부분을 추려서 프로젝트를 하려고 했다.
기존에 나와있는 긍/부정 감성분석은 리뷰의 평점에 따라 좋은평점에서 긍정적인 단어를 추리고
나쁜평점에서는 부정적인 단어를 추리는 방식이었는데 내가 하고있던거는 미리 긍/부정도 단어사전을 만들고
단어 사전을 통해 긍정/부정을 추출하는 방식이었다.
암튼, 그 긍/부정도에 대해서는 못하게되어 다른 아이디어를 찾고있던 중 ..
발견하게 된거는 krwordrank 이다. text에서 핵심 문장/단어를 추출하는 알고리즘이다.
WordRank 알고리즘은 구글의 PageRank 나 HITS 같은 Graph Ranking을 자연어처리에 적용한 알고리즘 이다.
이거를 한국어의 어절 개념을 적용한게 KR-WordRank 라고 보면된다.
사용방법은 아주 간단하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from krwordrank.word import KRWordRank
from krwordrank.hangle import normalize
min_count = 5 # 단어의 최소 출현 빈도수 (그래프 생성 시)
max_length = 10 # 단어의 최대 길이
verbose =True
wordrank_extractor = KRWordRank(min_count, max_length , verbose)
beta = 0.85 # PageRank의 decaying factor beta
max_iter = 10
with open('test.txt', 'r') as f:
texts = []
for line in f:
texts.append(line)
texts = [normalize(text,english=False , number=True) for text in texts ]
keywords, rank, graph = wordrank_extractor.extract(texts, beta, max_iter)
for word, r in sorted(keywords.items(), key=lambda x:x[1], reverse=True)[:30]:
print('%8s:\t%.4f' % (word, r))
from krwordrank.word import summarize_with_keywords
stopwords ={'제거','할','단어'}
keywords = summarize_with_keywords(texts, min_count=5, max_length=10,
beta=0.85, max_iter=10, stopwords=stopwords, verbose=True)
keywords = summarize_with_keywords(texts) # with default arguments
print(keywords)
|
cs |
일단 분석할 샘플이 필요하고
해당 부분에서 한줄씩 읽어서
나는 texts 라는 list에 담아줬다.
그 이후에 summeraize_with_sentences 라는 핵심문장을 추출하는 기능을 가지고 있는 부분을 적용시켜주면
원하는 값을 얻을 수 있다.
추출 원리는 랭킹이 매겨진 단어들로 백터를 생성하고 코사인 유사도를 적용하여 입력된 문장의 백터가 키워드 백터와 유사한 것을
선택하는 원리이다.
도중에 빼고싶은 단어가 있다면 stopwoards 에 넣어주면 된다.
추출한 결과값은.. 생각보다 잘 나온거 같다.
이제 이걸통해서 어떤식으로 보여줘야할지가 관건인 것 같다.
728x90
반응형
'IT Diary > # Dev Diary' 카테고리의 다른 글
[ Dev Dairy ] 007-1. 포켓몬 이미지 크롤링 ( selenium ) (0) | 2021.07.30 |
---|---|
[ Dev Dairy ] 006. 연관어 네트웍크 분석 Networkx 사용해보기 (0) | 2021.07.28 |
[ Dev Dairy ] 004. Flask API 만들어보기 (0) | 2021.07.20 |
[ Dev Dairy ] 003. Teachable Machine 사용해보기 (0) | 2021.03.26 |
[ Dev Dairy ] 002. selenium 환경준비 (0) | 2021.03.16 |