thlinhares commited on
Commit
b8ef67a
·
verified ·
1 Parent(s): 057d6d1

Update analyzers/ner_analyzer.py

Browse files
Files changed (1) hide show
  1. analyzers/ner_analyzer.py +11 -2
analyzers/ner_analyzer.py CHANGED
@@ -24,8 +24,17 @@ class NERAnalyzer(BaseAnalyzer):
24
  def extract_entities(self, text: str) -> List[Tuple[str, str]]:
25
  logger.debug("Iniciando extração de entidades com NER")
26
 
27
- # Aplicar o pipeline de NER para obter as entidades
28
- entities = self.ner_pipeline(text)
 
 
 
 
 
 
 
 
 
29
 
30
  # Filtrar as entidades e retorná-las como uma lista de tuplas (entidade, tipo)
31
  extracted_entities = [(entity['word'], entity['entity']) for entity in entities]
 
24
  def extract_entities(self, text: str) -> List[Tuple[str, str]]:
25
  logger.debug("Iniciando extração de entidades com NER")
26
 
27
+ # Dividir o texto em partes menores, cada uma com no máximo 512 tokens
28
+ inputs = self.tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
29
+ input_ids = inputs['input_ids']
30
+
31
+ # Verificar se o tamanho dos tokens excede o limite e dividir se necessário
32
+ entities = []
33
+ for i in range(0, input_ids.size(1), 512):
34
+ chunk = input_ids[:, i:i+512] # Dividir em partes de 512 tokens
35
+ chunk_text = self.tokenizer.decode(chunk[0], skip_special_tokens=True)
36
+ chunk_entities = self.ner_pipeline(chunk_text)
37
+ entities.extend(chunk_entities)
38
 
39
  # Filtrar as entidades e retorná-las como uma lista de tuplas (entidade, tipo)
40
  extracted_entities = [(entity['word'], entity['entity']) for entity in entities]