如果它不属于训练数据集,我该如何设置错误消息?

How can I set error message if it is not belongs to training datasets?

我已经成功实施了推荐引擎,但是如果我输入任何不相关的值仍然给出输出,则必须显示“您输入了错误的值”

这是输出 correct smiles output

如果我输入了错误的微笑或任何不属于训练数据集的东西,那么必须给它一条消息,请输入正确的微笑。

Wrong output

我输入了任何随机文本,所以如果我输入错误的微笑,结果一定是

结果:"Please enter correct smiles"

我正在输入我的代码 我尝试了 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')

请帮助我正确的逻辑这里目标变量是微笑和反应物变量是一个建议。

您可以通过使用 RDKit 解析分子来检查 SMILES 是否有效。 这应该可以回答您的部分问题,但很抱歉,我不明白您在这里还想达到什么目的。

from rdkit import Chem

error = 'something is wrong'
smiles = request.get_json()['smiles']
m = Chem.MolFromSmiles(smiles)
if m is None:
    return jsonify({"Error": error})
else:
    # you have valid smiles
    pass