ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟ ﺑﺎزﯾﺎﺑﯽ ﭘﯿﺸﺮﻓﺘﻪی اﻃﻼﻋﺎت Modern Information Retrieval داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﭘﺮوژهی دوم )ﻧﺴﺨﻪی (١ ﻣﺪرس :دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧ ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ :ﺳﺎﻋﺖ ۴ﺻﺒﺢ ،ﺷﻨﺒﻪ ١۶ ،آذر ١٣٩٢ • اﯾﻦ ﻓﺎز اﻧﻔﺮادی اﺳﺖ. • ﺑﻪ ازای ﻫﺮ روز ﺗﺄﺧﯿﺮ )ﺣﺪاﮐﺜﺮ ٧روز( در ﺗﺤﻮﯾﻞ ﭘﺮوژه ١٠٪از ﻧﻤﺮهی ﺑﺎﻗ ﻣﺎﻧﺪهی آن ﮐﺎﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ. • ﺻﻮرت ﭘﺮوژه و ﺿﻤﯿﻤﻪﻫﺎ ﺑﺮای زﺑﺎن Javaآﻣﺎده ﺷﺪه. • ﺑﺮﺧ از اﺑﺰارﻫﺎﯾﯽ ﮐﻪ در اﯾﻦ ﭘﺮوژه ﺑﺎ آنﻫﺎ آﺷﻨﺎ ﻣ ﺷﻮﯾﺪ ،در ﭘﺮوژهﻫﺎی ﺑﻌﺪی ﻧﯿﺰ اﺳﺘﻔﺎده ﺧﻮاﻫﻨﺪ ﺷﺪ. • رؤﯾﺖ ﺗﻘﻠّﺐ ﻣﻮﺟﺐ ﮐﺴﺮ دو ﺑﺮاﺑﺮ ﻧﻤﺮهی اﯾﻦ ﻓﺎز از ﻫﺮ دو ﻃﺮف ﺧﻮاﻫﺪ ﺷﺪ. ١ﻫﺪف اﮐﺜﺮ ﻧﺮماﻓﺰارﻫﺎﯾﯽ ﮐﻪ ﺑﺎ ﺣﺠﻢ »ﺑﯿﺶ از ﮐﻢ« از دادهﻫﺎ ﮐﺎر ﻣ ﮐﻨﻨﺪ ،ﻧﯿﺎزﻣﻨﺪ اﺳﺘﻔﺎده از داﻧﺶ ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺟﻬﺖ ﺗﺴﻬﯿﻞ و ﺗﺴﺮﯾﻊ دﺳﺘﺮﺳ ﻫﺎ ﻫﺴﺘﻨﺪ؛ و ﻻزم ﻧﯿﺴﺖ ﺣﺘﻤﺎً ﮔﻮﮔﻞ ﺑﺎﺷﯿﺪ ﺗﺎ اﯾﻦ ﻧﯿﺎز را ﺣﺲ ﮐﻨﯿﺪ! ﻫﺪف اﯾﻦ ﭘﺮوژه ،آﺷﻨﺎﯾﯽ ﺑﺎ ﮐﺘﺎﺑﺨﺎﻧﻪی Luceneﺑﻪ ﻋﻨﻮان ﯾ از ﮔﺰﯾﻨﻪﻫﺎی ﻣﻮﺟﻮد ﺑﺮای ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت اﺳﺖ ،ﮐﻪ ﻋﻠ رﻏﻢ ﻣﺘﻦﺑﺎز و راﯾ ﺎن ﺑﻮدن ،در ﺑﺴﯿﺎری از ﺷﺮﮐﺖﻫﺎی ﺑﺰرگ دﻧﯿﺎ ﺑﻪ ﻋﻨﻮان راهﮐﺎری ﻣﺆﺛّﺮ اﺳﺘﻔﺎده ﻣ ﺷﻮد. ٢ ١.٢ ﻣﻘﺪﻣﺎت Maven Mavenﯾ اﺑﺰار build automationاﺳﺖ .در اﯾﻦ ﭘﺮوژه ،از آن ﺑﯿﺸﺘﺮ ﺟﻬﺖ ﻣﺪﯾﺮﯾﺖ dependencyﻫﺎ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ. در ﺻﻮرت ﻧﯿﺎز ﺑﻪ ﻫﺮ ﮐﺘﺎﺑﺨﺎﻧﻪای ،از ﻗﺮار دادن آن در »ﮐﻨﺎر« ﮐﺪﻫﺎی ﺧﻮدﺗﺎن ﺧﻮدداری ﮐﻨﯿﺪ؛ در ﻋﻮض اﻃﻼﻋﺎت ﻣﺮﺑﻮﻃﻪ را ﺑﻪ ﻓﺎﯾﻞ ﺗﻨﻈﯿﻤﺎت ﭘﺮوژه ) (pom.xmlاﺿﺎﻓﻪ ﮐﻨﯿﺪ .ﺧﻮدِ Mavenﮐﺘﺎﺑﺨﺎﻧﻪ را از ﯾ ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ: ١ از ﻣﺨﺎزن ﻣﺮﮐﺰی داﻧﻠﻮد و ﻧﺼﺐ ﻣ ﮐﻨﺪ. • ﺗﻤﺎم ﮐﺪﻫﺎی ﺗﺤﻮﯾﻞدادﻧ ﺷﻤﺎ ﻣ ﺑﺎﯾﺴﺖ ﺗﻮﺳﻂ ﺧﻮدﺗﺎن ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﺎﺷﺪ. • ﺣﺠﻢ ﺗﺤﻮﯾﻞدادﻧ ﻫﺎی ﺷﻤﺎ ﺑﺎﯾﺪ ﮐﻤﺘﺮ از 500KBﺑﺎﺷﺪ. • ﮐﺪ ﺷﻤﺎ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت اﺗﻮﻣﺎﺗﯿ ﻗﺎﺑﻞ buildﺷﺪن ﺑﺎﺷﺪ .ﯾ ﻗﺎﻧﻮن ﺳﺮاﻧﮕﺸﺘ :اﮔﺮ ﮐﺪ ﺷﻤﺎ ﺑﻪ ﻋﻨﻮان ﯾ Maven Projectدر Eclipseﺑﺎز ﺷﺪ ،ﻧﺒﺎﯾﺪ ﺧﻄﺎﯾﯽ رخ دﻫﺪ و ﯾﺎ ﻧﯿﺎز ﺑﻪ ﺗﻨﻈﯿﻢ ﺧﺎﺻ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ. ٢.٢ . راﺑﻂ ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴ StackExchange StackExchangeﻣﺠﻤﻮﻋﻪی ﺳﺎﯾﺖﻫﺎی ﭘﺮﺳﺶ و ﭘﺎﺳ ١ اﺳﺖ ،ﮐﻪ از ﻣﯿﺎن آنﻫﺎ ﺣﺘﻤﺎًﺑﺎ StackOverflowآﺷﻨﺎ ﻫﺴﺘﯿﺪ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﯿﺴﺘﻢ اﻣﺘﯿﺎزدﻫ و ﺳﯿﺎﺳﺖﻫﺎی وﯾﺮاﯾﺸ ﮐﻪ در اﯾﻦ ﺳﺎﯾﺖﻫﺎ وﺟﻮد دارد ،ﻣﻌﻤﻮﻻ ﻣﺤﺘﻮای ﻣﻮﺟﻮد از ﮐﯿﻔﯿﺖ ﻣﻨﺎﺳﺒﯽ ﺑﺮﺧﻮردارﻧﺪ .ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ ،از دادهﻫﺎی آن ﺑﻪ ﻋﻨﻮان datasetاﯾﻦ ﻓﺎز اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ. اﯾﻦ ﻣﺠﻤﻮﻋﻪ ،اﻣ ﺎن دﺳﺘﺮﺳ ﺳﺎﺧﺘﺎرﻣﻨﺪ ﺑﻪ دادهﻫﺎ را از ﻃﺮﯾﻖ ﯾ APIﺑﺮای ﮐﺎرﺑﺮان ﻓﺮاﻫﻢ ﻣ ﮐﻨﺪ .ﺟﻬﺖ ﻣﻄﺎﻟﻌﻪ و آﺷﻨﺎﯾﯽ ﺑﺎ اﯾﻦ راﺑﻂ ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴ ﻣ ﺗﻮاﻧﯿﺪ ﺑﻪ ﻣﺴﺘﻨﺪات آن )ﮐﻪ اﮐﺜﺮاً اﻣ ﺎن اﺳﺘﻔﺎده از راﺑﻂ را ﻧﯿﺰ ﻓﺮاﻫﻢ ﻣ ﮐﻨﻨﺪ( ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ. ﺧﺮوﺟ ) APIﮐﻪ ورودی ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﺧﻮاﻫﺪ ﺑﻮد( ﺑﻪ ﻓﺮﻣﺖ JSONاﺳﺖ و ﺑﺎﯾﺪ آن را ﭘﺮدازش ﮐﻨﯿﺪ .ﺑﺮای اﯾﻦ ﮐﺎر ﺗﺮﺟﯿﺤﺎً از ﮐﺘﺎﺑﺨﺎﻧﻪی gsonاﺳﺘﻔﺎده ﮐﻨﯿﺪ. اﮔﺮ ﺑﻪ دادهﻫﺎی ﻧﻤﻮﻧﻪ دﻗّﺖ ﮐﻨﯿﺪ ،ﺗﮓﻫﺎی HTMLرا ﻣﯿﺎن ﻧﻮﺷﺘﻪﻫﺎ ﺧﻮاﻫﯿﺪ دﯾﺪ .ﺑﺮﺧﻮرد ﻣﻨﺎﺳﺐ ﺑﺎ اﯾﻦ ﺗﮓﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﮐﺘﺎبﺧﺎﻧﻪﻫﺎی ﻣﻮﺟﻮد ،ﻋﻼوه ﺑﺮ ﮐﻤ ﺑﻪ ﮐﺴﺐ ﻧﺘﺎﯾﺞ ﺑﻬﺘﺮ ۵٪ ،ﻧﻤﺮهی اﺿﺎﻓﻪ را ﻧﯿﺰ ﺑﻪ ﺧﻮد اﺧﺘﺼﺎص ﻣ دﻫﺪ. . Lucene ٣.٢ Apache Luceneﯾ ﮐﺘﺎﺑﺨﺎﻧﻪی آزاد و ﻣﺘﻦﺑﺎز ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت اﺳﺖ .اﻏﻠﺐ ﺗﻮﺳﻌﻪدﻫﻨﺪﮔﺎﻧ ﮐﻪ ﺧﻮد ﺗﺼﻤﯿﻢ ورود ﺑﻪ ﺣﻮزهی ﺗﺨﺼﺼ ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت را ﻧﺪارﻧﺪ ،از اﯾﻦ ﮐﺘﺎﺑﺨﺎﻧﻪ ﺑﻪ ﻋﻨﻮان ﯾ از ﻗﻮیﺗﺮﯾﻦ اﺑﺰارﻫﺎی ﻣﻮﺟﻮد اﺳﺘﻔﺎده ﻣ ﮐﻨﻨﺪ٢ . ﺑﺴﯿﺎری از ﺳﺎﯾﺖﻫﺎ و ﻧﺮماﻓﺰارﻫﺎی ﻣﻮﻓّﻖ ﻧﯿﺰ از Luceneﯾﺎ ﻣﻮﺗﻮرﻫﺎی ﺟﺴﺘﺠﻮی ﻣﺒﺘﻨ ﺑﺮ آن اﺳﺘﻔﺎده ﻣ ﮐﻨﻨﺪ .از ﺟﻤﻠﻪ: • Twitterﺑﺎ ﺗﻐﯿﯿﺮ از Summizeﺑﻪ Luceneﺳﺮﻋﺖ ﺷﺎﺧﺺﮔﺬاری ﺗﻮﯾﯿﺖﻫﺎﯾﺶ را ۵٠ﺑﺮاﺑﺮ اﻓﺰاﯾﺶ داد[۴] . • GitHubﺑﯿﺸﺘﺮ از ٢٠ﺗﺮاﺑﺎﯾﺖ ﮐﺪ را ﺑﻪ اﯾﻦ وﺳﯿﻠﻪ ﺟﺴﺘﺠﻮ ﻣ ﮐﻨﺪ[٣] . • ﻣﺠﻤﻮﻋﻪ ﺳﺎﯾﺖﻫﺎی StackExchangeاز ﻣﻮﺗﻮرﻫﺎی ﺟﺴﺘﺠﻮی ﻣﺒﺘﻨ ﺑﺮ Luceneاﺳﺘﻔﺎده ﻣ ﮐﻨﻨﺪ[٢ ،١] . ١ﻟﯿﺴﺘ از ﺗﻤﺎﻣ ﺳﺎﯾﺖﻫﺎی اﯾﻦ ﻣﺠﻤﻮﻋﻪ اﯾﻨﺠﺎ ﻣﻮﺟﻮد اﺳﺖ. ٢در واﻗ Luceneﺑﯿﺸﺘﺮ ﻓﺮآﯾﻨﺪﻫﺎی ﺷﺎﺧﺺﮔﺬاری و ﺑﺎزﯾﺎﺑﯽ را ﺑﻪ ﻋﻬﺪه دارد .ﮐﺘﺎﺑﺨﺎﻧﻪﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ elasticsearchﺑﺎ اﺿﺎﻓﻪ ﮐﺮدن اﺟﺰاء دﯾ ﺮ ﯾ ﻣﻮﺗﻮر ﺟﺴﺘﺠﻮ ﺑﻪ Luceneﻋﻤﻼ ﯾ ﻣﻮﺗﻮر ﺟﺴﺘﺠﻮی ﺣﺎﺿﺮ و آﻣﺎده را ﻓﺮاﻫﻢ ﻣ ﮐﻨﻨﺪ .اﺳﺘﻔﺎده از اﯾﻦ ﮐﺘﺎﺑﺨﺎﻧﻪﻫﺎ )ﺑﻪ ﺟﺎی اﺳﺘﻔﺎدهی ﻣﺴﺘﻘﯿﻢ از (Lucene ﻧﯿﺰ ﺑﺴﯿﺎر راﯾﺞ اﺳﺖ. ٢ Luceneرا ﺑﺎ اﺳﺘﻔﺎده از Mavenﺑﻪ ﭘﺮوژهی ﺧﻮد اﺿﺎﻓﻪ ﮐﻨﯿﺪ و ﺳﻌ ﮐﻨﯿﺪ ﺑﺎ آن ﮐﻤ آﺷﻨﺎ ﺷﻮﯾﺪ .ﮐﺘﺎب Lucene in Action ﺑﻪ ﻋﻨﻮان ﻣﺮﺟ در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﮔﺮﻓﺘﻪ. ﻫﺪف اﯾﻦ ﭘﺮوژه آﺷﻨﺎﯾﯽ ﺑﺎ ﺳﺎﺧﺘﺎر Luceneاﺳﺖ ،ﭘﺲ ﻣﻨﻄﻖ ﮐﺪ ﺧﻮدﺗﺎن را ﺳﺎده ﻧﮕﻪ دارﯾﺪ و از اﻧﺠﺎم ﮐﺎرﻫﺎی ﻏﯿﺮﺿﺮوری )ﻣﺎﻧﻨﺪ ﻧﻮﺷﺘﻦ Tokenizerﺧﻮدﺗﺎن( ﺧﻮدداری ﮐﻨﯿﺪ. اﮐﺜﺮ ﺧﻮاﺳﺘﻪﻫﺎی ﭘﺮوژه ﺑﻪ ﺳﺎدﮔ ﺗﻮﺳﻂ Luceneﺑﺮآورده ﻣ ﺷﻮﻧﺪ. ٣ . ﺻﻮرت ﻣﺴﺄﻟﻪ ﻣ ﺧﻮاﻫﯿﻢ ﺑﺨﺸ از ﻋﻤﻠ ﺮد ﺟﺴﺘﺠﻮی ﭘﯿﺸﺮﻓﺘﻪی StackExchangeرا ﭘﯿﺎدهﺳﺎزی ﮐﻨﯿﻢ .ﺑﺮای اﯾﻦ ﮐﺎر ،ﺑﺎ اﺳﺘﻔﺎده از راﺑﻂ ﻣﻮﺟﻮد ،دادهﻫﺎی ﺳﺆالﻫﺎ را اﺳﺘﺨﺮاج ﮐﺮده ،و ﺳﭙﺲ ﻋﻤﻞ ﺷﺎﺧﺺﮔﺬاری و ﺑﺎزﯾﺎﺑﯽ را ﺑﺎ اﺳﺘﻔﺎده از Luceneاﻧﺠﺎم ﻣ دﻫﯿﻢ. Stopword Eliminationو Stemmingرا اﻋﻤﺎل و ﺗﺄﺛﯿﺮ آن ﺟﻬﺖ آﺷﻨﺎﯾﯽ ﺑﺎ روﻧﺪ ﭘﺮدازش دادهﻫﺎ ،ﺗﻼش ﻣ ﮐﻨﯿﻢ دو ﺗﮑﻨﯿ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﻢ. ١.٣ﺟﻤ آوری اﺳﻨﺎد اﺳﻨﺎدی ﮐﻪ ﻣ ﺑﺎﯾﺴﺖ ﭘﺮدازش ﺷﻮﻧﺪ ،ﺑﻪ ﺻﻮرت دﺳﺘﻪای و در ﻗﺎﻟﺐ JSONدر اﺧﺘﯿﺎر ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ .اﯾﻦ دادهﻫﺎ ﻣﺴﺘﻘﯿﻤﺎً از واﺳﻂ اﻃﻼﻋﺎت ﭘﺮﺳﺶﻫﺎ اﺳﺘﺨﺮاج ﻣ ﺷﻮﻧﺪ .ﺑﺮای اﻃﻼﻋﺎت دﻗﯿﻖﺗﺮ در ﻣﻮرد ﭘﺎراﻣﺘﺮﻫﺎی APIﺑﻪ ﺿﻤﯿﻤﻪﻫﺎ ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ. ٢.٣ﻓﯿﻠﺪﻫﺎ در اﯾﻦ ﻓﺎز ،ﺗﻨﻬﺎ ﻗﺼﺪ دارﯾﻢ ﺟﺴﺘﺠﻮ را در ﻓﯿﻠﺪﻫﺎی زﯾﺮ اﻧﺠﺎم دﻫﯿﻢ: • accepted • viewsﺣﺪّاﻗﻞ ﺗﻌﺪاد دﻓﻌﺎت ﻧﻤﺎﯾﺶ ﺳﺆال • urlﯾ آدرس )ﺷﺎﯾﺪ ﺷﺎﻣﻞ (wildcardﮐﻪ در ﺳﺆال ﻇﺎﻫﺮ ﺷﺪه • toDate & fromDateﺗﺎرﯾﺦ ﺳﺎﺧﺘﻪ ﺷﺪن ﺳﺆال • sortﻣﻌﯿﺎر ﻣﺮﺗﺐﺳﺎزی ﻧﺘﺎﯾﺞ • qﯾ رﺷﺘﻪ ﮐﻪ ﺑﺎ اﻟ ﻮرﯾﺘﻢ ﻧﺎﻣﺸﺨّﺼ )و ﺑﺎ اﺳﺘﻔﺎده از ﺗﻤﺎم دادهﻫﺎی ﻣﻮﺟﻮد( ﻋﻤﻞ ﺑﺎزﯾﺎﺑﯽ را اﻧﺠﺎم ﻣ دﻫﺪ. ﺟﻬﺖ آﺷﻨﺎﯾﯽ ﺑﯿﺸﺘﺮ ﺑﺎ اﯾﻦ ﻓﯿﻠﺪﻫﺎ ﺑﻪ ﻣﺴﺘﻨﺪات APIو ﺿﻤﯿﻤﻪﻫﺎ ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ. ٣ ٣.٣ ﻓﯿﻠﺘﺮﻫﺎ در اﯾﻦ ﻣﺮﺣﻠﻪ ﻣ ﺑﺎﯾﺴﺖ اﻣ ﺎن اﺳﺘﻔﺎده از Stopword Eliminationو Stemmingرا ﻓﺮاﻫﻢ ﮐﻨﯿﺪ. ۴.٣ﻓﺸﺮدهﺳﺎزی در اﯾﻦ ﻣﺮﺣﻠﻪ ،ﺗﻼش ﮐﻨﯿﺪ ﺗﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻗﺎﺑﻠﯿﺖﻫﺎی ﺧﻮدِ ،Luceneﺣﺠﻢ ﺷﺎﺧﺺ را ﺗﺎ اﻧﺪازهی ﻣﻤ ﻦ ﮐﺎﻫﺶ دﻫﯿﺪ .ﻧﺘﺎﯾﺞ ﺑﺮرﺳ ﻫﺎی ﺧﻮد را در ﻣﺴﺘﻨﺪات ﻧﯿﺰ ﺑﯿﺎورﯾﺪ. ﭘﯿﺎدهﺳﺎزی اﯾﻦ ﺑﺨﺶ اﺧﺘﯿﺎری ﺑﻮده و ﺷﺎﻣﻞ ۵٪ﻧﻤﺮهی اﺿﺎﻓﻪ اﺳﺖ. . ۴ارزﯾﺎﺑﯽ ١.۴ ارزﯾﺎﺑﯽ ﺧﻮدﮐﺎر – ﻗﻄﻌ ﺑﺨﺶﻫﺎﯾﯽ از ﭘﺮوژه ﮐﻪ ﺟﻮاب )ﺣﺪوداً( ﯾ ﺘﺎ دارﻧﺪ ،ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﺴﺖﻫﺎی ﺧﻮدﮐﺎر ﻧﻤﺮهدﻫ ﻣ ﺷﻮﻧﺪ .ﻃﺒﯿﻌﺘﺎً در اﯾﻦ ﺑﺨﺶ ﭘﺎراﻣﺘﺮ resultOrderﻣﻘﺪار relevanceرا ﻧﺨﻮاﻫﺪ ﮔﺮﻓﺖ. ٢.۴ ارزﯾﺎﺑﯽ ﺧﻮدﮐﺎر – ﺧ ّ ﻗﺎﻧﻪ در اﯾﻦ ﺑﺨﺶ ،ﺷﻤﺎ ﺑﺎﯾﺪ ﺑﯿﺸﺘﺮﯾﻦ ﺗﻼش ﺧﻮد را ﺟﻬﺖ ﻣﻄﺎﺑﻘﺖ ﺑﺎ ﻧﺘﺎﯾﺞ ﺟﺴﺘﺠﻮی ﻣﺮﺟ )ﭘﯿﺎدهﺳﺎزی ﺧﻮد (StackExchange داﺷﺘﻪ ﺑﺎﺷﯿﺪ .در اﯾﻦ ﺑﺨﺶ initParams ،ﻣﻘﺪار nullﻣ ﮔﯿﺮد و ﺷﻤﺎ ﻣ ﺗﻮاﻧﯿﺪ از ﻫﺮ ﺗﺮﮐﯿﺐ دﻟﺨﻮاﻫ از ﻓﯿﻠﺘﺮﻫﺎی ﻣﻮﺟﻮد )ﯾﺎ ﻏﯿﺮ ﻣﻮﺟﻮد!( اﺳﺘﻔﺎده ﮐﻨﯿﺪ. اﯾﻦ ﺑﺨﺶ ﺑﻪ ﺻﻮرت ﻣﻘﺎﯾﺴﻪای ﻣﯿﺎن ﺗﻤﺎم داﻧﺸﺠﻮﯾﺎن ﻧﻤﺮهدﻫ ﺧﻮاﻫﺪ ﺷﺪ .ﺳﻘﻒ ١۵٪ﻧﻤﺮهی اﺿﺎﻓﻪ ﺑﺮای اﯾﻦ ﺑﺨﺶ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه. ٣.۴ . ارزﯾﺎﺑﯽ دﺳﺘ – ﺗﺤﻮﯾﻞ ﺣﻀﻮری در ﺻﻮرﺗ ﮐﻪ ﺑﻪ دﻟﯿﻞ ﺑﯽدﻗّﺘ ﻫﺎی ﺟﺰﺋ ﻧﻤﺮهی ﺗﺼﺤﯿﺢ اﺗﻮﻣﺎﺗﯿ را درﯾﺎﻓﺖ ﻧﮑﻨﯿﺪ ،اﻣ ﺎن ﺟﺒﺮان ﺑﺨﺸ از آن را در ﺗﺤﻮﯾﻞ ﺣﻀﻮری ﺧﻮاﻫﯿﺪ داﺷﺖ .ﻫﻤﭽﻨﯿﻦ ،ﻣﺴﺘﻨﺪات ﺷﻤﺎ ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری ﺑﺮرﺳ ﺧﻮاﻫﺪ ﺷﺪ. ۵ ﻧﮑﺎت ﭘﯿﺎدهﺳﺎزی ﺟﻬﺖ درﯾﺎﻓﺖ ﻧﻤﺮهی ﺑﺨﺶ ارزﯾﺎﺑﯽ ﺧﻮدﮐﺎر ،ﻧﯿﺎز ﻫﺴﺖ ﺗﺎ ﻣﻮارد زﯾﺮ را در ﮐﺪ رﻋﺎﯾﺖ ﮐﻨﯿﺪ: ۴ .ﻧﻤﻮﻧﻪ از ﮐﻼس ﺷﻤﺎ ﺳﺎﺧﺘﻪ ﺷﺪه و ﻓﺮاﺧﻮاﻧ ﻣ ﺷﻮد ﺑﻠ ﻪ ﯾ. ﮐﺪ ﺷﻤﺎ اﺟﺮا ﻧﺨﻮاﻫﺪ ﺷﺪmain • ﺗﺎﺑﻊ . ﯾﺎ زﯾﺮﭘ ﯿﺞﻫﺎی آن ﻗﺮار ﺑ ﯿﺮدedu.sharif.ce.fall92.mir.pa2.impl • ﮐﺪﻫﺎی ﺷﻤﺎ ﺑﺎﯾﺪ در ﭘ ﯿﺞ .ﻣﺤﺘﻮای ﭘ ﯿﺞﻫﺎی دﯾ ﺮ ﺑﻪ ﮐﻠّ ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ ﻣ ﺷﻮﻧﺪ (MyStackExchangeAdvancedSearchImpl) ﯾﺎ ﻣﺤﻞ ﮐﻼس اﺻﻠinterface • از ﺗﻐﯿﯿﺮ ﻧﺎم ﯾﺎ .ﺧﻮدداری ﮐﻨﯿﺪ . ﺿﻤﯿﻤﻪﻫﺎ۶ ﻫﺎ و ﺑﺮﺧ ﺗﻮﺿﯿﺤﺎت ﺗﮑﻤﯿﻠinterface ﺷﺎﻣﻞ ﺗﻌﺎرﯾﻒ،ﮐﺪ ﻧﻤﻮﻧﻪ • ﯾ Lucene in Action • ﮐﺘﺎب ﺗﺤﻮﯾﻞدادﻧ ﻫﺎ٧ pom.xml ﻓﺎﯾﻞ+ src • ﻓﻮﻟﺪر PDF ﻓﺎﯾﻞ در ﻗﺎﻟﺐ ﯾ:• ﻣﺴﺘﻨﺪات ﭘﺮوژه . ارﺳﺎل ﻧﻤﺎﯾﯿﺪ89012345_PA2.zip ﻓﺎﯾﻞ زﯾﭗ ﺑﺎ ﻓﺮﻣﺖ ﻣﻮارد ﻓﻮق را در ﻗﺎﻟﺐ ﯾ ﻣﺮاﺟ [1] Stack Overflow Search – Now 81% Less Crappy, Jeff Atwood, January 27th 2011 http://blog.stackoverflow.com/2011/01/stack-overflow-search-now-81-less-crappy/ [2] A new search engine for Stack Exchange, Nick Craver, December 23rd 2012 http://meta.stackoverflow.com/questions/160100/a-new-search-engine-for-stack-exchange [3] A Whole New Code Search, TwP, January 23rd 2013 ۵ https://github.com/blog/1381-a-whole-new-code-search [4] Twitter’s New Search Architecture, Michael Busch, October 6th 2010 http://engineering.twitter.com/2010/10/twitters-new-search-architecture. html ۶
© Copyright 2025 Paperzz