habulaj commited on
Commit
49c5424
·
verified ·
1 Parent(s): 5c5d3e4

Update routers/textclas.py

Browse files
Files changed (1) hide show
  1. routers/textclas.py +14 -5
routers/textclas.py CHANGED
@@ -12,7 +12,7 @@ def extract_keywords(
12
  num_keywords: int = Query(5, description="Número de palavras-chave a serem retornadas", ge=1, le=20)
13
  ):
14
  """
15
- Extrai palavras-chave relevantes de um texto com base no reconhecimento de entidades nomeadas.
16
  """
17
  try:
18
  # Processa o texto com spaCy
@@ -21,15 +21,24 @@ def extract_keywords(
21
  # Extrai as entidades nomeadas do texto (pessoas, organizações, locais, etc)
22
  entities = [ent.text for ent in doc.ents]
23
 
24
- # Se o número de entidades for menor que o número solicitado, retorne todas
25
- if len(entities) < num_keywords:
26
- num_keywords = len(entities)
 
 
 
 
 
 
 
 
 
27
 
28
  # Retorna o número solicitado de palavras-chave, ou todas as palavras-chave extraídas
29
  return {
30
  "text": text,
31
  "num_keywords": num_keywords,
32
- "keywords": entities[:num_keywords]
33
  }
34
 
35
  except ValueError as ve:
 
12
  num_keywords: int = Query(5, description="Número de palavras-chave a serem retornadas", ge=1, le=20)
13
  ):
14
  """
15
+ Extrai palavras-chave relevantes de um texto com base em entidades nomeadas, substantivos e adjetivos.
16
  """
17
  try:
18
  # Processa o texto com spaCy
 
21
  # Extrai as entidades nomeadas do texto (pessoas, organizações, locais, etc)
22
  entities = [ent.text for ent in doc.ents]
23
 
24
+ # Extrai substantivos e adjetivos importantes
25
+ keywords = [token.lemma_ for token in doc if token.pos_ in ['NOUN', 'ADJ'] and not token.is_stop]
26
+
27
+ # Junta as entidades com as palavras-chave encontradas
28
+ keywords.extend(entities)
29
+
30
+ # Remover duplicatas
31
+ keywords = list(set(keywords))
32
+
33
+ # Se o número de palavras-chave for menor que o número solicitado, retorne todas
34
+ if len(keywords) < num_keywords:
35
+ num_keywords = len(keywords)
36
 
37
  # Retorna o número solicitado de palavras-chave, ou todas as palavras-chave extraídas
38
  return {
39
  "text": text,
40
  "num_keywords": num_keywords,
41
+ "keywords": keywords[:num_keywords]
42
  }
43
 
44
  except ValueError as ve: