|
from fastapi import FastAPI, HTTPException |
|
import yake |
|
|
|
app = FastAPI() |
|
|
|
|
|
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: |
|
|
|
custom_kw_extractor = yake.KeywordExtractor( |
|
lan="en", n=max_ngram_size, top=num_of_keywords |
|
) |
|
|
|
|
|
keywords = custom_kw_extractor.extract_keywords(text) |
|
|
|
|
|
keyword_list = [kw[1] for kw in keywords] |
|
|
|
return {"keywords": keyword_list} |
|
|
|
except Exception as e: |
|
raise HTTPException(status_code=400, detail=str(e)) |