मैं काम करने की कोशिश कर रहा हूं कि सोलर खोज परिणामों के स्कोरिंग में सुधार कैसे किया जाए। मेरे आवेदन को सोलर परिणामों से स्कोर लेने की आवश्यकता है और परिणाम के परिणामस्वरूप कितने अच्छे हैं इस पर निर्भर करते हुए कई "सितारों" प्रदर्शित करते हैं। 5 सितारे = लगभग 0 सटीक/सटीक 0 सितारों का अर्थ है कि खोज से मेल नहीं खा रहा है, उदा। केवल एक तत्व हिट करता है। हालांकि मुझे 1.4 से 0.8660254 के स्कोर मिल रहे हैं, दोनों परिणाम लौट रहे हैं जो मैं 5 सितारे दूंगा। मुझे ऐसा करने की ज़रूरत है कि किसी भी तरह से इन परिणामों को प्रतिशत में बदल दें ताकि मैं इन परिणामों को सितारों की सही संख्या के साथ चिह्नित कर सकूं।मैं एक सोलर/ल्यूसीन स्कोर को सामान्य कैसे बना सकता हूं?
क्वेरी है कि मैं चला है कि मुझे 1.4 स्कोर देता है:
euallowed: सच और (ग्रेड: "2: 1")
क्वेरी कि मुझे ०.८६६०२५४ स्कोर देता है:
euallowed: सच और (ग्रेड: "2: 1" या ग्रेड: "1")
मैं पहले से ही समानता को नवीनीकृत किया है ताकि tf और आईडीएफ वापसी 1.0 मैं केवल interes हूँ के रूप में यदि किसी दस्तावेज़ में कोई शब्द है, तो दस्तावेज़ में उस शब्द की संख्या नहीं है। कैसे कई "
कैसे इतना है कि मैं काम कर सकते हैं स्कोर को सामान्य का सबसे अच्छा तरीका है:
import org.apache.lucene.search.Similarity; public class StudentSearchSimilarity extends Similarity { @Override public float lengthNorm(String fieldName, int numTerms) { return (float) (1.0/Math.sqrt(numTerms)); } @Override public float queryNorm(float sumOfSquaredWeights) { return (float) (1.0/Math.sqrt(sumOfSquaredWeights)); } @Override public float sloppyFreq(int distance) { return 1.0f/(distance + 1); } @Override public float tf(float freq) { return (float) 1.0; } @Override public float idf(int docFreq, int numDocs) { //return (float) (Math.log(numDocs/(double) (docFreq + 1)) + 1.0); return (float)1.0; } @Override public float coord(int overlap, int maxOverlap) { return overlap/(float) maxOverlap; } }
तो मुझे लगता है कि मेरे सवालों हैं: यह मेरा समानता कोड कैसा दिखाई देता है है सितारों "देने के लिए?
क्या परिणाम स्कोर करने का कोई और तरीका है?
धन्यवाद
अनुदान
Humm ... इस के लिए धन्यवाद। यह एक बहुत अच्छा तर्क बनाता है, लेकिन यह सुनिश्चित नहीं है कि जब मैं टीएफ और आईडीएफ ओवरराइड करता हूं तो क्या होता है। मुझे लगता है कि मुझे इसे एक अलग तरीके से देखना पड़ सकता है। भले ही इसका मतलब सितारों द्वारा "स्कोरिंग" न हो। –