从德国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反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?