일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Mac
- plugin
- zip 암호화
- API
- licence delete curl
- matplotlib
- MySQL
- sort
- Kafka
- query
- analyzer test
- aggregation
- 파이썬
- License
- high level client
- Test
- Python
- license delete
- docker
- ELASTIC
- Java
- 차트
- token filter test
- aggs
- 900gle
- zip 파일 암호화
- springboot
- TensorFlow
- flask
- Elasticsearch
Archives
- Today
- Total
개발잡부
[tensorflow 2] Text embedding API를 만들어 보자 본문
반응형
path 에서 받아쓰려고 했더니만 이거 버리고 다시 만들자!
https://ldh-6019.tistory.com/195
900gle shopping에서 사용 할 text embedding API 크롤러, 검색 API 에서 사용 예정
method POST 로 만들고 싶었으나.. 일단 GET 으로
# import tensorflow as tf
import tensorflow_hub as hub
import tensorflow_text
import kss, numpy
import json
from flask import Flask
from flask_restful import reqparse, abort, Api, Resource
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
def getTextVectors(input):
vectors = module(input)
return [vector.numpy().tolist() for vector in vectors]
#
class NumpyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, numpy.ndarray):
return obj.tolist()
return json.JSONEncoder.default(self, obj)
class Vector(Resource):
def get(self, input):
return {'vectors': json.dumps(getTextVectors(input)[0], cls=NumpyEncoder)}
def post(self, input):
args = parser.parse_args()
return {'vectors': json.dumps(getTextVectors(input)[0], cls=NumpyEncoder)}
api.add_resource(Vector, '/vectors/<string:input>')
if __name__ == '__main__':
module = hub.load("https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3")
app.run(debug=True)
결과
512차원 백터 json 으로 반환
반응형
'Python > text embeddings' 카테고리의 다른 글
[tensorflow] word2vec 구현해보자 2 (0) | 2022.05.20 |
---|---|
[tensorflow] word2vec 구현해보자 (0) | 2022.01.18 |
[tensorflow 2] Text embedding A/B TEST - 2 (0) | 2022.01.14 |
[tensorflow 2] Text embedding A/B TEST - 1 (0) | 2022.01.14 |
[tensorflow 2]Universal-sentence-encoder-multilingual-large (0) | 2022.01.13 |
Comments