Let us use R with work with the original Arabic Quranic text. The objective of this tutorial is to get you on the road towards analyzing the Quranic text.
The first obstacle to anyone who wants to analyze Quran -as well as any Arabic text - is the ability to deal with the Arabic text. Here I will try to make this part easier for you.
But, first let us get the Quranic text.
Go to http://tanzil.net/download/ and choose the right file. For this tutorial, I used “Simple Clean” without any pause marks or other options, and chose “Text(with aya numbers)”, and saved it in a folder called “data”. The file includes sura number followed by verse number followed by the actual text of the verse. The fields are separated by a bar “|” and has some copyright notes at the end. I had to manually remove the copyright notes before reading the file in R.
q = read.csv("data/quran-simple-clean.txt", header=F, stringsAsFactor=F, encoding="UTF-8", sep="|")
head(q)
## V1 V2 V3
## 1 1 1 بسم الله الرحمن الرحيم
## 2 1 2 الحمد لله رب العالمين
## 3 1 3 الرحمن الرحيم
## 4 1 4 مالك يوم الدين
## 5 1 5 إياك نعبد وإياك نستعين
## 6 1 6 اهدنا الصراط المستقيم
tail(q)
## V1 V2 V3
## 6231 114 1 بسم الله الرحمن الرحيم قل أعوذ برب الناس
## 6232 114 2 ملك الناس
## 6233 114 3 إله الناس
## 6234 114 4 من شر الوسواس الخناس
## 6235 114 5 الذي يوسوس في صدور الناس
## 6236 114 6 من الجنة والناس
I hope you have the same output as mine. You might struggle to get R output correct Arabic characters as I did. I used Windows 7 and had to work with changing locale information from control panel.
So, albeit some hiccups: congrats! you have the entire Quran in R!
Let us see the structure of our Quran in R
str(q)
## 'data.frame': 6236 obs. of 3 variables:
## $ V1: int 1 1 1 1 1 1 1 2 2 2 ...
## $ V2: int 1 2 3 4 5 6 7 1 2 3 ...
## $ V3: chr "بسم الله الرحمن الرحيم" "الحمد لله رب العالمين" "الرحمن الرحيم" "مالك يوم الدين" ...
Since our initial file did not have headings, R automatically named the three columns as V1, V2 and V3. We need to change column names:
colnames(q) = c("sura", "aya", "text")
Thats better!
With one shot lets us display the first verse in the first 10 suras
q$text[q$aya==1 & q$sura<=10]
## [1] "بسم الله الرحمن الرحيم"
## [2] "بسم الله الرحمن الرحيم الم"
## [3] "بسم الله الرحمن الرحيم الم"
## [4] "بسم الله الرحمن الرحيم يا أيها الناس اتقوا ربكم الذي خلقكم من نفس واحدة وخلق منها زوجها وبث منهما رجالا كثيرا ونساء واتقوا الله الذي تساءلون به والأرحام إن الله كان عليكم رقيبا"
## [5] "بسم الله الرحمن الرحيم يا أيها الذين آمنوا أوفوا بالعقود أحلت لكم بهيمة الأنعام إلا ما يتلى عليكم غير محلي الصيد وأنتم حرم إن الله يحكم ما يريد"
## [6] "بسم الله الرحمن الرحيم الحمد لله الذي خلق السماوات والأرض وجعل الظلمات والنور ثم الذين كفروا بربهم يعدلون"
## [7] "بسم الله الرحمن الرحيم المص"
## [8] "بسم الله الرحمن الرحيم يسألونك عن الأنفال قل الأنفال لله والرسول فاتقوا الله وأصلحوا ذات بينكم وأطيعوا الله ورسوله إن كنتم مؤمنين"
## [9] "براءة من الله ورسوله إلى الذين عاهدتم من المشركين"
## [10] "بسم الله الرحمن الرحيم الر تلك آيات الكتاب الحكيم"
You would notice that Tanzil guys adopted the view that “بسم الله الرحمن الرحيم” is part of the first verse in all suras (expect sura no. 9)..
For me, I wanted to exclude it from all suras except suras nos 1 and 9. How to do that?
q$text = gsub("^بسم الله الرحمن الرحيم ","",q$text)
Now we are ready to go!
So, let us display just a sura, say no. 100
q[q$sura==100,]
## sura aya text
## 6147 100 1 والعاديات ضبحا
## 6148 100 2 فالموريات قدحا
## 6149 100 3 فالمغيرات صبحا
## 6150 100 4 فأثرن به نقعا
## 6151 100 5 فوسطن به جمعا
## 6152 100 6 إن الإنسان لربه لكنود
## 6153 100 7 وإنه على ذلك لشهيد
## 6154 100 8 وإنه لحب الخير لشديد
## 6155 100 9 أفلا يعلم إذا بعثر ما في القبور
## 6156 100 10 وحصل ما في الصدور
## 6157 100 11 إن ربهم بهم يومئذ لخبير
Here is one way to see how may times and where are the words Muhammad (محمد) is mentioned in the Quran.
q[which(grepl("محمد", q$text)),]
## sura aya
## 437 3 144
## 3573 33 40
## 4547 47 2
## 4612 48 29
## text
## 437 وما محمد إلا رسول قد خلت من قبله الرسل أفإن مات أو قتل انقلبتم على أعقابكم ومن ينقلب على عقبيه فلن يضر الله شيئا وسيجزي الله الشاكرين
## 3573 ما كان محمد أبا أحد من رجالكم ولكن رسول الله وخاتم النبيين وكان الله بكل شيء عليما
## 4547 والذين آمنوا وعملوا الصالحات وآمنوا بما نزل على محمد وهو الحق من ربهم كفر عنهم سيئاتهم وأصلح بالهم
## 4612 محمد رسول الله والذين معه أشداء على الكفار رحماء بينهم تراهم ركعا سجدا يبتغون فضلا من الله ورضوانا سيماهم في وجوههم من أثر السجود ذلك مثلهم في التوراة ومثلهم في الإنجيل كزرع أخرج شطأه فآزره فاستغلظ فاستوى على سوقه يعجب الزراع ليغيظ بهم الكفار وعد الله الذين آمنوا وعملوا الصالحات منهم مغفرة وأجرا عظيما