-1

私はレコメンデーションエンジンを正常に実装しましたが、無関係な値を入力しても出力が得られるという問題があり、「間違った値を入力した」ことを示す必要があります

ここに 正しい笑顔の出力が出力されます

間違った笑顔やトレーニング データセットに属さないものを入力した場合は、正しい笑顔を入力してくださいというメッセージが表示される必要があります。

間違った出力

ランダムなテキストを入力したので、間違った笑顔を入力すると、次の結果になるはずです

結果:「正しい笑顔を入力してください」

コードを入れています 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')

ここで正しいロジックを教えてください。ターゲット変数は笑顔で、反応物変数は推奨事項です。

4

1 に答える 1