2

我在 python 中编写了一个程序来使用 word net 查找单词之间的语义相似性。但我觉得它是静态的。我想给它一个动态的方法。我想从维基百科访问每个单词的定义。我怎样才能访问这样一个词的定义?当我用谷歌搜索时,我发现通过解析维基百科转储文件我们可以获得定义。但我不知道如何解析。是否有人可以实现解析器以从转储文件中获取单词的定义。这是唯一的方法吗?方法是真的。

4

2 回答 2

6

你不需要重新发明轮子。怀卡托大学的研究人员建立了一个非常好的维基百科数据挖掘服务,称为WikipediaMiner

这个包将常规的 Wikipedia 转储转换为 MySql 数据库格式,并提供对 Wikipedia 部分(如文章、消歧页面和超链接)的面向对象的访问。Wikipedia Miner 还实现了一种算法,用于计算文章之间的语义相关性,Maui使用该算法来消除文档与 Wikipedia 文章之间的歧义,并用于计算语义特征。

除此之外,他们还公开了各种 API。例如,如果您想获取 的定义Logistic Regression只需使用它们的exploreArticleAPI:

http://wikipedia-miner.cms.waikato.ac.nz/services/exploreArticle?title=logistic%20regression&definition=true

响应 xml 如下所示:

<message service="/services/exploreArticle" id="226631" title="Logistic regression">
<request>
  <param name="title">logistic regression</param>
  <param name="definition">true</param>
</request>
<definition><![CDATA[In <a href="http://www.en.wikipedia.org/wiki/Statistics">statistics</a>, <b>logistic regression</b> (sometimes called the <b>logistic model</b> or <b><a href="http://www.en.wikipedia.org/wiki/Logit">logit</a> model</b>) is used for prediction of the <a href="http://www.en.wikipedia.org/wiki/Probability">probability</a> of occurrence of an event by fitting data to a logit function <a href="http://www.en.wikipedia.org/wiki/Logistic function">logistic curve</a>.]]>
</definition>
</message>

比较单词之间的语义相似度,你可以试试他们的compareAPI。

例如,与 相比kiwitakahe您使用以下 API 调用:

http://wikipedia-miner.cms.waikato.ac.nz/services/compare?term1=kiwi&term2=takahe&disambiguationDetails&connections&snippets

以下是有关他们用于相关性度量的算法的更多详细信息。

您还可以托管您自己的 wikipediaMiner 服务(详情请点击此处)。在这里找到更多关于如何使用他们的服务的信息。他们的相关出版物在这里

于 2012-10-28T23:50:11.633 回答
0

我认为您实际上是在寻找同义词库,而不是维基百科。其中一些可作为机器可读的语料库使用。然而,我不得不承认,文本定义似乎不是确定单词相似度的良好信息来源,除非在某些特殊情况下。

这些是关于单词相似性度量的大量工作,因此与其重新发明轮子,不如研究最先进的技术和/或工具。维基百科提到了其中一些。

于 2012-10-15T10:57:10.500 回答