2010-05-05 14 views
68

Wie kann die Wiktionary-API verwendet werden, um festzustellen, ob ein Wort existiert oder nicht?Wie man Wiktionary Wortinhalt holt?

+0

Wer die Dokumentation gelesen hat, sehen, dass die API bei weitem nicht genug Funktionalität enthält auf „Wiktionary Wortinhalt abrufen“. Ich schätze, es bringt dir ungefähr 1% des Weges. Sie können rohe Wiki-Syntax oder geparsten HTML abrufen und von dort aus müssen Sie alles selbst machen. Allerdings könnte es eine sehr neue experimentelle API geben, die nur auf dem englischen Wiktionary funktioniert. – hippietrail

Antwort

51

Mit der Wiktionary API kann abgefragt werden, ob ein Wort existiert oder nicht.

Beispiele für bestehende und nicht vorhandene Seiten:

http://en.wiktionary.org/w/api.php?action=query&titles=test http://en.wiktionary.org/w/api.php?action=query&titles=testx

Der erste Link Beispiele für andere Arten von Formaten bietet, die leichter zu analysieren sein könnte.

Um das Wort der Daten in einem kleinen XHTML-Format (sollte mehr als Existenz erforderlich), fordern Sie die Druckversion der Seite abrufen:

http://en.wiktionary.org/w/index.php?title=test&printable=yes http://en.wiktionary.org/w/index.php?title=testx&printable=yes

Diese können dann sein Parsing mit jedem Standard-XML-Parser.

+3

Danke; Die API selbst ist nicht das, was ich mir erhofft habe, aber der Link, den du angegeben hast, ist genau das, wonach ich gesucht habe. – Armentage

+0

Nun akzeptiert es zusätzliche Formatparameter für andere als XML-Ausgabe wie folgt: https://en.wiktionary.org/w/api.php?action=query&titles=test&format=json – eenagy

+2

Funktioniert möglicherweise nicht wie Sie erwarten, obwohl https: // en.wiktionary.org/wiki/Category:English_misspellings https://de.wiktionary.org/wiki/amatuer – endolith

20

Es gibt ein paar Einschränkungen in nur prüfen, ob Wiktionary eine Seite mit dem Namen hat Sie suchen:

Caveat # 1: Alle Wiktionaries einschließlich der englischen Wiktionary haben tatsächlich das Ziel jedes Wort auch in jede Sprache, wenn Sie also einfach über API verwenden, rufen Sie wissen, dass das Wort, das Sie über fragen ist ein Wort in mindestens einer Sprache, aber nicht unbedingt Englisch: http://en.wiktionary.org/w/api.php?action=query&titles=dicare

Caveat # 2: Vielleicht eine Umleitung existiert von einem Wort zu einem anderen Wort. Es könnte aus einer alternativen Schreibweise stammen, aber es könnte aus einem Fehler irgendeiner Art stammen. Der API-Aufruf oben wird nicht zwischen einer Umleitung und einem Artikel unterscheiden: http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry

Caveat # 3: Einige Wiktionaries einschließlich der Wiktionary "häufige Rechtschreibfehler" sind: http://en.wiktionary.org/w/api.php?action=query&titles=fourty

Caveat # 4: Einige Wiktionaries Stub-Einträge zulassen, die wenig oder keine Informationen über den Begriff enthalten. Dies war früher bei mehreren Wiktionaries üblich, nicht jedoch bei englischen Wiktionary. Aber es scheint, jetzt verbreitet haben auch auf die englische Wiktionary: https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (permalink für, wenn die Stummel gefüllt ist, so kann man noch sehen, was ein Stummel wie folgt aussieht: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161)

Wenn diese sind nicht enthalten, was Sie wollen, Sie muss den Wikitext selbst laden und analysieren, was keine triviale Aufgabe ist.

+1

Was ich wirklich machen wollte, war eine vollständige Sammlung der Daten auf einer der nicht-englischen Wiktionary Seiten zu machen dann verwandle den Inhalt in etwas, das ich lokal verwenden könnte. Es scheint jetzt albern, aber ich hatte gehofft, dass ich die Liste aller Wörter anfordern könnte, und dann ihre Definitionen/Übersetzungen nach Bedarf herunterziehen. – Armentage

+1

Die Korrektur zu Caveat # 2 ist einfach: Fügen Sie der Abfrage '& prop = info' hinzu und überprüfen Sie die Antwort für das Attribut 'redirect'. – svick

+0

@svick: Ja, es ist wahr # 2 ist leichter zu umgehen, wenn man die API benutzt, aber diese grundsätzlichen Vorbehalte decken auch den Versuch ab, die [Wiktionary data dump files] (http://dumps.wikimedia.org/enwiktionary/) zu analysieren, obwohl Diese Frage stellt sich nicht nach diesem Ansatz. – hippietrail

17

Sie einen Dump von Wikitionary data herunterladen. Es gibt mehr Informationen in der FAQ. Für Ihre Zwecke ist die definitions dump wahrscheinlich eine bessere Wahl als der XML-Dump.

+1

Diese Dump-Dateien sind massiv, und es ist unklar, welche herunterzuladen (alle?). Wahrscheinlich nicht, was die meisten Leute suchen, sie wollen nur eine Handvoll Wörter programmatisch nachschlagen. – Cerin

+0

Ich erkläre, welche Datei zum Download - d. H. Die Definitionen Dump (das Verzeichnis von meinem Link ist nur verschiedene Versionen der gleichen Datei), und ja, wenn Sie programmatisch Wörter nachschlagen möchten, ist dies ideal. Wenn Sie garantieren können, dass das Programm nur online ausgeführt wird, gibt es andere Optionen, aber ich beantworte trotzdem diesen Teil der ursprünglichen Frage: "Gibt es alternativ eine Möglichkeit, die Wörterbuchdaten, die ein Wiktionary unterstützen, herunter zu ziehen?" – kybernetikos

+8

Definitionen Dump-Link ist nicht mehr verfügbar. –

6

Um es wirklich einfach zu halten, extrahieren Sie die Worte aus dem Dump wie folgt aus:

bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words 
+0

Wie bekomme ich eine Kopie von pages-articles.xml.bz2? – Armentage

+0

Es ist nur ein generischer Name, den ich verwendet habe, um die Speicherauszüge des Formulars 'LANGwiktionary-DATE-pages-articles.xml.bz2' zu beschreiben. Gehen Sie zu [link] (http://dumps.wikimedia.org/backup-index.html) und klicken Sie dann auf 'LANGwiktionary' (LANG, z. B. 'en', 'de' ...). – benroth

Verwandte Themen