maskouk:阿拉伯语搭配词典python+sqlite
maskouk-pysqlite的Python项目详细描述
Python+SQLite API的阿拉伯语搭配库和数据
开发人员:Taha Zerrouki:http://tahadz.comgmail上的Taha dot Zerrouki 网络公司
Feature s | value |
---|---|
Authors | Authors.md |
Release | 0.1 |
License | GPL |
Tracker | linuxscout/maskouk/Issues |
Website | http://maskouk.sourceforge.net |
Source | Github |
Downloa d | sourceforge |
Feedbac ks | Comments |
Account s | [@Twitter](https://twitter.com/linuxscout) [@Sourceforge](http://sourceforge.net/projects/maskouk/) |
说明
Maskouk是一个从维基百科中提取的阿拉伯词搭配数据库。在
阿拉伯语维基百科数据库2011年6月21日。在
安装
pip install maskouk-pysqlite
用法
导入
^{pr2}$测试数据库中是否存在搭配
>>>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:False
测试数据库中单词是否有搭配
>>># 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 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'])>>>
检测短语中的长搭配
有些搭配太长,无法在bigrams数据库中使用,比如 “بسم الله الرحمن الرحيم” “السلام عليكم ورحمة الله وبركاته” “أهلا وسهلا بكم”
>>># get Long collocations...text=u" قلت لهم السلام عليكم ورحمة الله تعالى وبركاته ثم رجعت">>>results=mydict.lookup4long_collocations(text)>>>print("inuput:",text)inuput:قلتلهمالسلامعليكمورحمةاللهتعالىوبركاتهثمرجعت>>>print("output:",results)output:قلتلهمالسّلامُعَلَيكُمْوَرَحْمَةُاللهِتَعَالَىوبركاتهثمرجعت
检测短语中的候选搭配
数据库中不存在候选搭配,此功能 用于根据规则提取搭配。它返回一个规则代码, 默认为100(无搭配)
>>>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>>>
[要求]
1- pyarabic 2. sqlite
数据结构:
CREATETABLE"collocations"("id"INTEGERPRIMARYKEYNOTNULL,"vocalized"VARCHAR,"unvocalized"VARCHAR,"rule"VARCHAR,"category"VARCHAR,"note"VARCHAR,"first"VARCHAR,"second"VARCHAR);
CSV结构:
- id:数据库中唯一的id
- 发声:发声搭配
- 未定位:未定位搭配
- 规则:提取规则编号
- 范畴:搭配范畴
- 注:
- 第一个词:第一个词
- 第二个词:第二个词
- 项目
标签: