問題タブ [wikimedia-dumps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ウィキペディアのダンプを解析する
たとえば、このウィキペディアのダンプを使用します。
サブジェクトと値のマッピングを使用して配列を作成するために使用できる Python 用の既存のライブラリはありますか?
例えば:
java - JavaでXPATHを使用して階層XMLドキュメントを処理します。効率?
この質問の変形はここで何度か尋ねられましたが、私の質問は、JavaでXPATHを使用する一般的な効率についての質問です。
私の仕事:地理的な場所に関するウィキペディアの記事を取り上げ、それらから階層的なデータ構造を作成します。
私はすでにwikiページのXMLバージョンを入手し、直感的に理解できるスキーマに従って再フォーマットしました。また、次のように、管理階層のさまざまなレベルを表す一連の非常に単純なクラスを作成しました。
都市を追加するメソッド、いくつかのgetterメソッドとsetterメソッド、およびtoString()。
これが私が扱っているXMLファイルのタイプの例です:
私は基本的にこの時点で機能的な設定をしていますが、コードは非常に反復的であり、地理データの固有の階層的性質を考慮していません。理想的には、特定のレベルで停止し(たとえば、特定の州に「焦点を合わせる」)、ドキュメント全体をクロールする回数を最小限に抑えるために、その時点からの相対的な用語でのみ参照することができます。例として(注:従来のドキュメント設定を抽象化して使用していますが、以下の方法は従来の方法にほぼ正確に対応しています)。
率直に言って、これはばかげているようです。私が関心のあるレベルに到達すると、これらの文字列に関するすべてが同一であるという事実を考慮していません。私はいかなる種類の相対パスも参照していません。ドキュメントの一部をトラバースするときは常に、実際には全体をトラバースします。元のXMLドキュメントの残りの部分をしばらくブロックして、それ以降のすべてを相対的な用語で参照し、自分の州だけに焦点を当てることができれば素晴らしいと思います。
特に、これが「読み取り」抽象化の背後にあるコストがどれほど高いかに注意する必要があります。
私は本質的に、わずかに異なるエンディングで同じパターンを再コンパイルしていますか?関心のある部分をロードしてから、その子を「currProv / hanzi」のようなもので参照するのはどうですか?
XMLを解析する他の方法を調べましたが、「Digester」は私が望むものと似たようなことをしているようですhttp://commons.apache.org/digester/core.htmlですが、このXPATHにはすでにほとんどすべてのものがあります。実装。
この問題の解決策は非常に単純であると私はしつこく疑っています...しかし、私は解決策を完全に把握することはできません。とにかく、お時間をいただきありがとうございました!
java - .readLine()の代わりに/readLineはリストのみを返します
ウィキペディアからテキストを取得するために読み取り行を使用しています。ただし、read lineはリストのみを返し、必要なテキストは返しません。別の方法を使用したり、問題を解決したりする方法はありますか?
python - XMLファイルタグの読み取り
xmlファイルからのよう<title>
なタグ値を読み取りたい。正常に読み取られた<title_id>
値。同じループで、<title>
を読み取ることは可能ですか?
XMLを初めて使用するのを手伝ってください。<title>
<title_id>
次のコードを使用して、ファイルからすべてのタイトルを読み取ります。そして、それはうまく機能しています。
encoding - wiki ダンプのエンコーディング
WikiPrep を使用して、最新の wiki ダンプ enwiki-20121101-pages-articles.xml.bz2 を処理しています。「Parse::MediaWikiDump; を使用する」の代わりに それを「use MediaWiki::DumpFile::Compat;」に置き換えました。コードに適切な変更を加えました。それから、私は走った
エラーが発生しました
ダンプに utf8 以外の文字が含まれていると思います。だから私は走った
実際、いくつかのエラーが発生しました
それで、私の質問は、ウィキ ダンプのエンコード形式は何ですか。それを utf-8 に変換したい場合、どうすればよいですか? または、このような問題を回避するには、wikiprep.pl をどのように変更する必要がありますか。
どうもありがとう
-- [解決済み] 最初にファイルを解凍する必要があります。
r - R XML: 指定された値を持つノードを取得する方法
私が使用しているXMLファイルのスニペットは次のとおりです。
ここで、「AccessibleComputing」という値が与えられた場合、XMLInternalElementNode (「AccessibleComputing」に対応する) を取得するにはどうすればよいでしょうか? getNodeSet を使用してみましたが、成功しませんでした。
ありがとう。
更新された質問
最初に、sample.xml ファイル全体について言及する必要がありました。こちらです。私が直面している問題は次のとおりです。
「AccessibleComputing」というタイトル要素の値を持つページ ノードを取得する方法。私は次のことを試しました:
それは戻った
期待される出力:
XPath クエリが間違っていると思います。「siteinfo」ノードが 1 回表示されると、試したことが壊れます。助言がありますか。
python - Python を使用して (外出先で) 巨大な xml ファイルを解析する方法
巨大な xml ファイル (現在のウィキペディアのダンプ) があります。約 45 GB のサイズを持つこの xml は、現在のウィキペディアの全データを表しています。ファイルの最初の数行は次のとおりです (詳細の出力)。
...等々
ツリー内のページ要素に注目してください。ウィキペディアのユニークなページに相当します。指定された XML は、ウィキペディアのすべてのページをページ要素の形式で構成しています。ウィキペディアのすべてのページのページからタイトルエントリの値を抽出し、(簡単にするために) それらを印刷すると仮定するパーサーを作成する必要があります。
Pythonを使用して同じものを構築しようとしています(ただし、解決策があれば言語の切り替えを受け入れます)。私が知っている唯一の方法は、ElementTreeを使用することです。
ただし、関数 parse('file.xml') を使用するには、最初にドキュメント全体を完全に解析する必要があり、その後結果が出力されます。明らかなように、xml 全体がページ要素で構成されていることがわかります。xml の残りの部分を解析している間に、プログラムでタイトルの印刷を開始したいと考えています。それも可能ですか?もしそうなら、どのように?
編集注:質問を簡単にするために、ここでタイトルを抽出する例を引用します。ただし、将来同じものを抽出する必要があるため、xml 解析機能が必要です。
python - ElementTree findall から返された空のリスト
私はxml解析とPythonが初めてなので、ご容赦ください。lxml を使用して wiki ダンプを解析していますが、各ページ、そのタイトル、およびテキストだけが必要です。
今のところ、私はこれを持っています:
現時点では、タイトルは何も返していません。ElementTree findall() return empty listと lxml documentation のような以前の回答を見てきましたが、ほとんどのものは HTML の解析に合わせて調整されているようです。
これは私の XML のセクションです。
また、 iterparse を試して、見つかった要素のタグを出力しました:
しかし、タグ属性がない e について不平を言っています。
編集: