위키피디아 덤프를 다운로드 했으므로 각 페이지의 내용에 위키 백과 마크 업을 제거하고 싶습니다. 정규식 작성을 시도했지만 처리하기에는 너무 많습니다. 파이썬 라이브러리를 찾았지만 자바 라이브러리가 필요하다. 내 코드에 통합하고 싶기 때문이다.위키 피 디아 : 위키 피 디아 텍스트 마크 업 제거를 제거하는 자바 라이브러리
감사합니다.
위키피디아 덤프를 다운로드 했으므로 각 페이지의 내용에 위키 백과 마크 업을 제거하고 싶습니다. 정규식 작성을 시도했지만 처리하기에는 너무 많습니다. 파이썬 라이브러리를 찾았지만 자바 라이브러리가 필요하다. 내 코드에 통합하고 싶기 때문이다.위키 피 디아 : 위키 피 디아 텍스트 마크 업 제거를 제거하는 자바 라이브러리
감사합니다.
두 단계를 수행합니다
다음 데모 :
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
Mylyn WikiText은 다양한 위키 구문을 HTML 및 다른 형식으로 변환 할 수 있습니다. Wikipedia가 사용하는 MediaWiki 구문도 지원합니다. Mylyn WikiText는 주로 Eclipse 플러그인이지만, available as standalone library입니다.
위키 마크 업을 제거 할 수있는 함수가 필요합니다. 마크 업을 제거하기 위해 mylyn을 사용하는 방법을 모르겠습니다. 어떻게하는지 말해 줄 수 있어요. – Boolean
@ Algorist : Mylyn WikiText는 마크 업을 제거하지 않고 다른 형식으로 변환합니다. 죄송합니다. 질문을 잘못 읽었습니다. –
Mediawiki text to plain text 접근 방식을 시도합니다. 필요에 따라 PlainTextConverter 클래스를 개선해야합니다. example for converting Wikipedia texts to HTML과 결합하면 템플릿 내용을 분리 할 수 있습니다.
일반 텍스트가 필요한 경우 WikiClean 라이브러리 https://github.com/lintool/wikiclean을 사용해야합니다.
나는 이것이 자바에서 저에게 효과가있는 유일한 효율적인 솔루션 인 것처럼 보입니다. 당신이 XML 형식이 아닌 텍스트가있을 때 당신이 처리를 할 필요가 XML 태그를 추가해야합니다
1) :
두 쓰임새가 있습니다. 이전에 XML 파일을 처리 중이며 XML 구조가없는 컨텐츠가있는 경우 xmlStartTag 및 xmlEndTag를 코드에서와 같이 추가하면 처리됩니다.
2) 위키피디아 덤프 파일을 직접 읽는 경우 (xml 파일),이 경우 파일을 통해 전달하기 만하면됩니다.
WikiClean cleaner = new WikiClean.Builder().build();
String plainWikiText = cleaner.clean(XMLFileContents);
스택 오버플로에 오신 것을 환영합니다! 질문은 [도움말]에 정의 된 스택 오버플로에 대한 주제가 아닙니다. 그런 질문에 대답하지 마십시오. 대신주의를 기울여 플래그를 지정해야하며 닫히거나 적절히 마이그레이션됩니다. –
이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [검토 중] (리뷰/저품절 게시물/18533404) – Bhuwan
감사합니다. @Bhuwan. 귀하의 제안에 따라 답변을 업데이트했습니다. –
구름 당신은 제거 할 마크 업을 보여주는 페이지 샘플을 게시하고 있습니까? – bakkal