12345678910111213141516171819202122232425262728 |
- from fastapi import APIRouter
- from gensim.models import KeyedVectors
- from loguru import logger
- import traceback
- router = APIRouter(tags=['related_words_server'])
- wv = KeyedVectors.load("/data/pythonProject/video_to_word/models/word2vec.wordvectors", mmap='r')
- @logger.catch()
- @router.post("/related_words/", description="获取相关词", summary="获取相关词")
- def get_related_words(word: str):
- try:
- similar_word_lst = wv.most_similar(word, topn=10)
- similar_word_lst = [item[0] for item in similar_word_lst if item[1] > 0.8]
- response = {'code': 0,
- "success": True,
- "result": similar_word_lst}
- logger.info(f"request body: {word}, response body: {response}")
- return response
- except:
- response = {"code": -1,
- "message": traceback.format_exc(),
- "success": False,
- "result": None}
- logger.error(f"request body: {word}, response body: {response}")
- return response
|