извлечение ключевой фразы python с использованием модуля pke
Я пытался извлечь ключевые фразы с помощью модуля https://github.com/boudinfl/pke. Когда я запускаю его один раз, он отлично работает. Но когда я запускаю его несколько раз, он выдает следующую ошибку. ZeroDivisionError: деление с плавающей запятой на ноль
мой код выглядит следующим образом.
extractor = TopicRank()
def key_phrase_extract(path_to_json):
//get_temp_text.txt from json
extractor.load_document(input='temp_text.txt', language="en", max_length=10000000,
normalization='stemming')
extractor.candidate_selection(pos={'NOUN', 'PROPN', 'ADJ'},stoplist=stoplist)
extractor.candidate_weighting(threshold=0.74,
method='average')
kpe_results = []
for (keyphrase, score) in extractor.get_n_best(n=10, stemming=True):
kpe_results.append([keyphrase, score])
print(kpe_results)
for each_json in json_list()
key_phrase_extract('each_json')
Он отлично работает для первого файла json, но при запуске второго дает мне
ZeroDivisionError: float division by zero
1 ответ
Решение
Мне удалось исправить проблему. Проблема заключалась в инициализации экстрактора вне функции.
def key_phrase_extract(path_to_json):
extractor = TopicRank()
//get_temp_text.txt from json
extractor.load_document(input='temp_text.txt', language="en", max_length=10000000,
normalization='stemming')
extractor.candidate_selection(pos={'NOUN', 'PROPN', 'ADJ'},stoplist=stoplist)
extractor.candidate_weighting(threshold=0.74,
method='average')
kpe_results = []
for (keyphrase, score) in extractor.get_n_best(n=10, stemming=True):
kpe_results.append([keyphrase, score])
print(kpe_results)
for each_json in json_list()
key_phrase_extract('each_json')