File size: 1,250 Bytes
4b2ecc5
83568a6
a8a7752
 
1aab113
83568a6
 
0e69a3b
83568a6
 
 
 
3231e07
83568a6
 
 
3231e07
83568a6
 
3231e07
83568a6
 
 
 
 
 
 
 
7730d87
 
d77e4f1
83568a6
3231e07
 
83568a6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from fastapi import FastAPI, HTTPException
import yake

app = FastAPI()

# Inicializando o extrator de palavras-chave YAKE
kw_extractor = yake.KeywordExtractor()

@app.get("/extract-keywords")
async def extract_keywords(text: str, max_ngram_size: int = 3, num_of_keywords: int = 10):
    """
    Extrai palavras-chave de um texto enviado via GET.
    
    :param text: Texto do post a ser analisado.
    :param max_ngram_size: O tamanho máximo dos n-grams (default é 3).
    :param num_of_keywords: Número máximo de palavras-chave a serem retornadas.
    
    :return: Lista de palavras-chave extraídas.
    """
    try:
        # Configuração do extrator de palavras-chave
        custom_kw_extractor = yake.KeywordExtractor(
            lan="en", n=max_ngram_size, top=num_of_keywords
        )
        
        # Extraindo as palavras-chave
        keywords = custom_kw_extractor.extract_keywords(text)
        
        # Extrai apenas as palavras-chave (segundo valor de cada tupla)
        keyword_list = [kw[1] for kw in keywords]  # Aqui pegamos o segundo valor de cada tupla (a palavra-chave)
        
        return {"keywords": keyword_list}
    
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))