2011-11-22 57 views
0

我必须找到> 200个单词的定义。我想使用维基百科为了从列表中搜索带有给定单词的intlated文章,然后提取其定义的原始文本(文章的第一句)。事实上,在我的项目中,我有一个包含单词(simlpe和composated)的Jlist。我想为每个词找到一个使用维基百科的定义(我选择这个百科全书是因为这些词是从一个专门的语料库中提取的)。我的问题是:如何从维基百科转储中检索定义?我发现JWPL,但没有找到帮助我使用它的例子。另一个问题是:如果维基百科离线(使用WikiTaxi),如何使用Java从它提取定义?维基百科文章的第一句和Java

谢谢。

+2

您有问题吗? –

+0

正在做作业吗?你究竟在问什么? – luketorjussen

+0

你不会在这里得到代码。你需要模拟网络爬虫。一种方法是找到一个页面,你可以找到你想要的单词列表。为工作提取超链接,并使用http://java-source.net/open-source/crawlers/java-web-crawler其中一个lib抓取页面来提取信息。 – harshit

回答

2

维基百科是创意共同许可(见他们terms of use什么是允许的)

维基百科目前已经有一个API,这很可能是你的目的,而不是开发自己的更好。有关API here的更多信息。

另一件值得考虑的事情是,如果你想定义,也许你会更好使用wiktionaryWiktionary also has their own API

下面是一个例子API调用来获取维基文本上的“堆栈溢出”

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=stack_overflow&rvprop=content

下面是一个例子查询维基返回单词“栈”:

http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=stack&rvprop=content

你可能仍然需要解析输出,但它会得到你想要的...

如果你想做一个快速和肮脏的屏幕刮,他们的网址是相当容易构建。 URL基本上是http://en.wikipedia.org/wiki/ +一个消毒字(例如空格替换为_等)

当场制作的示例url将是http://en.wikipedia.org/wiki/Stack_overflow,它将直接带您访问wikipedia上的Stack Overflow条目。

维基百科的正文内容始于此评论<!-- bodycontent -->,并且包含在与此ID相同的div中:mw-content-ltr您可能会在寻找第一个<p>标记。