ウィクショナリー は、多くの言語をカバーするwiki辞書です。翻訳もあります。私はそれを解析してデータを操作することに興味がありますが、以前に誰かがこのようなことをしていますか?使用できるライブラリはありますか? (できればPython。)
ウィクショナリーはMediaWikiで実行されます (APIあり )。
APIドキュメントのサブページの1つは クライアントコードで、いくつかのPythonライブラリ をリストしています)です。
私はかつてウィクショナリーダンプをダウンロードして、スラブ言語の単語と定義を集めようとしていました。 elementtreeを使用して、ダンプであるxmlファイルを通過するようにアプローチしました。サイトをこすったりクロールしたりすることは避け、ウィキメディアがウィクショナリーに提供するxmlダンプをダウンロードするだけです。 wikimedia downloads に移動し、英語のウィクショナリーダンプ( enwiktionary )を探して、最新のダンプに移動します。おそらく、pages-articles.xml.bz2ファイルが必要です。これは、記事のコンテンツであり、履歴やコメントはありません。 Pythonで好きなxml処理ライブラリを使用してこれを解析します。個人的にはelementtreeを好みます。幸運を。
はい、多くの人がウィクショナリーを解析しました。通常、過去の経験は Wiktionary-lメーリングリストのアーカイブ で確認できます。
他の回答で言及されていないプロジェクトは、DBPediaの ウィクショナリーRDF抽出 です。
ウィクショナリーを解析した他の数十の研究プロジェクト:ウィキメディア研究ニュースレターの最近の ウィクショナリースペシャル および その他の問題 にいくつかの例があります。
最近 誰かが 英語のウィクショナリーにも作成しましたREST API これには、ウィクショナリーデータの未指定のサブセットが含まれています。将来の予定は不明ですまだ。
ドイツ語のウィクショナリーの解析でひび割れがありました。私はそれを難しすぎると書いてしまいましたが、あきらめる前に https://github.com/benreynwar/wiktionary-parser に(整頓されていない)コードを入れました。編集者が使用する規則はありますが、それらはピアの監視以外のものによって強制されていません。ページ内のすべてのタイプミスとともに使用されるテンプレートの多様性により、解析は非常に困難になります。
問題は、彼らがウィクショナリーと同じシステムを使用していることだと思います。これは、エディターによる使いやすさには優れていますが、より構造化されたウィクショナリーのコンテンツには適していません。ウィクショナリーを簡単に解析できれば非常に便利なリソースになるので、それは残念です。
MySQLでパースされたウィクショナリーデータベースをお楽しみいただけます。 Javaで書かれたパーサーによって作成された2つのデータベース(英語ウィクショナリーとロシア語ウィクショナリー)があります。 http://wikokit.googlecode.com
私はそのようなドイツのダンプから単語リストを作成しました:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words
[〜#〜] jwktl [〜#〜] もあり、ウィクショナリーから構造化データを解析および抽出するのに適しています。 Javaで書かれており、英語、ドイツ語、ロシア語版をサポートしています。
それをどの程度徹底的に解析する必要があるかによります。 Wordのすべてのコンテンツ(定義、語源、発音、活用など)を取得する必要がある場合は、非常に簡単です。 in Java jsoupを使用
ただし、コンテンツのさまざまなコンポーネントにまで解析する必要がある場合(たとえば、Wordの定義を取得するだけ)、それははるかに困難になります。言語のWordのウィクショナリーエントリには事前定義されたテンプレートがないため、ヘッダーは<h3>
から<h6>
、セクションの順序が乱れている可能性があります。繰り返しになる場合もあります。