lovit / KR-WordRank

비지도학습 방법으로 한국어 텍스트에서 단어/키워드를 자동으로 추출하는 라이브러리입니다
Other
353 stars 57 forks source link

'The graph should consist of at least two nodes\n', 'The node size of inserted graph is 0') #17

Closed MINICONVERRTIBLE closed 2 years ago

MINICONVERRTIBLE commented 2 years ago

안녕하세요, 뉴스 크롤링하여 이슈 분석하는 프로젝트 진행중인 학생입니다. 우선, 너무나도 좋은 코드 짜주셔서 감사합니다! 저희 프로젝트에 많은 도움이 되고 있습니다! 다름이 아니라 코드 실행시 이런 문제가 발생하는데, 혹시 어떻게 해결할 수 있을까요?! 감사합니다!

5           '은혜 갚은 빈살만?…사우디 국부펀드, 쿠슈너에 2조5천억원 투자'}
  6 stopwords={}

----> 7 krword_rank(texts,stopwords)

~\AppData\Local\Temp/ipykernel_24872/239526297.py in krword_rank(title, stopwords) 6 beta = 0.85 # PageRank의 decaying factor beta 7 max_iter = 10 ----> 8 keywords, rank, graph = wordrank_extractor.extract(texts, beta, max_iter) 9 keywords = summarize_with_keywords(texts, min_count=5, max_length=10) 10 return(keywords)

C:\ProgramData\Anaconda3\lib\site-packages\krwordrank\word_word.py in extract(self, docs, beta, max_iter, num_keywords, num_rset, vocabulary, bias, rset) 209 """ 210 --> 211 rank, graph = self.train(docs, beta, max_iter, vocabulary, bias) 212 213 lset = {self.int2token(idx)[0]:r for idx, r in rank.items() if self.int2token(idx)[1] == 'L'}

C:\ProgramData\Anaconda3\lib\site-packages\krwordrank\word_word.py in train(self, docs, beta, max_iter, vocabulary, bias) 324 graph = self._construct_word_graph(docs) 325 --> 326 rank = hits(graph, beta, max_iter, bias, 327 sum_weight=self.sum_weight, 328 number_of_nodes=len(self.vocabulary),

C:\ProgramData\Anaconda3\lib\site-packages\krwordrank\graph_rank.py in hits(graph, beta, max_iter, bias, verbose, sum_weight, number_of_nodes, converge) 36 37 if number_of_nodes <= 1: ---> 38 raise ValueError( 39 'The graph should consist of at least two nodes\n', 40 'The node size of inserted graph is %d' % number_of_nodes

ValueError: ('The graph should consist of at least two nodes\n', 'The node size of inserted graph is 0')

MINICONVERRTIBLE commented 2 years ago

참고로 작성한 코드 같이 보내드립니다!

from krwordrank.word import KRWordRank from krwordrank.hangle import normalize from krwordrank.word import summarize_with_keywords texts={'친(親)러 도네츠크 군, “우크라 마리우폴 항 장악', '은혜 갚은 빈살만?…사우디 국부펀드, 쿠슈너에 2조5천억원 투자'} stopwords={} krword_rank(texts,stopwords)

lovit commented 2 years ago

@MINICONVERRTIBLE 님, KR-WordRank 는 동 주제의 여러 문장이 주어졌을 때 자주 등장하는 단어를 키워드로 선택하는 알고리즘입니다. 그런데 보내주신 코드에는 두 줄의 텍스트만 들어있는 듯 합니다. 그리고 두 줄의 텍스트에는 두 번 이상 반복된 단어가 없어 보입니다. 그래서 단어가 추출되지 않은 것으로 보입니다. 뉴스의 타이틀 보다는 본문을 입력하여 사용하시는 것을 추천 드립니다.

MINICONVERRTIBLE commented 2 years ago

너무나도 빠른 답변 감사드립니다! 덕분에 프로젝트를 효율적으로 진행할 수 있을것 같습니다!!

lovit commented 2 years ago

넵 감사합니다. 또 질문 있으면 남겨주세요. 이 이슈는 닫아두겠습니다.