A6
A7
Аниқланувчиларни
охирига
ўтказиш
1
2
3
4
5
6
7
8
9
10
(11)
11
(12)
12
(13)
13
(14)
14
(15)
15
(10)
W
0
w nn aa , b b
ва cc
qq
hh
d
1
1
W
1
w
xx mm
yy
gg
zz
ee
uu
W
2
1
W
3
1
7-қадам. Мулоҳазаларни рақамлаш
. Берилган сўроқ матн камида битта
мулоҳаза бўлиши табиий ҳолат. Бу қатламда
𝑊
3
элементларига
k
қиймати
берилади
(𝑤
𝑖
3
= 𝑘)
. Дастлаб
k=1.
𝑊
3
векторда фақат эквиланетлик қиймати
(𝑤
𝑖
3
= 1)
учраса
k=k+1
бўлади.
206
+
i=1..n
w[3,i]=1
w[3,i]=k
A7
A8
k=k+1
k=1
Кўчириш
Эквивалент
мулохазалар
1
2
3
4
5
6
7
8
9
10
10
11
12
13
14
W
0
w
nn
aa
,
b b
ва cc
qq
Х
hh
d
1
1
Х
W
1
w
xx mm
yy
Х
gg
zz
ee
uu
W
2
1
Х
W
3
1
1
1
1
1
1
1
1
1
Х
2
2
8-қадам. Сўз ажратмаларини тозалаш
.
𝑊
1
векторнинг объектга эга
элементлари
(
𝑤
𝑖
1
≠ 0
)
топилади ва
𝑊
0
= {𝑤
𝑖+1
0
}
векторнинг
d=1
шартини
қаноатлантирувчи элементлари (мулоҳазалардан кейин ажратиш белгилари)
бўлса,
𝑤
𝑖+1
0
нинг қиймати ўчирилади.
𝑊
⃖ (𝑗 = 𝑖 + 1. . 𝑛)
амали бажарилади.
+
i=1..n
d[i+1]=1
w[1,i]
A8
A9
Кўчириш
Ажратишларни
ўчириш
9-қадам. Мулоҳазаларни ажратиш (4-қатлам)
. Бу қатламда нечта
мулоҳаза мавжуд бўлса, уларга тартиб рақам бериш бажарилади.Агар объект
олдида қандайдир қиймат
(
𝑤
𝑖
1
≠ 0, 𝑤
𝑖−1
1
= 0
ва
𝑤
𝑖−1
0
≠ 0
)
бўлса, у ҳолда объект
аниқловчи, акс ҳолда аниқланувчи
(
𝑤
𝑖
1
≠ 0, 𝑤
𝑖−1
1
≠ 0
ва
𝑤
𝑖−1
0
= 0
)
бўлади.
207
+
i=1..n-1
w[1,i-1]
w[0,i-1]=
k=1
w[4,i]=k;
k=k+1;
A9
A10
w[1,i-1]
w[0,i-1]=
w[1,i]=
w[4,i]=k;
+
w[4,i]=0
+
4
қатлам
,
мулохазаларни
ажратиш
Аниқловчилар
Аниқланувчилар
1
2
3
4
5
6
7
8
9
10
11
12
13
14
W
0
w
nn
aa
,
b b
ва
cc
qq
hh
d
1
1
W
1
w
xx mm
yy
gg
zz
ee
uu
W
2
1
W
3
1
1
1
1
1
1
1
1
1
2
2
W
4
1
1
1
1
1
1
1
2
2
3
3
10-қадам. Қийматларни бириктириш
. Бу қадамда агар объект
қийматлари ўртасидаги сўз бириктириш қийматлари (вергул, “ҳам”, “ва” каби)
бўлмаса, мулоҳазалардаги қийматларни бириктириш амали бажарилади.
𝑊
0
векторни бўш эмас элементлари
(𝑤
𝑖
0
≠ 0)
топилди. Агар
𝑤
𝑖+1
0
≠ 0 &𝑑
𝑖+1
= 0
шартлар
бажарилса,
𝑤
𝑖+1
0
вектор қиймати
𝑤
𝑖
0
қийматига бириктирилади.
𝑊
⃖ (𝑗 = 𝑖 + 1. . 𝑛 + 1)
амалидан кейин жараён давом эттирилади.
+
i=1..n
w[0,i]
w[0,i+1]
d[i+1]=1
A10
A11
Кўчириш (i+1)
w[0,i]=w[0,i]& &w[0,i+1]
i=i-1
Қийматларни
бириктириш
1
2
2
3
4
5
6
7
8
9
10
11
12
13
W
0
w
nn aa
Х
,
b b
ва
cc
qq
hh
d
Х 1
1
W
1
w
Х
xx mm
yy
gg
zz
ee
uu
W
2
0
0
0
0
0
0
0
1
0
0
0
0
0
W
3
1
1
1
1
1
1
1
1
1
2
2
W
4
1
1
1
1
1
1
1
2
2
3
3
208
11-қадам. Қийматлараро муносабатлар (5-қатлам)
.
𝑊
0
вектордаги
𝑤
𝑗
0
≠
0 (𝑗 = 𝑙. . 𝑖)
ва
d=1
элементлар
𝑤
𝑖
4
≠ 0
шарти бажарилгунча бирлаштирилади ва
натижа
𝑊
5
векторнинг мос
𝑤
𝑖
5
элементига кўчирилади. Кўчириш жараёнида
𝑤
𝑗
0
қийматлар қўштирноққа олинган ҳолда вергул “,” белгиси билан ажратилади.
Истисноли сўров мант тузишнинг 9-қоидасига кўра мулоҳаза қийматлариаро
муносабатларнинг барчаси, яъни
𝑤
𝑖
0
элементдаги параметр
d=1
шартини
қаноатлантирса буларниҳаммаси “ва” маъносида ишлатилади. Бирлаштириш
жараёнида
d=1
элементларқаралмайди.
𝑊
⃖ (𝑗 = 𝑙 + 1. . 𝑛 + 1)
амали бажарилади ва
жараён давом этади.
+
i=1..n
w[0,i]
w[4,i]=
A11
A12
Кўчириш
c=
;
k=1
d[i]=1
c=c&v&«w[0,i]»; k=k+1
w[5,i]=c; c=
;
k=1
+
k=1
v=
v= ,
+
Қийматлараро
муносабатлар
W
0
w nn aa
,
b b
ва cc
qq
hh
W
1
w
xx mm
yy
gg
zz ee uu
W
2
1
W
3
1
1
1
1
1
1
1
1
2
2
W
4
1
1
1
1
1
1
2
2
3
3
W
5
«nn aa», «b b», «cc»
«qq»
«hh»
12-қадам. Объект билан қиймати муносабати (6-қатлам)
. Бу қатламда
мулоҳазаларни қийматлари ўртасидаги муносабат ўрнатилади. Бу жараён оддий
бўлиб, агар
𝑊
5
вектор элементларида бирорта вергул белгиси бўлмаса,
𝑊
6
векторнинг мос элементига тенглик “=” белгиси, акс ҳолда тегишлилик “
”
белгиси ўрнатилади.Берилган мисолда барча қатламларда келтирилган амаллар
бажарилиши натижасида қуйидаги жадвал пайдо бўлади.
Аниқловчи
Аниқланувчи
1
2
3
4
5
6
Объектлар
W
1
xx mm
yy
gg
zz
ee
uu
Инкор
W
2
1
Эквивалент
W
3
1
1
2
209
Мулоҳазалар
W
4
1
2
3
Қийматлар
W
5
«nn aa», «b b», «cc»
«qq»
«hh»
Муносабатлар
W
6
=
=
Юқорида
фойдаланувчининг
сўроқ
матнли
эҳтиёжини
формаллаштиришда қатламлаштириш усули кўриб чиқилди. Мазкур усулда
формаллашган матн шакли дастлаб фойдаланувчига тақдим этилади. Натижа
ушбу кўринишда ифодаланилади.
Берилганлар:
{(«nn aa», «b b», «cc») = xx mm
} {«qq» ≠ yy }
ёки
{«hh» = gg }
Аниқлансин:
zz ee uu
Тадқиқ
этилган
қадамларни
бирлаштирсак,
тўлиқ
қатламлаштиришалгоритмига эга бўлинади (кенгайтирилган кўринишииловада
берилган).
S
Матнни
узунлиги
ва
нормаллигини
текшириш
A1
A5
A6
Калит
сўзлар
базаси
A7
A4
A2
+
S
матнни
киритиш
A3
A8
A9
A10
A11
A12
Тамом
Мазкур алгоритм истеъмолчиларни табиий ўзбек тилидаги сўров
мурожаатларини формаллаштириш жараёнида асосий ишни бажаради. Натижада
берилган матн 6 та қатламга ажратилади. Бу қатламлардаги элементлар тизим
маълумотлар базасига SQL сўровларни автоматик яратишга асос бўлиб хизмат
қилади.
Демак, аниқловчи
sm
j
сўзларга мос КСБдан топилган индекслардир
(
id
j
>0
). Агар
id
j
=0
бўлса, у ҳолда
sm
j
аниқловчи объекти. Қатламлаштиришнинг
1-қадамига биноан,
id
j
кетма-кет 0 қийматига эга бўлса, у ҳолда
sm
j
қийматлари
мос равишда бирлаштирилади. Қийматларни бириктириш қуйидагича:
𝑗 = 1. . 𝑐𝑠
̅̅̅̅̅̅̅
{
𝑖𝑓(𝑖𝑑
𝑖
> 0 & 𝑖𝑑
𝑖+1
> 0)
{
𝑠𝑚
𝑗
= 𝑠𝑚
𝑗
∪ 𝑠𝑚
𝑗+1
,
𝑘 = 𝑗 + 1. . 𝑐𝑠 − 1
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅{𝑠𝑚
𝑘
= 𝑠𝑚
𝑘+1
, 𝑖𝑑
𝑘
= 𝑖𝑑
𝑘+1
}
𝑐𝑠 = 𝑐𝑠 − 1, 𝑗 = 𝑗 + 1
}
}
210
S
матнни
sm
j
ва
id
j
массивларидан фойдаланиб аниқловчи ва аниқланувчи
қисмларга ажратиш қуйидагича амалга оширилади.
𝑗 = 1. . 𝑐𝑠 − 1
̅̅̅̅̅̅̅̅̅̅̅̅
{
𝑑 = 𝑖𝑑
𝑖
+ 1, 𝑑′ = 𝑖𝑑
𝑖
𝑖𝑓(𝑑′ > 0 &𝑑 ≠ 0) // Аниқловчи
{
𝑢 + +; 𝑟 + +;
𝑞𝑡
𝑢
= 𝑡
𝑑
; 𝑞𝑝
𝑢
= 𝑝
𝑑
; 𝑏𝑠
𝑟
= 𝑡
𝑑
; 𝑞𝑠
𝑢
= 𝑠𝑚
𝑗+1
; 𝑗 + +}
𝑖𝑓(𝑑′ ≠ 0 &𝑑 ≠ 0) // Аниқланувчи
{
𝑞 + +; 𝑟 + +;
𝑤𝑡
𝑞
= 𝑡
𝑑
; 𝑤𝑝
𝑢
= 𝑝
𝑑
; 𝑏𝑠
𝑟
= 𝑡
𝑑
;}
}
бу ерда
u
–аниқловчилар ва
w
–аниқланувчилар сони,
qs
–аниқловчиларнинг
қийматлари,
qt, wt, qp, wp
–жадваллар ва мос майдонлари.
bs
–барча жадваллар.
bs
массивидаги элементлар такрорланиши мумкин. Шунинг учун такрорланувчи
элементлар ўчирилиб, массив қайта индексланади.
𝑏𝑠 = 𝑎𝑟𝑟𝑎𝑦_𝑢𝑛𝑖𝑞𝑢𝑒(𝑏𝑠)
𝑗 = 1. . 𝑟 {𝑖𝑓(𝑏𝑠
𝑗
> 0){𝑚 + +; 𝑏𝑠
𝑚
= 𝑏𝑠
𝑗
}}
бу ерда
m
–жадваллар сони ва
bs
ни асосий жадваллар деб юритамиз ҳамда у
берилган
T
тўпламнинг бир қисми бўлади, яъни,
bs
T
.
Кейинги қадамларида амаллар сонини камайтириш учун
t
массиви
bs
бўйича қайта индексланади, яъни
bs
ни
t
массив бошига чиқарилади.
𝑗 = 1. . 𝑚, 𝑖 = 1. . 𝑛 {𝑖𝑓(𝑏𝑠
𝑗
= 𝑡
𝑖
){𝑠𝑤𝑎𝑝(𝑡
𝑗
= 𝑡
𝑖
); 𝑖 = 𝑛}}
Бу ерда
l
–боғланишлар сони. Агар
l
асосий жадваллар (
bs
) сони
m
дан битта
кам бўлса,
bs
жадваллар ўртасида тўлиқ боғлиқлик мавжуд бўлади. Акс ҳолда
bs
жадвалларни боғловчи
t
қўшимча жадвалларни аниқлаш лозим бўлади. Қўшимча
жадвалларни аниқлашда “Контурга интилиш” алгоритмидан фойдаланилади.
Ушбу мақолада тавсия этилган моделлари, алгоритмлари ва архитектураси
турли манбалардан олинган маълумотларни қайта ишлаш учун ахборот-таҳлил
тизимини яратиш ва лойиҳалашда ишлатилиши мумкин.
Do'stlaringiz bilan baham: |