从德国wiktionary转储文件中提取数据。允许您添加自己的提取方法

wiktionary-de-parser的Python项目详细描述


向导分析器

wiktionary_de_parser是一个python模块,用于从德语wiktionary xml文件中提取数据。它允许您添加自己的提取方法。

要求

  • Python3.7(可能适用于其他3.+版本,但未经测试)

功能

  • 带有预设的提取方法:
      <表>屈折表、属、IPA、语言、引理、词性(基本)、音节、原始WikEXTEX
  • 允许您添加自己的提取方法(将它们作为参数传递)
  • 数据值被规范化,并从过时的wikitext标记中清除
  • 按节而不是按页生成(一个词可以有多个含义,这就是为什么有些词典页有多个“节”)

用法

  1. 通过pip3 install wiktionary_de_parser安装。
  2. 像这样导入wiktionary_de_parser
frombz2fileimportBZ2Filefromwiktionary_de_parserimportParserbzfile_path='C:/Users/Gregor/Downloads/dewiktionary-latest-pages-articles-multistream.xml.bz2'bz=BZ2File(bzfile_path)forrecordinParser(bz):if'language'notinrecordorrecord['language']!='Deutsch':continue# do stuff with 'record'

注意:在本例中,我们使用BZ2File读取压缩的wiktionary转储文件。 wiktionary转储文件是从here获得的。

添加新的提取方法

所有提取方法都必须返回Dict(),并接受以下参数:

  • titlestring):当前向导页的标题
  • textstring):当前单词条目/节的Wikitext
  • current_recorddict):包含当前迭代的所有值的字典(例如current_record['language']
# Create a new extraction methoddefmy_method(title,text,current_record):# do stuffreturn{'my_field':my_data}# Pass a list with all extraction methods to the class constructor:forrecordinParser(bz,custom_methods=[my_method]):print(record['my_field'])

样本数据:

{'flexion':{'Akkusativ Plural':'Trittbrettfahrer','Akkusativ Singular':'Trittbrettfahrer','Dativ Plural':'Trittbrettfahrern','Dativ Singular':'Trittbrettfahrer','Genitiv Plural':'Trittbrettfahrer','Genitiv Singular':'Trittbrettfahrers','Genus':'m','Nominativ Plural':'Trittbrettfahrer','Nominativ Singular':'Trittbrettfahrer'},'inflected':False,'ipa':['ˈtʁɪtbʁɛtˌfaːʁɐ'],'language':'Deutsch','lemma':'Trittbrettfahrer','pos':{'Substantiv':[]},'syllables':['Tritt','brett','fah','rer'],'title':'Trittbrettfahrer','wikitext':'=== {{Wortart|Substantiv|Deutsch}}, {{m}} ===\n''\n''{{Deutsch Substantiv Übersicht\n''|Genus=m\n''|Nominativ Singular=Trittbrettfahrer\n''|Nominativ Plural=Trittbrettfahrer\n''|Genitiv Singular=Trittbrettfahrers\n''|Genitiv Plural=Trittbrettfahrer\n''|Dativ Singular=Trittbrettfahrer\n''|Dativ Plural=Trittbrettfahrern\n''|Akkusativ Singular=Trittbrettfahrer\n''|Akkusativ Plural=Trittbrettfahrer\n''}}\n''\n''{{Worttrennung}}\n'':Tritt·brett·fah·rer, {{Pl.}} Tritt·brett·fah·rer\n''\n''{{Aussprache}}\n'':{{IPA}} {{Lautschrift|ˈtʁɪtbʁɛtˌfaːʁɐ}}\n'':{{Hörbeispiele}} {{Audio|}}\n''\n''{{Bedeutungen}}\n'':[1] Person, die ohne [[Anstrengung]] an Vorteilen teilhaben ''will\n''\n''{{Herkunft}}\n'':[[Determinativkompositum]] aus den Substantiven '"''[[Trittbrett]]'' und ''[[Fahrer]]''\n"'\n''{{Weibliche Wortformen}}\n'':[1] [[Trittbrettfahrerin]]\n''\n''{{Beispiele}}\n'':[1] „Bleibt schließlich noch das Problem der '"''Trittbrettfahrer,'' die sich ohne Versicherung aus "'Nachlässigkeit in das soziale Netz abgleiten ''lassen.“<ref>{{Internetquelle|url=http://books.google.se/books?id=VjLq84xNpfMC&pg=PA446&dq=trittbrettfahrer&hl=de&sa=X&ei=8AztU4aVJYq_ygOd1oKIDA&ved=0CEEQ6AEwBjgK#v=onepage&q=trittbrettfahrer&f=false|titel=Öffentliche ''Finanzen in der Demokratie: Eine Einführung, Charles B. ''Blankart|zugriff=2014-08-14}}</ref>\n''\n''{{Wortbildungen}}\n'':[1] [[Trittbrettfahrer-Problem]]\n''\n''==== {{Übersetzungen}} ====\n''{{Ü-Tabelle|Ü-links=\n''*{{en}}: [1] {{Ü|en|free rider}}\n''*{{fi}}: [1] {{Ü|fi|siipeilijä}}, {{Ü|fi|vapaamatkustaja}}\n''*{{fr}}: [1] {{Ü|fr|profiteur}}\n''|Ü-rechts=\n''*{{it}}: [1] {{Ü|it|scroccone}} {{m}}\n''*{{es}}: [1] {{Ü|es|}}\n''}}\n''\n''{{Referenzen}}\n'':[1] {{Wikipedia|Trittbrettfahrer}}\n'':[*] {{Ref-DWDS|Trittbrettfahrer}}\n'':[*] {{Ref-Canoo|Trittbrettfahrer}}\n'':[1] {{Ref-UniLeipzig|Trittbrettfahrer}}\n'':[1] {{Ref-FreeDictionary|Trittbrettfahrer}}\n''\n''{{Quellen}}'}

供应商套餐

许可证

MIT格雷戈尔韦奇布罗德

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

推荐PyPI第三方库


热门话题
java为引用变量指定默认值   java在2D数组中旋转innersquare   java将hashmap键值与int进行比较   java程序中的并发监视器陷入死锁   安卓 java。lang.NoClassDefFoundError:java。awt。光标   java有没有更好的方法来引用包含对象的对象?   如何在Java编程中循环代码块   java如何在Junit5中使用Serenity?   java使用ANTLR识别JavaScript文件中的全局变量声明   EJB查询对象生成的java视图SQL?   java查找股票报价的范围   java错误:(453,69)不允许使用字符串类型(在值为“”的“活动\u水平\u边距”处)   java安装的环境变量   amazon web服务在使用awssdkjava上载到S3存储桶时发生直接错误   java在Android的ArrayList中添加相等的值   尝试打开MyEclipse Enterprise Workbench时出现ide“无法创建java虚拟机”错误   java如何使用单元格指定的行和列更改jTable的单元格颜色?   java如何等待文件从系统目录复制到具有根访问权限的外部存储