8

ウィキペディアダンプをダウンロードしましたが、各ページのコンテンツにあるウィキペディアマークアップを削除したいと思います。正規表現を書いてみましたが、多すぎて処理できません。Pythonライブラリを見つけましたが、コードに統合したいのでJavaライブラリが必要です。

ありがとうございました。

4

5 に答える 5

11

次の 2 つの手順で行います。

  1. 既存のツールで MediaWiki マークアップをプレーンな HTML に変換します。
  2. プレーンな HTML をテキストに変換します。

次のデモ:

import net.java.textilej.parser.MarkupParser;
import net.java.textilej.parser.builder.HtmlDocumentBuilder;
import net.java.textilej.parser.markup.mediawiki.MediaWikiDialect;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;
import java.io.StringReader;
import java.io.StringWriter;

public class Test {

    public static void main(String[] args) throws Exception {

        String markup = "This is ''italic'' and '''that''' is bold. \n"+
                "=Header 1=\n"+
                "a list: \n* item A \n* item B \n* item C";

        StringWriter writer = new StringWriter();

        HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);
        builder.setEmitAsDocument(false);

        MarkupParser parser = new MarkupParser(new MediaWikiDialect());
        parser.setBuilder(builder);
        parser.parse(markup);

        final String html = writer.toString();
        final StringBuilder cleaned = new StringBuilder();

        HTMLEditorKit.ParserCallback callback = new HTMLEditorKit.ParserCallback() {
                public void handleText(char[] data, int pos) {
                    cleaned.append(new String(data)).append(' ');
                }
        };
        new ParserDelegator().parse(new StringReader(html), callback, false);

        System.out.println(markup);
        System.out.println("---------------------------");
        System.out.println(html);
        System.out.println("---------------------------");
        System.out.println(cleaned);
    }
}

生成:

This is ''italic'' and '''that''' is bold. 
=Header 1=
a list: 
* item A 
* item B 
* item C
---------------------------
<p>This is <i>italic</i> and <b>that</b> is bold. </p><h1 id="Header1">Header 1</h1><p>a list: </p><ul><li>item A </li><li>item B </li><li>item C</li></ul>
---------------------------
This is  italic  and  that  is bold. Header 1 a list: item A item B item C 

インポートする Java パッケージはどこからダウンロードしますか?

ここ: download.java.net/maven/2/net/java/textile-j/2.2 の Web アーカイブ リンク

于 2010-05-19T11:26:43.163 に答える
1

Mylyn WikiTextは、さまざまなWiki構文をHTMLおよびその他の形式に変換できます。また、ウィキペディアが使用するMediaWiki構文もサポートしています。Mylyn WikiTextは主にEclipseプラグインですが、スタンドアロンライブラリとしても利用できます。

于 2010-05-19T06:27:42.287 に答える
1

Mediawiki のテキストからプレーン テキストへのアプローチを試してください。おそらく、必要に応じて PlainTextConverter クラスを改善する必要があります。ウィキペディアのテキストを HTML に変換する例と組み合わせると、テンプレートのコンテンツをトランスクルージョンできます。

于 2010-05-19T18:49:32.083 に答える
1

Jwikiを使用してウィキペディアのデータを取得できます 例:

Jwiki jwiki = new Jwiki("elon musk");
System.out.println("Title :"+jwiki.getDisplayTitle()); //get title
System.out.println("Text : "+jwiki.getExtractText());  //get summary text
System.out.println("Image : "+jwiki.getImageURL());    //get image URL
于 2020-06-10T10:07:43.283 に答える