如何设置错误信息,如果输入不属于训练数据集?

我已经成功实现了推荐引擎,但有一个问题:如果我输入任何不相关的数值,系统仍然会给出输出,应该显示“你输入了错误的值”。

这是正确的输出正确的SMILES输出

如果我输入错误的SMILES或任何不属于训练数据集的内容,则必须显示一条消息,提示请输入正确的SMILES。

错误输出

我输入了任何随机文本,所以如果我输入错误的SMILES,结果应该显示为

结果: “请输入正确的SMILES”

我已经尝试使用If else语句修改代码,但没有效果。

from rdkit import Chemfrom rdkit.Chem import Drawimport pandas as pdfrom flask import Flask, jsonify, request, abortimport jsonimport sysimport randomimport unicodedatafrom sklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.metrics.pairwise import cosine_similaritydata = 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')

请帮助我解决这个问题,其中目标变量是SMILES,反应物变量是推荐结果。


回答:

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

from rdkit import Chemerror = 'something is wrong'smiles = request.get_json()['smiles']m = Chem.MolFromSmiles(smiles)if m is None:    return jsonify({"Error": error})else:    # 您有有效的SMILES    pass

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注