Misnik commited on
Commit
a2e4f52
·
verified ·
1 Parent(s): 8b0efbb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -5
app.py CHANGED
@@ -59,27 +59,31 @@ def segment_text(text, max_segment_length=1000):
59
 
60
  def postprocess_keywords(keywords, min_score=0.65):
61
  """
62
- Улучшенная постобработка ключевых слов.
63
  """
64
  unique_keywords = []
65
  seen = set()
66
 
67
  for kw in sorted(keywords, key=lambda x: len(x[0]), reverse=True):
68
  if kw[0] not in seen and kw[1] >= min_score:
69
- if not any(kw[0] in u_kw[0] for u_kw in unique_keywords):
70
- unique_keywords.append(kw)
71
  seen.add(kw[0])
72
 
73
- return [kw for kw in unique_keywords if len(kw[0].split()) > 1]
 
 
 
74
 
75
  def evaluate_keywords(keywords, text_length):
76
  """
77
  Оценка качества ключевых слов.
78
  """
79
  avg_score = sum([kw["score"] for kw in keywords]) / len(keywords)
80
- coverage = len(keywords) / (text_length / 100) # Ключевые слова на 100 символов
81
  return {"average_score": avg_score, "coverage": coverage}
82
 
 
83
  def extract_keywords_interface(text, top_n=15, diversity=0.4, max_ngram=3):
84
  """
85
  Извлечение ключевых слов через Gradio интерфейс с улучшенной фильтрацией.
 
59
 
60
  def postprocess_keywords(keywords, min_score=0.65):
61
  """
62
+ Постобработка ключевых слов: удаление вложенных, коротких и низкорейтинговых фраз.
63
  """
64
  unique_keywords = []
65
  seen = set()
66
 
67
  for kw in sorted(keywords, key=lambda x: len(x[0]), reverse=True):
68
  if kw[0] not in seen and kw[1] >= min_score:
69
+ if not any(kw[0] in u_kw["keyword"] for u_kw in unique_keywords):
70
+ unique_keywords.append({"keyword": kw[0], "score": kw[1]})
71
  seen.add(kw[0])
72
 
73
+ filtered_keywords = [
74
+ kw for kw in unique_keywords if len(kw["keyword"].split()) > 1
75
+ ]
76
+ return filtered_keywords
77
 
78
  def evaluate_keywords(keywords, text_length):
79
  """
80
  Оценка качества ключевых слов.
81
  """
82
  avg_score = sum([kw["score"] for kw in keywords]) / len(keywords)
83
+ coverage = len(keywords) / (text_length / 100) # Ключевые слова на 100 символов текста
84
  return {"average_score": avg_score, "coverage": coverage}
85
 
86
+
87
  def extract_keywords_interface(text, top_n=15, diversity=0.4, max_ngram=3):
88
  """
89
  Извлечение ключевых слов через Gradio интерфейс с улучшенной фильтрацией.