Վերջերս որոշեցի տվյալների բազայի որոնման ծրագիր գրել, որը տեղադրելու եմ իմ նախագծերից մեկում։
http://www.armtown.com
Սկսելով կոդավորումը, շատ շուտ հասկացա, որ բավական բարդ խնդիր է դա։
Իմ կոդը հիմնված է լինելու Full indexing մեթոդի վրա, որը շատ տարածված մեթոդ է։ Տեքստը ինդեքսավորելու համար ծրագիրը բառ առ բառ կարդում է այն ու գնահատելով բառի "արժեքր" տվյալ տքստում այն գրանցում 2 տարբեր աղյուսակներում։ Դրանցից առաջինը կոչվում է բառարան, որը 2 սյունականոց աղյուսակ է, որի առաջին սյունակում գրված է բառի հերթական համարը, իսկ մյուսում պարզապես բառր, մոտավորապես այսպես...
1 բարև
2 ես
3 եմ
...
Իսկ մյուս աղուսյակում գրանցվում է հոդվածի հերթական համարը, բառի հերթական համարը և բառի հետ կապված որոշ այլ ինֆորմացիա (արժեքը, դիրքը և այլն)
1 2 1.55214 – նշանակում է է–ին հոդվածում 2–րդ բառը (ես) ունի 1.55214 արժեք
...
Սա ուղղակի ծանոթացման համար էր։ Հիմա անցնենք բուն խնդրին։
Տվյալ մեթոդի թերություններից մեկն այն է որ «բառարանը» բավական ահռելի չափերի է հասնում շատ շուտ (մի քանի հազար տեքստ ինդեքսավորելուց այն կկաղմի մոտ 50-70% այդ տեղտերի)։ Դրա համար օգտագործում են տարբեր միջոցներ այն փոքրացնելու համար։
Այդ միջոցներից մեկը դա stemming-ն է, որի էությունը կայանում է նրանում, որ բառի արժեքը դա արմատն է և առանձնացնելով արմատը մենք չենք կորցնում իմաստը։ Օրինակ եթե այցելուն փնտրել է «մարդկություն» բառը ապա բոլոր հոդվածները, որոնք պարունակում են «մարդ» արմատով բառերը (մարդկային, մարդու, մարդը...) նույնպես կհետաքրքրեն նրան։ Այսինքն կստացվի, որ փոխանակ պահելու այդ բոլոր «մարդ» արմատով բառերը, մենք կարող ենք պահել միայն «մարդ» արմատը, որը մի քանի տասնյակ անգամ կփոքրացնի բառարանի չափսը եվ կնդլայնի փնտրման արդյունքները, որը նույնպես կարևոր է։
Խնդրում եմ օգնեք ինձ ամբողջացնելու վերջածանցների ցանկը, որը կօգնի ինձ ավելի որակյալ ծրագիր գրելուն ու կօգնի այցելուներին ճիշտ փնտրման արդյունքներ ներկայացնել։
Նախապես շնորհակալ եմ։
Մինչ այժմ սա է վերջածանցների ցուցակը (վերջածանց ասելով ես ավելի շուտ նկատի ունեմ բառի վերջի անօգտակար մասը՝ վերրածանց, որոշյալ անորոշ հոդ, հոգնակի մասնիկ և այլն)։
– ությունները|ություններն|ությունների|ություններին|ություններով|ություններից|ություններում
– ություններ
– ությունը|ությունն|ությանը|ությանն|ությամբ|ացնելու
– ություն|ության|ներին|ներով|ներում|ացնել
– ական|ականը|ականն|ապես|ները|ներում|ներով|ների|ային|անալ|որեն|ավոր
– ներ|երն|վել|ելու|ելի|ման|յան|ացի|երի|երն|երը|երով|երում|ումն|ումը
– յի|ին|եր|ում|ել|ով|ում|ցի|ից|ող|եց|ալ
– ի|ն|ը|ու