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