Michael Gattinger writes: > Fallen euch derzeit sonst noch Feature ein, die interessant wären?
Hallo Michael, vielen Dank für die Arbeit an Deinem feinen Projekt zur Aufbereitung von Wikipediainhalten für die Verwendung in Korpussen. Da der Wikipedia-XML-Dump (nur pages und articles) bereits knapp 8 GB groß ist, kann er für die Bedürfnisse von Neo großzügig geputzt werden. Mehr als ein GB als Ergebnis wird stets mehr als genug sein. Nicht immer läßt sich einfach entscheiden, was weggeputzt werden soll und was bleiben soll. Was ich versuchen würde, um aus Wikipedia einen Korups für Neo zu extrahieren: 1. Artikel entfernen, die eine Person oder etwas geografisch Benanntes (Stadt, Land, Fluss (oft an deren Kategorie erkennbar)) zum Thema haben. 2. Alle Tabellen entfernen. 3. Alle Aufzählungen entfernen. 4. Alle ref entfernen. 5 .Alle references mitsamt einleitender Überschrift entfernen. 6. Alle Überschriften innerhalb von Artikeln entfernen. 7. Titel übriger Artikel belassen (davor zwei, dahinter ein Zeilenumbruch). 8. Zitatinhalte belassen (in typografische Anführungszeichen stellen). 9. Alle Verweise nach Fallunterscheidung modifizieren bzw. entfernen. 10. Alle Artikel entfernen, die als #redirect bwz. #weiterleitung dienen. 11. Alle Artikel entfernen, die als Liste dienen. 12. Alle Artikel entfernen, die als Liste dienen. 13. <sub>...</sub>- bzw. <sub>...</sub>-Inhalte als hoch- oder tiefgestellte ASCII- oder Unicode-Zeichen darstellen, wenn als solche verfügbar; dabei ASCII bevorzugen, z. B. ²³. 14. Alle MediaWiki-Markups zu Text konvertieren bzw. entfernen. 15. html-Schreibweisen bzw. Entities konvertieren bzw. entfernen. Dabei muss Artikelweise vorgegangen werden, da sich andernfalls massenhaft Fehler durch das Putzen einschleichen können und werden. Unabhängig von den Wikipedia-Artikeln wäre ein zweiter auf dieselbe Weise erstellter Korpus zu den Wikipedia-Diskussionen ein besonders interessanter weiterer Korpus für Neo, da die Diskussionen weitaus mehr von der Sprache enthalten, wie Menschen sie untereinander in den Internetmedien austauschen. Leider sind meine Programmier- und Skriptkenntnisse hoffnungslos veraltet und eingerostet, so dass ich mit den jetzt erforderlichen Umgebungen dafür vorerst nicht zurecht komme. Mit netten Grüßen Karl P. S.: Reguläre Ausdrücke, die ich derzeit einsetze, könnten vielleicht hilfreich sein (falls eine zweite Zeile unter dem RegExp steht, dient sie als Ersetzung). Leider lassen sich wie auch immer verschachtelte Textkomponenten mittels RegExps schlecht aufbereiten. Auch gibt es weitere Schwächen in der Anwendung von RegExps, so dass sie sich allenfalls in Skripten wohlüberlegt einsetzen lassen. zu3. Alle Aufzählungen entfernen. Ab 3 Aufzählungsitems alle außer den ersten und letzten löschen: (?<=(^[\*#;][^\n]*?\n))[\*#;]{1,9}[^\n]*?\n(?=(^[\*#;])) zu 4. Alle ref entfernen. [ \t]??<ref[^&]*?>[^&]*?</ref> zu 5 .Alle references mitsamt einleitender Überschrift entfernen. <references>-Zeilen mitsamt zwei Überschriften entfernen: [\s]*?==.*?==[\s]*?[\s]*?===.*?===[\s]*?[\s]*?<references.*?/>[\s]*?\n \n (mehrmals wiederholen) <references>-Zeilen incl. einer Überschrift entfernen: [\s]*?==.*?==[\s]*?<references.*?/>[\s]*?\n \n <references>-Zeilen ohne Überschrift entfernen: [\s]*?<references.*?/>[\s]*?\n \n zu 6. Alle Überschriften innerhalb von Artikeln entfernen. Alle Überschriftenzeilen mit == entfernen: (=+?)[^=\n]*?\1[\s]*?\n zu 8. Zitatinhalte belassen (in typografische Anführungszeichen stellen). Zitatschreibweise {{Zitat|...}} ändern zu "...": \{\{Zitat\|[']*?([^'][^}\n]*?)[']*?\|[^}\n]*?\}\}\n "\1" zu 9. Alle Verweise nach Fallunterscheidung modifizieren bzw. entfernen. Verweise zu Wiki-Artikeln in anderer Sprache entfernen (falls aus der Mailingliste kopiert, dann die Zeilenumbrüche innerhalb dieser einen einzeiligen RegExp entfernen): [\s]*?\[(?:\[(ab|abq|ace|ady|af|ain|ak|aln|als|alt|am|amr|an|ang|anp|ar| arc|arn|aro|arq|ary|arz|as|ast|atv|av|ay|az|azb|ba|ban|bar|bat-smg|bcc| bcl|be|be-x-old|bfq|bg|bh|bi|bjn|bm|bn|bo|bpy|bqi|br|brx|bs|bto|bug|bxr| ca|cbk-zam|cdo|ce|ceb|ch|chi|chn|cho|chr|chy|ckb|ckt|co|cr|crh|cs|csb|cu| cv|cy|da|de|diq|dng|dsb|dv|dz|ee|el|eml|en|enm|eo|es|ese|et|eu|ext|fa|ff| fi|fil|fiu-vro|fj|fo|fr|frp|frr|fur|fy|ga|gag|gan|gd|gl|glk|gn|gom|got| grc|gu|gv|ha|hak|haw|haz|he|hi|hif|hil|ho|hr|hsb|hsn|ht|hu|hy|hz|ia|ibb| id|ie|ig|ii|ik|ilo|inh|io|is|it|iu|ja|jam|jbo|jct|jv|ka|kaa|kab|kac|kbd| kg|ki|kiu|kj|kjh|kk|kl|km|kn|ko|koi|krc|krj|krl|ks|ksh|ku|kum|kv|kw|ky| la|lad|lb|lbe|lez|lg|lhu|li|lij|liv|lld|lmo|ln|lo|loz|lrc|lt|ltg|lus|lv| lzz|mad|mai|map-bms|maz|mdf|mfe|mg|mh|mhr|mi|min|mk|ml|mn|mnc|mr|mrj|ms| mt|mwl|mww|my|myv|mzn|na|nah|nap|nds|nds-nl|ne|new|ng|niu|njo|nl|nn|no| non|nov|nrm|nso|nv|ny|oc|om|or|os|ota|ote|otk|pa|pag|pam|pap|pcd|pdc|pdt| pes|pfl|pi|pih|pko|pl|pms|pnb|pnt|pny\[4\]|ppl|prs|ps|pt|qu|rar|rif|rm| rmy|rn|ro|roa-rup|roa-tara|rtm|ru|rue|ruq|rw|ryu|sa|sah|sc|scn|sco|sd|sdc| se|sei|sg|sgc|sh|shi|si|simple|sk|skr|sl|sli|slr|sm|sma|sn|so|sq|sr|srn| ss|st|stq|su|sv|sw|swg|szl|ta|tcy|te|tet|tg|th|ti|tk|tl|tn|to|tpi|tr|trp| ts|tsd|tt|tum|tvl|tw|ty|tyv|tzm|udm|ug|uk|ur|uun|uz|ve|vec|vep|vi|vls|vmf| vo|wa|war|wls|wo|wuu|wym|xal|xh|xmf|yi|yo|yrl|yua|za|zea|zh|zh-classical| zh-min-nan|zh-yue|zu|aa|ho|kj|kr|mh|mo|mus|qya|ru-sib|tlh|tokipona) :[^]]*\])\][\s]*? Klammern um interne Verweise entfernen, die kein : # | und kein Zeilenumbruch enthalten: [^[]\[\[([^:#|\n]*?)\]\][^]] \1 Verweise kürzen, die kein : enthalten: \[(?:\[[^][|:]*?\|([^|]*?)\])\] \1 Verweise kürzen, die kein : und kein | enthalten: \[(?:\[([^][|:]*?)\])\] \1 zu 10. Alle Artikel entfernen, die als #redirect bwz. #weiterleitung dienen. Artikel mit #redirect bzw. #weiterleitung entfernen: <title>.*?<\/title>\n<text>#.*?<\/text>\n