<div dir="ltr"><div class="gmail_default" style="color:rgb(11,83,148)">Hi Ayush<br><br></div><div class="gmail_default" style="color:rgb(11,83,148)">Thanks for bringing up the issue for discussion. It is still possible to use feature IDs with Enums without the order. It is just we are defining in a way we need. Usually a good approach is to group features with some similarity e.g. term-document scores based features such as BM25 score, LM score etc are in a separate group with a specific ID range. The addition of new features can extend the present range or can be accommodated in the present range. <br><br></div><div class="gmail_default" style="color:rgb(11,83,148)">The rankers will rank a particular instance with the present features (not necessarily, all and in order). In fact, a user can specify which features s/he wants to work with and the feature manager will ensure calculation of them and update 'fvals'.<br></div><div class="gmail_default" style="color:rgb(11,83,148)"><br></div><div class="gmail_default" style="color:rgb(11,83,148)">I am still missing some bits on the second approach, can you please give a little more information on it?<br></div><div class="gmail_default" style="color:rgb(11,83,148)"><br></div><div class="gmail_default" style="color:rgb(11,83,148)">Cheers<br></div><div class="gmail_default" style="color:rgb(11,83,148)">Parth<br></div><div class="gmail_default" style="color:rgb(11,83,148)"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 27, 2016 at 5:46 PM, Ayush Tomar <span dir="ltr"><<a href="mailto:ayushtomar@gmail.com" target="_blank">ayushtomar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello James, Parth,<div><br></div><div>Following our discussion on IRC and on code review, the way FeatureVector class works needs some discussion.</div><div><br></div><div>Presently, the FeatureVector class is defined as follows, with a fixed number of feature count (19):</div><div><br></div><div><pre style="color:rgb(0,0,0);background-image:initial;background-repeat:initial"><span style="color:rgb(128,0,0);font-weight:bold">class</span> FeatureVector<span style="color:rgb(128,0,128)">::</span>Internal <span style="color:rgb(128,0,128)">:</span> <span style="color:rgb(128,0,0);font-weight:bold">public</span> Xapian<span style="color:rgb(128,0,128)">::</span>Internal<span style="color:rgb(128,0,128)">::</span>intrusive_base
<span style="color:rgb(128,0,128)">{</span>
    <span style="color:rgb(128,0,0);font-weight:bold">friend</span> <span style="color:rgb(128,0,0);font-weight:bold">class</span> FeatureVector<span style="color:rgb(128,0,128)">;</span>
    <span style="color:rgb(128,0,0);font-weight:bold">double</span> label<span style="color:rgb(128,0,128)">;</span>
    <span style="color:rgb(128,0,0);font-weight:bold">double</span> score<span style="color:rgb(128,0,128)">;</span>
    <span style="color:rgb(102,102,22)">std</span><span style="color:rgb(128,0,128)">::</span><span style="color:rgb(96,48,0)">map</span><span style="color:rgb(128,0,128)"><</span><span style="color:rgb(128,0,0);font-weight:bold">int</span><span style="color:rgb(128,128,48)">,</span><span style="color:rgb(128,0,0);font-weight:bold">double</span><span style="color:rgb(128,0,128)">></span> fvals<span style="color:rgb(128,0,128)">;</span>
    <span style="color:rgb(128,0,0);font-weight:bold">int</span> fcount<span style="color:rgb(128,0,128)">;</span>
    Xapian<span style="color:rgb(128,0,128)">::</span>docid did<span style="color:rgb(128,0,128)">;</span></pre>The two approaches that were discussed were: </div><div>1. Using enums as IDs for features in fvals. </div><div>2. Making fvals into a configurable vector of feature values.</div><div><br></div><div>The issues were that the first way would still assume an order in which the features occur, and the second way would require the feature generation code to be changed into lots of little classes, which might be an overhead right now but would be a good functionality to have in future.</div><div><br></div><div>What would be the best approach here?</div><span class="HOEnZb"><font color="#888888"><div>-- <br><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px;font-family:arial"><font color="#666666" size="2">----------------------------------------------------------------------------</font></div><div style="font-size:12.8px;font-family:arial"><font color="#666666" size="2">Kind Regards,</font></div><div style="font-size:12.8px"><font style="font-family:arial" color="#666666" size="2">Ayush Tomar</font><font style="font-family:arial" color="#0000ee" size="2"> | <a href="http://ayshtmr.xyz" style="color:rgb(17,85,204)" target="_blank">My Webpage</a></font><font style="font-family:arial" color="#666666"> | <a href="https://in.linkedin.com/in/ayushtomar" style="color:rgb(17,85,204)" target="_blank">LinkedIn</a></font></div></div></div></div></div></div></div></div></div></div>
</div></font></span></div>
</blockquote></div><br></div>