You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
# -*- coding:utf-8 -*-
|
|
# @Time: 2023/8/22 14:44
|
|
# @Author:ZYP
|
|
# @File:word2vec_api.py
|
|
# @mail:zypsunshine1@gmail.com
|
|
# @Software: PyCharm
|
|
import json
|
|
|
|
import numpy as np
|
|
from gensim.models.keyedvectors import KeyedVectors
|
|
import time
|
|
from flask import Flask, request
|
|
|
|
app_word2vec = Flask(__name__)
|
|
|
|
word2vec_path = "/home/zc-nlp-zyp/work_file/ssd_data/public_data/word2vec_model/word2vec.vector"
|
|
model_word2vec = KeyedVectors.load_word2vec_format(word2vec_path, binary=True)
|
|
|
|
|
|
@app_word2vec.route('/word2vec', methods=['POST'])
|
|
def get_word2vec():
|
|
word_dict = json.loads(request.data.decode())
|
|
try:
|
|
vec = model_word2vec.get_vector(word_dict["word"])
|
|
str_vec = ','.join([str(i) for i in vec])
|
|
# vec1 = np.array([float(j) for j in str_vec.split(',')], dtype=np.float64)
|
|
vec_dict = {'vec': str_vec}
|
|
return json.dumps(vec_dict)
|
|
except:
|
|
return 'error_word2vec'
|
|
|
|
|
|
# if __name__ == '__main__':
|
|
# app.run(host='0.0.0.0', port=50001, debug=False)
|
|
|