Java 从Wiki转储中提取文章
我有一个巨大的wiki转储(提取tar.bz文件后约50GB),我想从中提取单个文章。我正在使用库来提取内容,它确实给出了标题、文本、最后提到的类别和一些其他属性。但我更感兴趣的是与每篇文章相关联的外部链接/引用,因为这个库没有为其提供任何API 除了解析我们通过Java 从Wiki转储中提取文章,java,xml,mediawiki,wiki,wikipedia,Java,Xml,Mediawiki,Wiki,Wikipedia,我有一个巨大的wiki转储(提取tar.bz文件后约50GB),我想从中提取单个文章。我正在使用库来提取内容,它确实给出了标题、文本、最后提到的类别和一些其他属性。但我更感兴趣的是与每篇文章相关联的外部链接/引用,因为这个库没有为其提供任何API 除了解析我们通过getWikiText()API得到的wikiText之外,还有什么优雅而有效的方法来提取它。 或者是否有任何其他java库可以从这个转储文件中提取,它为我提供了标题、内容、类别和引用/外部链接。XML转储正好包含库提供的内容:页面文本
getWikiText()
API得到的wikiText
之外,还有什么优雅而有效的方法来提取它。或者是否有任何其他java库可以从这个转储文件中提取,它为我提供了标题、内容、类别和引用/外部链接。XML转储正好包含库提供的内容:页面文本和一些基本元数据。它不包含任何关于类别或外部链接的元数据 在我看来,你有三个选择:
可能为时已晚,但此链接可能有助于:
下面是上述程序的输出示例:JWPL可能是最好的。试试这些@Amit G JWPL要求我将转储内容存储在SQL数据库中。是否有在wiki转储文件本身(.tar.bz2或.tar)上运行的库?这里没有简单的方法。您将为wikitext编写自己的解析器。在这里使用javaRegEx或Antlr。为什么不从API中询问所有这些呢?如果您需要转储,您可以从ZIM转储(kiwix.org)获取1)解析的内容和引用,2)从相应表(dumps.wikimedia.org)的SQL或txt.gz转储中获取标题、类别和外部链接。实际的XML文件(提取后)包含所有信息,包括引用和外部链接。但是,当我使用
wikixmlj
库时,APIgetWikiText()
在剥离链接和引用后只提供了内容。因为我只对这些链接感兴趣,所以我编写了一个简单的逐行解析器来获取每个
标记,并显式地查找引用和外部链接。旁注:WikiXMLJ
在每个wiki页面的末尾提供了可用的类别