maskouk:阿拉伯语搭配词典python+sqlite

maskouk-pysqlite的Python项目详细描述


Python+SQLite API的阿拉伯语搭配库和数据maskouk logo

downloadsdownloads2

开发人员:Taha Zerrouki:http://tahadz.comgmail上的Taha dot Zerrouki 网络公司

Feature svalue
AuthorsAuthors.md
Release0.1
LicenseGPL
Trackerlinuxscout/maskouk/Issues
Websitehttp://maskouk.sourceforge.net
SourceGithub
Downloa dsourceforge
Feedbac ksComments
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结构:

  1. id:数据库中唯一的id
  2. 发声:发声搭配
  3. 未定位:未定位搭配
  4. 规则:提取规则编号
  5. 范畴:搭配范畴
  6. 注:
  7. 第一个词:第一个词
  8. 第二个词:第二个词

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现