Package: maskouk-pysqlite
Arabic collocations library and data for Python +SQLite APIDeveloppers: Taha Zerrouki:http://tahadz.comtaha dot zerrouki at gmail
dot comFeature
svalueAuthorsAuthors.mdRelease0.1LicenseGPLTrackerlinuxscout/maskouk/IssuesWebsitehttp://maskouk.sourceforge.netSourceGithubDownloa
dsourceforgeFeedbac
ksCommentsAccount
s[@Twitter](https://twitter.com/linuxscout)
[@Sourceforge](http://sourceforge.net/projects/maskouk/)DescriptionMaskouk is a database of arab ic collocations extracted from Wikipedia.Arabic wikipedia data base 2011-Jun-21.installpipinstallmaskouk-pysqliteUsageimport>>>importpyarabic.arabyasaraby>>>importmaskouk.collocationsasmsk>>>mydict=msk.CollocationClass()Test if collocation exists in database>>>wlist=[u"كرة",u"القدم"]>>># test if collocation exists>>>results=mydict.is_collocated(wlist)>>>print("inuput:",wlist)>>>print("output:",results)inuput:['كرة','القدم']output:كرةالقدم>>>wlist=[u"شمس",u"النهار"]>>>results=mydict.is_collocated(wlist)>>>print("inuput:",wlist)>>>print("output:",results)inuput:['شمس','النهار']output:FalseTest if a word has collocations in database>>># get all collocations for a specific word>>>word1=u"كرة">>>results=mydict.is_collocated_word(word1)>>>print("inuput:",word1)>>>print("output:",results)inuput:كرةoutput:{'القدم':'كُرَة الْقَدَمِ'}>>>>>>word=u"بيت">>># get all collocations for a specific word>>>results=mydict.is_collocated_word(word)>>>print("inuput:",word)>>>print("output:",results)inuput:بيتoutput:{'العدة':'بَيْت الْعِدَّةِ','المستأجر':'بَيْت الْمُسْتَأْجِرِ','المشتري':'بَيْتِ الْمُشْتَرِي','الرجل':'بَيْت الرَّجُلِ','البناء':'بَيْت الْبِنَاءِ','الزوج':'بَيْت الزَّوْجِ','المال':'بيت المال','المقدس':'بَيْت الْمَقْدِسِ','البائع':'بَيْت الْبَائِعِ','الخلاء':'بَيْت الْخَلَاءِ','الأب':'بَيْت الْأَبِ','الله':'بَيْت اللّهِ'}Detect collocation in a phraseIt can be presented asseparated lists or tagged forms>>># detect collocations in phrase>>>text=u"لعبنا مباراة كرة القدم في بيت المقدس">>>wordlist=araby.tokenize(text)>>>results=mydict.ngramfinder(2,wordlist)>>>print("inuput:",text)>>>print("output:",results)inuput:لعبنامباراةكرةالقدمفيبيتالمقدسoutput:['لعبنا','مباراة','كرة القدم','في','بيت المقدس']>>># detect collocations in phrase>>>text=u"لعبنا مباراة كرة القدم في بيت المقدس">>>wordlist=araby.tokenize(text)>>>results=mydict.lookup(wordlist)>>>print("inuput:",text)>>>print("output:",results)inuput:لعبنامباراةكرةالقدمفيبيتالمقدسoutput:(['لعبنا','مباراة','كُرَة','الْقَدَمِ','في','بَيْت','الْمَقْدِسِ'],['CO','CO','CB','CI','CO','CB','CI'])>>>detect long collocations in a phraseSome collocations are too long to be used in a bigrams database like
“بسم الله الرحمن الرحيم” “السلام عليكم ورحمة الله وبركاته” “أهلا وسهلا
بكم”>>># get Long collocations...text=u" قلت لهم السلام عليكم ورحمة الله تعالى وبركاته ثم رجعت">>>results=mydict.lookup4long_collocations(text)>>>print("inuput:",text)inuput:قلتلهمالسلامعليكمورحمةاللهتعالىوبركاتهثمرجعت>>>print("output:",results)output:قلتلهمالسّلامُعَلَيكُمْوَرَحْمَةُاللهِتَعَالَىوبركاتهثمرجعتDetect candidate collocations in phraseThe candidate collocation doesn’t exists in the database, this feature
is used to extract collocations based on rules. It returns a rule code,
100 as default (no collocation)>>>text=u"ظهر رئيس الوزراء السيد عبد الملك بن عامر ومعه أمير دولة غرناطة ونهر النيل انطلاق السباق">>>wordlist=araby.tokenize(text)>>>previous="__">>>forwrdinwordlist:...wlist=[previous,wrd]...results=mydict.is_possible_collocation(wlist,lenght=2)...print("inuput:",wlist)...print("output:",results)...previous=wrd...inuput:['__','ظهر']output:100inuput:['ظهر','رئيس']output:100inuput:['رئيس','الوزراء']output:100inuput:['الوزراء','السيد']output:20inuput:['السيد','عبد']output:100inuput:['عبد','الملك']output:15inuput:['الملك','بن']output:100inuput:['بن','عامر']output:15inuput:['عامر','ومعه']output:100inuput:['ومعه','أمير']output:100inuput:['أمير','دولة']output:100inuput:['دولة','غرناطة']output:10inuput:['غرناطة','ونهر']output:100inuput:['ونهر','النيل']output:100inuput:['النيل','انطلاق']output:100inuput:['انطلاق','السباق']output:100>>>[requirement]1- pyarabic
2. sqliteData Structure:Colocations databaseCREATETABLE"collocations"("id"INTEGERPRIMARYKEYNOTNULL,"vocalized"VARCHAR,"unvocalized"VARCHAR,"rule"VARCHAR,"category"VARCHAR,"note"VARCHAR,"first"VARCHAR,"second"VARCHAR);CSV Structure:id : id unique in the databasevocalized : vocalized collocationunvocalized : unvocalized collocationrule : the extraction rule numbercategory : collocation categorynote :first: first wordsecond: second word