PA-1.pdf

‫ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟ‬
‫ﺑﺎزﯾﺎﺑﯽ ﭘﯿﺸﺮﻓﺘﻪی اﻃﻼﻋﺎت‬
‫‪Modern Information Retrieval‬‬
‫داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧ‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ‪ ١۴ :‬آﺑﺎن ‪١٣٩٢‬‬
‫ﭘﺮوژهی اول‬
‫• ﭼﻨﺎﭼﻪ ﺳﻮاﻟ در ﻣﻮرد ﭘﺮوژه داﺷﺘﯿﺪ ﮐﻪ ﺑﺮای ﺳﺎﯾﺮﯾﻦ ﻧﯿﺰ ﻣ ﺗﻮاﻧﺪ ﻣﻔﯿﺪ ﺑﺎﺷﺪ در ﮔﺮوه درس ﻣﻄﺮح ﮐﻨﯿﺪ‪.‬‬
‫• ﺑﻪ ازای ﻫﺮ روز ﺗﺎﺧﯿﺮ در ﺗﺤﻮﯾﻞ ﭘﺮوژه )ﺣﺪاﮐﺜﺮ ‪ ٣‬روز( ‪ ١٠٪‬از ﻧﻤﺮهی آن ﮐﺎﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• ﻧﺤﻮهی ارﺳﺎل ﭘﺮوژه ﻣﺘﻌﺎﻗﺒﺎ در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫• ﺑﺮﻧﺎﻣﻪﻫﺎی ارﺳﺎﻟ ﻣ ﺑﺎﯾﺴﺖ ﺑﻪ زﺑﺎن ‪ Java‬ﺑﺎﺷﻨﺪ‪ .‬در ﺻﻮرت ﻧﯿﺎز ﺑﺮای اﺳﺘﻔﺎده از زﺑﺎﻧ دﯾ ﺮ ﺣﺪاﮐﺜﺮ ﺗﺎ ‪ ١‬آﺑﺎن ﺑﺎ‬
‫دﺳﺘﯿﺎرﻫﺎیآﻣﻮزﺷ ﻣﺮﺑﻮﻃﻪ ﻫﻤﺎﻫﻨﮓ ﮐﻨﯿﺪ‪.‬‬
‫• اﯾﻦ ﭘﺮوژه از ‪ ١٠٠‬ﻧﻤﺮه اﺳﺖ و ﻧﻤﺮات اﻣﺘﯿﺎزی آن ﻓﻘﻂ در ﺧﺼﻮص ﭘﺮوژهﻫﺎ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮﻧﺪ‪.‬‬
‫• در ﺻﻮرت ﻣﺸﺎﻫﺪهی ﺗﻘﻠﺐ ﺑﺮای ﻫﺮ دو ﻃﺮف ﻧﻤﺮهی ‪ ٠‬در اﯾﻦ ﭘﺮوژه ﻣﻨﻈﻮر ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪١‬‬
‫ﺳﯿﺴﺘﻢﭘﺎﯾﻪی ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ‐ ‪ ٨۵‬ﻧﻤﺮه‬
‫در اﯾﻦ ﭘﺮوژه‪ ،‬ﻗﺮار اﺳﺖ ﯾ‬
‫ﺳﯿﺴﺘﻢ ﭘﺎﯾﻪی ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﭘﯿﺎدهﺳﺎزی ﮐﻨﯿﺪ‪ .‬اﯾﻦ ﺳﯿﺴﺘﻢ ﺑﻪ ﻋﻨﻮان ورودی ﯾ‬
‫و ﺗﻤﺎﻣ ﻓﺎﯾﻞﻫﺎی درون آن را ﺑﻪ ﻋﻨﻮان ﯾ‬
‫آدرس ﻣ ﮔﯿﺮد‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ‪ ١‬ﺗﺤﻠﯿﻞ و ﺳﭙﺲ ﺷﺎﺧﺺﮔﺬاری ﻣ ﮐﻨﺪ و ﺳﭙﺲ ﺑﺎ ﮔﺮﻓﺘﻦ ﭘﺮﺳﻤﺎن ‪،٢‬‬
‫ﺳﻨﺪﻫﺎی ‪ ٣‬ﻣﺮﺗﺒﻂ را ﺑﺎزﯾﺎﺑﯽ ﻣ ﮐﻨﺪ‪ .‬و در ﻧﻬﺎﯾﺖ ﻣﻌﯿﺎرﻫﺎی ارزﯾﺎﺑﯽ را ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد ﺑﺪﺳﺖ ﻣ آورد‪ .‬ﺳﯿﺴﺘﻢ ﺷﻤﺎ‬
‫ﺑﺎﯾﺪ اﻣ ﺎﻧﺎت زﯾﺮ را ﻓﺮاﻫﻢ ﮐﻨﺪ و ﻫﺮ ﻗﺴﻤﺖ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﺪ ﺑﻪ ﺗﻨﻬﺎﯾﯽ اﺟﺮا ﺷﻮد و ﮐﺎر ﺧﻮاﺳﺘﻪ در ﻗﺴﻤﺖ ﺗﺤﻮﯾﻞ را اﻧﺠﺎم دﻫﺪ‪.‬‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﺑﻪ ﻃﻮر ﺗﻘﺮﯾﺒﯽ ﻧﯿﻤ از ﻧﻤﺮهی ﻫﺮ ﺑﺨﺶ در ﻗﺴﻤﺖ ﺗﺤﻮﯾﻞ ﺣﻀﻮری و در ﺻﻮرت اﻧﺠﺎم ﮐﺎر ﺧﻮاﺳﺘﻪ ﺷﺪه داده‬
‫ﻣ ﺷﻮد‪ .‬ﺷﯿﻮهی ﺧﺮوﺟ و ورودیﻫﺎی ذﮐﺮ ﺷﺪه ﺳﺨﺖﮔﯿﺮاﻧﻪ ﻧﻤ ﺑﺎﺷﺪ و ﺑﻪ ﻣﻨﻈﻮر راﻫﻨﻤﺎﯾﯽ ﻣﻄﺮح ﺷﺪهاﻧﺪ‪.‬‬
‫ﻣﺠﻤﻮﻋﻪ اﺳﻨﺎد‬
‫ﺑﻪ ﻣﻨﻈﻮر ﺗﺴﺖ ﻣﺠﻤﻮع اﺳﻨﺎدی از ﻣﺠﻠﻪی ‪ Time‬اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ ﺗﻌﺪادی ﭘﺮﺳﻤﺎن و ﻟﯿﺴﺖ اﺳﻨﺎد ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﺮ‬
‫ﭘﺮﺳﻤﺎن ﻧﯿﺮ در ﮐﻨﺎر ﻣﺠﻤﻮﻋﻪ ﺗﻬﯿﻪ ﺷﺪه اﺳﺖ‪.‬در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﻣ ﺎن دارد از ﻣﺠﻤﻮﻋﻪ اﺳﻨﺎد ﻣﺘﻔﺎوﺗ ﺑﺮای ﻫﺮ ﺑﺨﺶ‬
‫اﺳﺘﻔﺎده ﺷﻮد‪ .‬ﮐﻪ ﻣﺤﺘﻮای آنﻫﺎ ﺑﺎ اﯾﻦ ﻣﺠﻤﻮﻋﻪ اﺳﻨﺎد ﻣﺘﻔﺎوت وﻟ ﺷﯿﻮهی ﻧﺎمﮔﺬاری ﺳﻨﺪﻫﺎ و ﭘﺮﺳﻤﺎنﻫﺎ و ﻏﯿﺮه ﺑﻪ ﻫﻤﯿﻦ ﺷ ﻞ‬
‫ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫‪١ Corpus‬‬
‫‪٢ Query‬‬
‫‪٣ Document‬‬
‫‪١‬‬
‫‪١.١‬‬
‫ﺗﺤﻠﯿﻞ ﺳﻨﺪ ‐ ‪ ١۵‬ﻧﻤﺮه‬
‫اﯾﻦ ﻗﺴﻤﺖ وﻇﯿﻔﻪی ﭘﺮدازش ﺳﻨﺪ ﯾﺎ ﭘﺮﺳﻤﺎن ﮐﻪ ﺑﻪ ﻋﻨﻮان ورودی داده ﻣ ﺷﻮﻧﺪ‪ ،‬را ﺑﺮ ﻋﻬﺪه دارد‪.‬‬
‫‪ token‬را ﻫﺮ ﻣﺠﻤﻮﻋﻪای از اﻟﻔﺒﺎی اﻧﮕﻠﯿﺴ و اﻋﺪاد و ﻧﻘﻄﻪ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪.‬‬
‫• ﺑﻪ ﻣﻨﻈﻮر راﺣﺘ ‪ ،‬ﯾ‬
‫• ﻧﻘﻄﻪ ﺑﻪ ﺗﻨﻬﺎﯾﯽ ‪ token‬ﻣﺤﺴﻮب ﻧﻤ ﺷﻮد‪.‬‬
‫• ﺑﻬﺘﺮ اﺳﺖ ﺗﻤﺎﻣ ‪ token‬ﻫﺎ ﺑﺎ ﺣﺮوف ﮐﻮﭼ‬
‫ذﺧﯿﺮه ﺷﻮﻧﺪ‪.‬‬
‫‪ token‬ﻣﺤﺴﻮب ﻣ ﺷﻮﻧﺪ‪.‬‬
‫• ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ آدرس اﯾﻨﺘﺮﻧﺘ و اﯾﻤﯿﻞ ﻓﻘﻂ ﯾ‬
‫• اﺳﺘﻔﺎده از ‪ Regular Expression‬ﻧﻪ ﺗﻨﻬﺎ ﮐﺎر ﺷﻤﺎ را راﺣﺖ ﻣ ﮐﻨﺪ ﺑﻠ ﻪ ‪ ۵‬ﻧﻤﺮهی اﯾﻦ ﺑﺨﺶ را ﻧﯿﺰ ﺑﻪ ارﻣﻐﺎن ﻣ آورد‪.‬‬
‫• اﺳﺘﻔﺎده از ﺗﮑﻨﯿ‬
‫‪ ،Dropping Common Terms‬ﺣﺬف ‪ stopword‬ﻫﺎ در ﻫﻨﮕﺎم ﺗﺤﻠﯿﻞ‪ ،‬ﻧﯿﺰ ‪ ۵‬ﻧﻤﺮهی دﯾ ﺮ دارد‪.‬‬
‫ﻟﯿﺴﺘ از اﯾﻦ ﮐﻠﻤﺎت در ﻓﺎﯾﻠ ﺑﺎ ﻫﻤﯿﻦ ﻧﺎم در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﺑﺎﯾﺪ دارای دو ﮐﺎرﮐﺮد ‪ ۴‬زﯾﺮ ﺑﺎﺷﺪ‪:‬‬
‫‪1 p u b l i c b o o l e a n h a s N e x t ( ) ; / / r e t u r n t r u e i f and o n l y i f t h e r e i s more t o k e n l e f t‬‬
‫‪2 public String next ( ) ; / / r e t u r n the next token‬‬
‫ﺷ ﻞ ‪ :١‬ﺷﻤﺎی ﻣﻄﻠﻮب ‪tokenizer‬‬
‫⊙‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﯾﻦ ﻗﺴﻤﺖ از ﺑﺮﻧﺎﻣﻪ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﯿﺪ ﺑﺮ روی ﯾ‬
‫ﻓﺎﯾﻞ ﺑﺮﻧﺎﻣﻪی ﺧﻮد را اﺟﺮا ﮐﻨﯿﺪ و ﺗﺎ وﻗﺘ ﮐﻪ‬
‫‪ token‬ﺟﺪﯾﺪ در ﺳﻨﺪ وﺟﻮد دارد‪ token ،‬ﺑﻌﺪی را ﻧﻤﺎﯾﺶ دﻫﺪ‪:‬‬
‫‪1 h e l l o . world‬‬
‫‪2 2infinity‬‬
‫‪3 m i r @ s h a r i f . edu‬‬
‫‪4 ...‬‬
‫ﺷ ﻞ ‪ :٢‬ﺧﺮوﺟ ﻣﻄﻠﻮب‬
‫‪٢.١‬‬
‫ﺷﺎﺧﺺﮔﺬاری ‐ ‪ ٣٠‬ﻧﻤﺮه‬
‫اﯾﻦ ﻗﺴﻤﺖ وﻇﯿﻔﻪی ‪ indexing‬ﺳﻨﺪﻫﺎ را ﺑﺮ ﻋﻬﺪه دارد‪ .‬ﺷﺎﺧﺺﮔﺬار ﺷﻤﺎ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﺪ ﯾ‬
‫ﮐﻨﺪ‪ .‬در ورودی ﺑﺎﯾﺪ آدرس ﯾ‬
‫ﺳﻨﺪ ﺟﺪﯾﺪ ﺑﻪ ﺷﺎﺧﺺ ﻓﻌﻠ اﺿﺎﻓﻪ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« درﯾﺎﻓﺖ ﺷﻮد و ﻋﻤﻠﯿﺎت ﺷﺎﺧﺺﮔﺬاری ﺑﺎﯾﺪ روی ﺗﻤﺎﻣ ﻓﺎﯾﻞﻫﺎی آن ﻣﺠﻤﻮﻋﻪ‬
‫ﻓﺎﯾﻞ ‪ ۵‬ﻧﻤﺮهی از اﯾﻦ ﺑﺨﺶ را ﺗﺸ ﯿﻞ ﻣ دﻫﺪ‪.‬‬
‫اﻧﺠﺎم ﺷﻮد‪ .‬اﻣ ﺎن ‪ load & save‬ﺷﺎﺧﺺ ﺗﻮﻟﯿﺪ ﺷﺪه درون ﯾ‬
‫‪۴ Functionality‬‬
‫‪٢‬‬
‫⊙‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ«‪ ،‬ﺷﺎﺧﺺﮔﺬاری را اﻋﻤﺎل‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﯾﻦ ﻗﺴﻤﺖ از ﺑﺮﻧﺎﻣﻪ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﯿﺪ ﺑﻌﺪ از درﯾﺎﻓﺖ ﯾ‬
‫ﮐﻨﯿﺪ و دﯾ ﺸﻨﺮی را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪:‬‬
‫‪1 aberrant‬‬
‫‪2 abeyance‬‬
‫‪3 abscond‬‬
‫‪4 abstemious‬‬
‫‪5 ....‬‬
‫ﺷ ﻞ ‪ :٣‬ﺧﺮوﺟ ﻣﻄﻠﻮب ﺑﺮای دﯾ ﺸﻨﺮی‬
‫⊙‬
‫ﻋﻼوه ﺑﺮ آن ﺑﺎﯾﺪ ﺑﺘﻮاﻧﯿﺪ ‪ posting‬ﻟﯿﺴﺖ ﺑﻪ ازای ﯾ‬
‫‪ term‬ﺧﺎص ﮐﻪ ﺑﻪ ﻋﻨﻮان ورودی داده ﻣ ﺷﻮد را ﺑﻪ ﺻﻮرت‬
‫‪ Term: Total Document - Doc ID [Term Frequency], ...‬ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪:‬‬
‫‪1 > cold‬‬
‫]‪2 cold : 3 − 1 [10] , 3 [4] , 5 [99‬‬
‫‪3 > Fusion‬‬
‫] ‪4 f u s i o n : 6 − 1 [ 6 4 ] , 2 [ 3 2 ] , 3 [ 1 6 ] , 5 [ 8 ] , 8 [ 4 ] , 13 [ 2‬‬
‫‪5 ....‬‬
‫ﺷ ﻞ ‪ :۴‬ﺧﺮوﺟ ﻣﻄﻠﻮب ﺑﺮای ‪ posting‬ﻟﯿﺴﺖ‬
‫‪٣.١‬‬
‫ﺑﺎزﯾﺎﺑﯽ ‐ ‪ ٢٠‬ﻧﻤﺮه‬
‫در اﯾﻦ ﻗﺴﻤﺖ اﺑﺘﺪا ﯾ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ﺑﻪ ﻣﻨﻈﻮر ﺷﺎﺧﺺ ﮔﺬاری )ﯾﺎ ﯾ‬
‫ﻓﺎﯾﻞ ﺷﺎﻣﻞ ﺷﺎﺧﺺ ذﺧﯿﺮه ﺷﺪه( ﺑﻪ ﻋﻨﻮان‬
‫ورودی داده ﻣ ﺷﻮد‪ .‬ﺑﻌﺪ از ﭘﺎﯾﺎن ﮐﺎر ﺷﺎﺧﺺ ﮔﺬار‪ ،‬در اﯾﻦ ﻗﺴﻤﺖ »ﺷﻤﺎرهی ﻣﺪل ﺑﺎزﯾﺎﺑﯽ‪ ،‬ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد ﺳﻨﺪ ﺑﺎزﯾﺎﺑﯽ ﺷﺪه‪،‬‬
‫”ﭘﺮﺳﻤﺎن”« ﺑﻪ ﻋﻨﻮان ورودی داده ﻣ ﺷﻮد و ﺳﯿﺴﺘﻢ در ﺟﻮاب ﺳﻨﺪﻫﺎی ﺑﺎزﯾﺎﺑﯽ ﺷﺪه ﺑﻪ ﺗﺮﺗﯿﺐ ﺷﺒﺎﻫﺖ )در ﻣﺪل ﺑﻮﻟ ﺗﺮﺗﯿﺐ‬
‫ﺻﻌﻮدی( را ﺑﺮﻣ ﮔﺮداﻧﺪ‪ .‬ﻣﺪل اول ﺑﺎزﯾﺎﺑﯽ ﺑﻮﻟ ‪ ۵‬و ﺑﺎﻗ ﻣﺪلﻫﺎ ﺑﺎزﯾﺎﺑﯽ ﺗﺮﺗﯿﺐدار ‪ ۶‬ﻫﺴﺘﻨﺪ‪:‬‬
‫• ‪ :٠‬ﺑﺎزﯾﺎﺑﯽ ﺑﻮﻟﯿﻦ ﺑﻪ ﺻﻮرت ‪ and‬ﺑﻪ ﮔﻮﻧﻪای ﮐﻪ ﮐﻠﻤﺎت ﭘﺮﺳﻤﺎن ‪ q‬ﻫﻤ‬
‫در ﺳﻨﺪ ‪ d‬ﻣﻮﺟﻮد ﺑﺎﺷﻨﺪ‬
‫• ‪ :١‬ﺗﻌﺪاد ﮐﻠﻤﺎت از ﭘﺮﺳﻤﺎن ‪ q‬ﮐﻪ در ﺳﻨﺪ ‪ d‬وﺟﻮد دارﻧﺪ‬
‫• ‪ :٢‬ﻣﺠﻤﻮع ﺗﻌﺪاد رﺧﺪاد ﮐﻠﻤﺎت ﭘﺮﺳﻤﺎن ‪ q‬در ﺳﻨﺪ ‪d‬‬
‫• ‪ :٣‬ﺿﺮب داﺧ ‪ q،d‬در ﻓﻀﺎی ﺑﺮداری ‪ tf-idf‬ﻣﺪل ‪lnn.ltn‬‬
‫• ‪ :۴‬ﮐﺴﯿﻨﻮس زاوﯾﻪی ﺑﯿﻦ ‪ q،d‬در ﻓﻀﺎی ﺑﺮداری ‪ tf-idf‬ﻣﺪل ‪lnc.ltc‬‬
‫⊙‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری ﺑﺎﯾﺪ ﺑﺘﻮان اﺑﺘﺪا ﯾ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ﺑﻪ ﻣﻨﻈﻮر ﺷﺎﺧﺺﮔﺬاری )ﯾﺎ ﯾ‬
‫ﻓﺎﯾﻞ ﺷﺎﻣﻞ ﺷﺎﺧﺺ‬
‫ذﺧﯿﺮه ﺷﺪه( ﺑﻪ ﻋﻨﻮان ورودی داد و ﺑﻌﺪ از ﭘﺎﯾﺎن ﻋﻤﻠﯿﺎت ﺷﺎﺧﺺﮔﺬاری‪ ،‬ﺑﻪ اﯾﻦ ﻗﺴﻤﺖ »ﺷﻤﺎرهی ﻣﺪل ﺑﺎزﯾﺎﺑﯽ‪ ،‬ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد‬
‫‪Retrieval‬‬
‫‪۵ Boolean‬‬
‫‪Retrieval‬‬
‫‪٣‬‬
‫‪۶ Ranked‬‬
‫ﺳﻨﺪ ﺑﺎزﯾﺎﺑﯽ ﺷﺪه‪” ،‬ﭘﺮﺳﻤﺎن”« را ﺑﻪ ﻋﻨﻮان ورودی داد )ﺳﯿﻨﺘﮑﺲ ﺑﻪ ﮐﺎر ﺑﺮده ﺷﺪه اﻟﺰاﻣ ﻧﯿﺴﺖ( و ﺳﯿﺴﺘﻢ ﺳﻨﺪﻫﺎی ﺑﺎزﯾﺎﺑﯽ‬
‫ﺷﺪه را ﺑﻪ ﺗﺮﺗﯿﺐ ﻧﺰوﻟ ﺷﺒﺎﻫﺖ )در ﻣﺪل ﺑﻮﻟ ﻓﻘﻂ ﺑﻪ ﺻﻮرت ﺻﻌﻮدی ﺷﻤﺎره ﺳﻨﺪﻫﺎ( ﻧﻤﺎﯾﺶ دﻫﺪ‪:‬‬
‫” ‪1 > 1 3 ” Modern I n f o r m a t i o n R e t r i e v a l‬‬
‫‪2 1 0 , 1 , 56‬‬
‫” ‪3 > 4 5 ” Modern Age‬‬
‫‪4 4, 5, 1, 2, 3‬‬
‫” ‪5 > 0 100 ” H e l l o World‬‬
‫‪6 1, 2, 3, 4, 5, 6, 7, 8‬‬
‫‪7 ....‬‬
‫ﺷ ﻞ ‪ :۵‬ﺧﺮوﺟ ﻣﻄﻠﻮب ﺑﺮای ﺑﺎزﯾﺎﺑﯽ‬
‫‪۴.١‬‬
‫ارزﯾﺎﺑﯽ ‐ ‪ ٢٠‬ﻧﻤﺮه‬
‫ﺑﺮای ﺑﺮرﺳ و ﻣﻘﺎﯾﺴﻪی ﻋﻤﻠ ﺮد ﻣﺪلﻫﺎی ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺗﺮﺗﯿﺐدار‪ ،‬ﮐﻪ ﻣﻘﺎدﯾﺮﺷﺎن ﺑﻪ ﻃﻮر ﻣﯿﺎﻧﮕﯿﻦ ﺑﺮای ﮐﻞ ﻣﺠﻤﻮﻋﻪ‬
‫ﭘﺮﺳﻤﺎن ﻫﺎ ﺣﺴﺎب ﻣ ﺷﻮد‪ ،‬از ‪ ٢‬ﻣﻌﯿﺎر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ و ﻫﺮ ﯾ‬
‫را ﺑﻪ ازای ‪ ۴‬ﻣﺪل ذﮐﺮ ﺷﺪه در ﺑﺨﺶ ﻗﺒﻞ ﺑﺪﺳﺖ آورﯾﺪ‪.‬‬
‫• ‪Recall & Precision‬‬
‫• )‪Mean Average Precision (MAP‬‬
‫ﺑﺮای ﻣﺪلﻫﺎی ﺑﺎزﯾﺎﺑﯽ ﺗﺮﺗﯿﺐ دار ﺣﺪاﮐﺜﺮ ﺳﻨﺪ ﺑﺎزﯾﺎﺑﯽ ﺷﺪه را ﺑﺮاﺑﺮ ﺑﺎ ‪ ٢٠‬ﻗﺮار دﻫﯿﺪ و ﺑﺮای ﻣﺪل ﺑﺎزﯾﺎﺑﯽ ﺑﻮﻟ ﺗﻤﺎم ﺳﻨﺪﻫﺎی‬
‫ﺑﺎزﯾﺎﺑﯽ ﺷﺪه را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ‪.‬‬
‫⊙‬
‫اﯾﻦ ﺑﺨﺶ در ورودی آدرس »ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« »ﻣﺠﻤﻮﻋﻪ ﭘﺮﺳﻤﺎن« و »ﺟﻮاب درﺳﺖ ﺑﺮای ﻫﺮ ﭘﺮﺳﻤﺎن« را ﻣ ﮔﯿﺮد و ﺑﻪ ازای‬
‫ﻫﺮ ﻣﺪل‪ ،‬ﻫﺮ دو ﻣﻌﯿﺎر )ﺑﺮای ﻣﺪل ﺷﻤﺎره ‪ ٠‬ﻓﻘﻂ ﻣﻌﯿﺎر اول( را ﭼﺎپ ﻣ ﮐﻨﺪ‪:‬‬
‫‪1 Model 0 : R= 0 . 4 5 P = 0 . 9 9‬‬
‫‪2 Model 1 : R= 0 . 4 5 P = 0 . 9 9 MAP= 0 . 5 6 9‬‬
‫‪3 Model 2 : R= 0 . 4 5 P = 0 . 9 9 MAP= 0 . 5 6 9‬‬
‫‪4 Model 3 : R= 0 . 4 5 P = 0 . 9 9 MAP= 0 . 5 6 9‬‬
‫‪5 Model 4 : R= 0 . 4 5 P = 0 . 9 9 MAP= 0 . 5 6 9‬‬
‫ﺷ ﻞ ‪ :۶‬ﺧﺮوﺟ ﻣﻄﻠﻮب ﺑﺮای ارزﯾﺎﺑﯽ‬
‫‪۴‬‬
‫ارﺗﻘﺎی ﺳﯿﺴﺘﻢ ‐ ‪ ۴٠‬ﻧﻤﺮه‬
‫‪٢‬‬
‫ﻣﺸ ﻞ ﮐﺠﺎﺳﺖ؟‬
‫‪١.٢‬‬
‫از ﻣﺤﺪودﯾﺖﻫﺎی ﻣﻮﺟﻮد در ﺳﯿﺴﺘﻢ ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺷﻤﺎ‪ ،‬ﭘﺸﺘﯿﺒﺎﻧ ﻧﮑﺮدن از »ﻋﺒﺎرات ﭼﻨﺪﮐﻠﻤﻪای« ‪ ٧‬اﺳﺖ‪ .‬ﻫﻤﺎﻧﮕﻮﻧﻪ‬
‫ﯾ‬
‫ﮐﻪ ﻣ داﻧﯿﺪ در ﻣﺪل ‪ Bag of Words‬ﮐﻠﻤﺎت ﺑﻪ ﺗﻨﻬﺎﯾﯽ اﻫﻤﯿﺖ دارﻧﺪ‪ .‬در ﻧﺘﯿﺠﻪ ﺑﺎزﯾﺎﺑﯽ ﻣﺘﻨﺎﺳﺐ ﺑﺮای ﭘﺮﺳﻤﺎنﻫﺎﯾﯽ ﮐﻪ از‬
‫ﻋﺒﺎرات ﭼﻨﺪﮐﻠﻤﻪای ﺑﺎ ﻣﻌﻨﺎی ﺧﺎص اﺳﺘﻔﺎد ﻣ ﮐﻨﻨﺪ ﺻﻮرت ﻧﻤ ﮔﯿﺮد‪.‬‬
‫‪٢.٢‬‬
‫ﯾ‬
‫راهﺣﻞ ﭼﯿﺴﺖ؟‬
‫از راهﺣﻞﻫﺎی ﻣﻄﺮح ﺷﺪه ﺑﺮای اﯾﻦ ﻣﺸ ﻞ اﺳﺘﻔﺎده از ‪ n-word‬ﻫﺎ اﺳﺖ‪ .‬وﻟ ﺑﻪ ﻋﻠﺖ ﻣﺤﺪودﯾﺖﻫﺎی اﺳﺘﻔﺎده از اﯾﻦ روش‪،‬‬
‫از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﻣ ﺷﻮد ﺗﺎ ﺑﻪ ﺻﻮرت آﻣﺎری و ﺑﺎ اﺳﺘﻔﺎده از ‪ biword‬ﻫﺎ اﯾﻦ ﻣﺸ ﻞ را ﭘﻮﺷﺶ دﻫﯿﺪ‪.‬‬
‫‪٣.٢‬‬
‫ﺷﻤﺎ درﺳﺖ ﮐﻨﯿﺪ!‬
‫ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ اﯾﻦ ﺑﺨﺶ ﺑﻪ ﮔﻮﻧﻪای ﭘﯿﺎدهﺳﺎزی ﺷﻮد ﮐﻪ ﺑﺘﻮان ﺑﺮﻧﺎﻣﻪ را ﺑﺎ ‪ /‬ﺑﺪون اﯾﻦ اﻣ ﺎن از اﺑﺘﺪا اﺟﺮا ﮐﺮد‪ .‬ﻫﻤﺎﻧﻨﺪ ﻗﺒﻞ‬
‫ﺳﯿﺴﺘﻢ ﺑﺎزﯾﺎﺑﯽ ﺷﻤﺎ ﺑﺎﯾﺪ ﯾ‬
‫آدرس ﺑ ﯿﺮد و ﺗﻤﺎﻣ ﻓﺎﯾﻞﻫﺎی درون آن را ﺑﻪ ﻋﻨﻮان ﯾ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ‪ ٨‬ﺷﺎﺧﺺﮔﺬاری ﮐﻨﺪ‬
‫و ﺳﭙﺲ ﺑﺎ ﮔﺮﻓﺘﻦ ﭘﺮﺳﻤﺎن‪ ،‬ﺳﻨﺪﻫﺎی ﻣﺮﺗﺒﻂ را ﺑﺎزﯾﺎﺑﯽ ﮐﻨﺪ‪.‬‬
‫‪١.٣.٢‬‬
‫ﺷﻨﺎﺳﺎﯾﯽ ﻋﺒﺎرات دوﮐﻠﻤﻪای ‐ ‪ ١۵‬ﻧﻤﺮه‬
‫در ﮔﺬر اول از روی »ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ﺗﻤﺎم »ﻋﺒﺎرات دوﮐﻠﻤﻪای« ‪ ،٩‬ﺑﻪ ﻫﻤﺮاه ﺗﻌﺪاد ﺗﮑﺮار ﻫﺮ ﯾ‬
‫را ﺗﻌﯿﯿﻦ ﮐﻨﯿﺪ‪ .‬ﺳﭙﺲ‬
‫ﻣﺠﻤﻮﻋﻪای ﺑﺎ ﺑﯿﺸﺘﺮﯾﻦ ﺗﮑﺮار از ‪ biword‬ﻫﺎ را اﻧﺘﺨﺎب ﮐﻨﯿﺪ‪ .‬ﺣﺪاﮐﺜﺮ اﻧﺪازهی اﯾﻦ ﻣﺠﻤﻮﻋﻪ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﺛﺎﺑﺘ در ﺑﺮﻧﺎﻣﻪ‬
‫ﺑﺎ ﻣﻘﺪار ﭘﯿﺶﻓﺮض ‪ ١٠٠٠‬و ﺑﺎ ﻗﺎﺑﻠﯿﺖ ﺗﻨﻈﯿﻢ‪ ،‬وﺟﻮد ﺑﺎﺷﺪ‪ .‬ﯾ‬
‫‪ biword‬در واﻗ دو ‪ token‬ﺧﺮوﺟ ﻣﺘﻮاﻟ از ﺑﺮﻧﺎﻣﻪی‬
‫‪ tokenizer‬ﺷﻤﺎ اﺳﺖ‪.‬‬
‫⊙‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﯾﻦ ﻗﺴﻤﺖ از ﺑﺮﻧﺎﻣﻪ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﯿﺪ ﺑﺮ روی ﯾ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ﺑﺮﻧﺎﻣﻪی ﺧﻮد را اﺟﺮا ﮐﻨﯿﺪ و‬
‫‪ biword‬ﻫﺎی ﭘﺮ ﺗﮑﺮار را ﺑﻪ ﺻﻮرت ‪ 2-Word Phrase: Frequency‬ﺑﻪ ﺗﺮﺗﯿﺐ ﻧﺰوﻟ ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪:‬‬
‫‪1 Cold F u s i o n : 52‬‬
‫‪2 F u s i o n R e a c t o r : 46‬‬
‫‪3 ...‬‬
‫ﺷ ﻞ ‪ :٧‬ﺧﺮوﺟ ﻣﻄﻠﻮب‬
‫‪Phrase‬‬
‫‪٧ Multi-Word‬‬
‫‪٨ Corpus‬‬
‫‪٩ biwords‬‬
‫‪۵‬‬
‫‪٢.٣.٢‬‬
‫ﺗﺤﻠﯿﻞ و ﺷﺎﺧﺺﮔﺬای ‐ ‪ ١۵‬ﻧﻤﺮه‬
‫ﺗﺎ ﺑﻪ اﯾﻨﺠﺎی ﮐﺎر ﻟﯿﺴﺘ از »ﻋﺒﺎرات« ﺑﻪ دﺳﺖ آﻣﺪه اﺳﺖ‪ .‬در ﻗﺴﻤﺖ ﺗﺤﻠﯿﻞ ﺳﯿﺴﺘﻢ ﺑﺎزﯾﺎﺑﯽ ﺧﻮد‪ ،‬در ﻫﻨﮕﺎم ﺑﺮﺧﻮرد ﺑﺎ اﯾﻦ‬
‫»ﻋﺒﺎرات« ﺑﻪ ﺻﻮرت ﯾ‬
‫»ﻋﺒﺎرت« ﯾ‬
‫‪ token‬رﻓﺘﺎر ﮐﻨﯿﺪ‪ .‬ﯾﻌﻨ ﮐﻠﻤﺎت ﺗﺸ ﯿﻞ دﻫﻨﺪهی ﻋﺒﺎرت‪ token ،‬ﻣﺤﺴﻮب ﻧﻤ ﺷﻮﻧﺪ و ﮐﻞ‬
‫‪ token‬اﺳﺖ‪ .‬ﺑﺮای ﻣﺜﺎل ﺟﻤﻠﻪی ‪ Very Cold Fusion Reactor‬را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﻧﺘﯿﺠﻪی ‪tokenizer‬‬
‫ﺷﻤﺎ ‪ Very, Cold Fusion, Fusion Reactor token ٣‬ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫⊙‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﯾﻦ ﻗﺴﻤﺖ از ﺑﺮﻧﺎﻣﻪ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﯿﺪ ﺑﺮ روی ﯾ‬
‫»ﻣﺠﻤﻮﻋﻪ ﺳﻨﺪ« ﻟﯿﺴﺖ ‪ posting‬ﺷﺎﺧﺺﮔﺬاری‬
‫ﺷﺪهی ﻓﻘﻂ ‪ biword‬ﻫﺎ را ﺑﻪ ﺻﻮرت ‪ 2-Word Phrase: Total Document - Doc ID [Term Frequency], ...‬و ﺑﻪ‬
‫ﺗﺮﺗﯿﺐ اﻟﻔﺒﺎﯾﯽ ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪:‬‬
‫] ‪1 Cold F u s i o n : 4 − 1 [ 1 0 ] , 3 [ 1 ] , 7 [ 1 3 ] , 13 [ 3‬‬
‫]‪2 Fusion Reactor : 5 − 1 [128] , 2 [64] , 3 [32] , 5 [16] , 8 [8‬‬
‫‪3 ...‬‬
‫ﺷ ﻞ ‪ :٨‬ﺧﺮوﺟ ﻣﻄﻠﻮب‬
‫‪٣.٣.٢‬‬
‫ﻫﻤﺎﻧﻨﺪ ﯾ‬
‫ﺑﺎزﯾﺎﺑﯽ ‐ ‪ ١٠‬ﻧﻤﺮه‬
‫ﺳﻨﺪ ﺑﺎﯾﺪ ﻧﮑﺎت ذﮐﺮ ﺷﺪه در ﺑﺎﻻ ﻧﻈﯿﺮ ‪ token‬ﺑﻨﺪی ﺻﺤﯿﺢ‪ ،‬را روی ﭘﺮﺳﻤﺎن ﺧﻮد اﻋﻤﺎل ﮐﻨﯿﺪ و ﺳﭙﺲ ﻣﺎﻧﻨﺪ ﻗﺒﻞ ﺑﻪ‬
‫ﺟﺴﺘﺠﻮ ﺑﭙﺮدازﯾﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ اﮔﺮ در ﭘﺮﺳﻤﺎن ﺷﻤﺎ ﯾ‬
‫‪ biword‬ﭘﺮﮐﺎرﺑﺮد وﺟﻮد دارد آن را ﺷﻨﺎﺳﺎﯾﯽ و ﺑﻪ ﺻﻮرت ﯾ‬
‫در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﻫﻤﺎنﮔﻮﻧﻪ ﮐﻪ در ‪ tokenizing‬ﺳﻨﺪ‪ ،‬ﮐﻠﻤﺎت ﺗﺸ ﯿﻞ دﻫﻨﺪهی ﯾ‬
‫‪term‬‬
‫‪ biword‬ﺧﻮد ﺗﻮﮐﻦ ﻣﺤﺴﻮب ﻧﻤ ﺷﺪﻧﺪ‬
‫در ﭘﺮﺳﻤﺎن ﻧﯿﺰ اﯾﻦﮔﻮﻧﻪ اﺳﺖ‪ .‬ﺑﺮای آﺷﻨﺎﯾﯽ ﺑﺎ ﻣﺪلﻫﺎی ﺑﺎزﯾﺎﺑﯽ و ورودیﻫﺎی اﯾﻦ ﻗﺴﻤﺖ ﺑﻪ ﺑﺨﺶ ‪) ١٬٣‬ﺑﺎزﯾﺎﺑﯽ در ﺳﯿﺴﺘﻢ‬
‫ﭘﺎﯾﻪی ﺧﻮد( رﺟﻮع ﮐﻨﯿﺪ‪.‬‬
‫⊙‬
‫در ﻫﻨﮕﺎم ﺗﺤﻮﯾﻞ ﺣﻀﻮری اﯾﻦ ﻗﺴﻤﺖ از ﺑﺮﻧﺎﻣﻪ ﺑﺎﯾﺪ ﮐﺎرﺑﺮ ﺑﺘﻮاﻧﺪ ﻣﺎﻧﻨﺪ ﺑﺨﺶ ﺑﺎزﯾﺎﺑﯽ ‪ ١٬٣‬ورودی ﻣﻮرد ﻧﻈﺮ را وارد ﮐﻨﺪ‪،‬‬
‫و ﺷﻤﺎ ﻧﺘﯿﺠﻪی ﺟﺴﺘﺠﻮ را ﺑﻪ ﻫﻤﺎن ﺻﻮرت ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪:‬‬
‫” ‪1 > 1 4 ” Very Cold F u s i o n R e a c t o r‬‬
‫‪2 7 , 5 , 13 , 1‬‬
‫” ‪3 > 4 6 ” Fusion Reactor‬‬
‫‪4 1 , 2 , 3 , 5 , 8 , 13‬‬
‫ﺷ ﻞ ‪ :٩‬ﻧﺤﻮهی ﺗﻌﺎﻣﻞ ﻣﻄﻠﻮب‬
‫‪۶‬‬