Text-Fabric is a rich API.
It might pay off to look at tutorials for various different corpora in TF.
from tf.app import use
A = use("among/fusus/tf/Lakhnawi:clone", version="0.4", writing="ara", hoist=globals())
F.otype.all
('piece', 'page', 'sentence', 'line', 'column', 'span', 'word')
F.otype.maxSlot
52371
Show the pieces
results = A.search("""
piece n* np* title*
""")
A.show(results)
0.00s 35 results
result 1
result 2
result 3
result 4
result 5
result 6
result 7
result 8
result 9
result 10
result 11
result 12
result 13
result 14
result 15
result 16
result 17
result 18
result 19
result 20
result 21
result 22
result 23
result 24
result 25
result 26
result 27
result 28
result 29
result 30
result 31
result 32
result 33
result 34
result 35
results
[(63039,), (63040,), (63041,), (63042,), (63043,), (63044,), (63045,), (63046,), (63047,), (63048,), (63049,), (63050,), (63051,), (63052,), (63053,), (63054,), (63055,), (63056,), (63057,), (63058,), (63059,), (63060,), (63061,), (63062,), (63063,), (63064,), (63065,), (63066,), (63067,), (63068,), (63069,), (63070,), (63071,), (63072,), (63073,)]
All words on the first line of every page
template = """
line ln=1
word
"""
results = A.search(template)
0.06s 4432 results
results[0:10]
[(57536, 1), (57536, 2), (57546, 23), (57546, 24), (57546, 25), (57549, 29), (57549, 30), (57549, 31), (57549, 32), (57560, 89)]
A.table(results, end=20)
n | p | line | word |
---|---|---|---|
1 | 1 1:1 | فصوص | |
2 | 1 1:1 | الحكم | |
3 | 1 2:1 | جميع | |
4 | 1 2:1 | الحقوق | |
5 | 1 2:1 | محفوظة | |
6 | 1 3:1 | بِسمِ | |
7 | 1 3:1 | اللهِ | |
8 | 1 3:1 | الرَّحْمٰـنِ | |
9 | 1 3:1 | الرَّحِيمِ | |
10 | 1 4:1 | الفهرست | |
11 | 1 5:1 | ٩١‐ | |
12 | 1 5:1 | [٦١] | |
13 | 1 5:1 | فصّ | |
14 | 1 5:1 | حكمة | |
15 | 1 5:1 | رحمانيّة | |
16 | 1 5:1 | في | |
17 | 1 5:1 | كلمة | |
18 | 1 5:1 | سليمانيّة…………………… | |
19 | 1 5:1 | ٢٤٢ | |
20 | 2 6:1 | [١وجه] |
All first words of the first line of every page
template = """
line ln=1
=: word
"""
results = A.search(template)
A.table(results, end=20)
0.05s 438 results
n | p | line | word |
---|---|---|---|
1 | 1 1:1 | فصوص | |
2 | 1 2:1 | جميع | |
3 | 1 3:1 | بِسمِ | |
4 | 1 4:1 | الفهرست | |
5 | 1 5:1 | ٩١‐ | |
6 | 2 6:1 | [١وجه] | |
7 | 2 7:1 | [١ظهر] | |
8 | 3 8:1 | [خُطْـبَةُ | |
9 | 3 9:1 | وَصَل | |
10 | 3 10:1 | فَقُلْتُ: | |
11 | 3 11:1 | الرُّوعِ | |
12 | 3 12:1 | يُنْزَلُ | |
13 | 3 13:1 | وَمِنَ | |
14 | 4 14:1 | [١]﴿ | |
15 | 4 15:1 | جَامِـعٍ | |
16 | 4 16:1 | فَـكَانَكَمِرآةٍ | |
17 | 4 17:1 | فَـكَانَتِ | |
18 | 4 18:1 | وَهٰذَا | |
19 | 4 19:1 | أَلَا | |
20 | 4 20:1 | فَإِن |
All last words of the first line of every page
template = """
line ln=1
:= word
"""
results = A.search(template)
A.table(results, end=20)
0.05s 438 results
n | p | line | word |
---|---|---|---|
1 | 1 1:1 | الحكم | |
2 | 1 2:1 | محفوظة | |
3 | 1 3:1 | الرَّحِيمِ | |
4 | 1 4:1 | الفهرست | |
5 | 1 5:1 | ٢٤٢ | |
6 | 2 6:1 | [١وجه] | |
7 | 2 7:1 | [١ظهر] | |
8 | 3 8:1 | ِّفِ] | |
9 | 3 9:1 | بِالقِيلِ | |
10 | 3 10:1 | أُمِرْنَا». | |
11 | 3 11:1 | ِّمًا، | |
12 | 3 12:1 | حَارِثٌ. | |
13 | 3 13:1 | َّرْعِ | |
14 | 4 14:1 | آدَمِيَّةٍ﴾ | |
15 | 4 15:1 | إِلَـيهِ. | |
16 | 4 16:1 | َّا | |
17 | 4 17:1 | َّشْأَةِ | |
18 | 4 18:1 | الإِدْرَاكِ | |
19 | 4 19:1 | الحَقُّ | |
20 | 4 20:1 | جَمْعِيَّةُ |
All first words of a piece
template = """
piece
=: word
"""
results = A.search(template)
A.table(results, end=20)
0.06s 35 results
n | p | piece | word |
---|---|---|---|
1 | 1 1:1 | 1 | فصوص |
2 | 2 6:1 | 2 | [١وجه] |
3 | 3 8:1 | 3 | [خُطْـبَةُ |
4 | 4 14:1 | 4 | [١]﴿ |
5 | 5 32:1 | 5 | [٢] |
6 | 6 52:1 | 6 | وَهُوَ |
7 | 7 71:1 | 7 | المَنَازِلِ، |
8 | 8 84:1 | 8 | كَمَا |
9 | 9 95:1 | 9 | ٣‐ |
10 | 10 111:1 | 10 | وَلِهٰذَا |
11 | 11 121:1 | 11 | إِن |
12 | 12 130:1 | 12 | [٩]﴿ |
13 | 13 147:1 | 13 | فَأَسْمَاؤُنَا |
14 | 14 166:1 | 14 | تُسَمَّىٰ |
15 | 15 173:1 | 15 | الأَشْقِيَاءٍِ: |
16 | 16 189:1 | 16 | وَلَا |
17 | 17 198:1 | 17 | هِي |
18 | 18 211:1 | 18 | وَغَيْرِهِ. |
19 | 19 242:1 | 19 | هٰذِهِ |
20 | 20 262:1 | 20 | وَإذِا |
ln = A.nodeFromSectionStr("4 14:1")
A.plain(ln)
Pick line 500
l = F.otype.s("line")[499]
l
58035
Where is it?
A.plain(l)
Show structure
A.pretty(l)
Show more info
A.pretty(l, extraFeatures="n")
Locate a specific portion
template = """
piece n=5
=: page
line
word text~ا
"""
results = A.search(template)
A.show(results, condensed=True)
0.09s 35 results
line 1
line 2
line 3
line 4
line 5
line 6
line 7
A.show(results, condensed=True, extraFeatures="n title")
line 1
line 2
line 3
line 4
line 5
line 6
line 7