我已经成功实施了推荐引擎,但是如果我将任何不相关的值仍然给出输出,则必须显示“您输入了错误的值”
这是输出 正确的微笑输出
如果我输入了错误的微笑或任何不属于训练数据集的内容,那么必须给它一个消息,请输入正确的微笑。
我输入了任何随机文本,所以如果我输入错误的微笑,结果一定是
结果:“请输入正确的微笑”
我正在输入我的代码,我尝试如果其他但不工作。
from rdkit import Chem
from rdkit.Chem import Draw
import pandas as pd
from flask import Flask, jsonify, request, abort
import json
import sys
import random
import unicodedata
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
data = pd.read_csv("clean_o2h.csv", sep=",")
app = Flask(__name__)
@app.route('/', methods=["POST"])
def predict_word():
print(request.get_json())
sent = request.get_json()['smiles']
reactants = data["reactants"].tolist()
targets = data["targets"].tolist()
error = ("plese enter correct smiles")
# TFIDF vector representation
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(targets)
test = vectorizer.transform([sent])
#test = vectorizer.transform(["NC1=CC=C2C(COC(N[C@H]3C4=C(CC3)C=CC=C4)=N2)=C1"])
cosine_similarities = cosine_similarity(test, X).flatten()
l = []
# n = ["Result 1","Result 2", "Result 3","Result 4"]
# Extract top 5 similarity records
similarity = cosine_similarities.argsort()[:-5:-1]
#print("Top 5 recommendations...")
for sim in similarity:
#print(reactants[sim])
result = reactants[sim]
l.append(result)
print(l)
# output = dict(zip(l,n))
res = { i : l[i] for i in range(0, len(l) ) }
# return jsonify({"Recommendation": res})
if(sent == targets):
return jsonify({"Recommendation": res})
else:
return jsonify({"Error": error})
if __name__ == '__main__':
app.run(port='8080')
请帮助我正确的逻辑这里目标变量是微笑和反应物变量是建议。