【发布时间】:2020-05-06 08:45:25
【问题描述】:
我已经成功实现了推荐引擎,但是如果我输入任何不相关的值仍然给出输出,则必须显示“您输入了错误的值”
如果我输入了错误的微笑或任何不属于训练数据集的内容,则必须给它一个消息,请输入正确的微笑。
我输入了任何随机文本,所以如果我输入了错误的微笑,结果一定是
结果:“请输入正确的微笑”
我正在输入我的代码,我尝试 If else 但不起作用。
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')
请帮助我这里的正确逻辑目标变量是微笑和反应物变量是建议。
【问题讨论】:
标签: python-3.x machine-learning recommender-systems rdkit