我在python中编写了一个程序,用word net来查找单词之间的语义相似性。但我觉得它是静态的。我想给它一个动态的方法。我想从维基百科访问每个单词的定义。如何访问这样的单词的定义?当我用Google搜索时,我发现通过解析维基百科转储文件,我们可以获得定义。但我不知道如何解析。是否有人可以实现解析器来从转储文件中获取单词的定义。这是唯一的方法吗?方法是真的。
答案 0 :(得分:5)
您无需重新发明轮子。怀卡托大学的研究人员建立了一个非常好的维基百科数据挖掘服务,名为WikipediaMiner。
此软件包将常规Wikipedia转储转换为MySql数据库格式,并提供对Wikipedia部分内容的面向对象访问,如文章,消歧页面和超链接。 Wikipedia Miner还实现了一种算法,用于计算Maui用于消除文档与维基百科文章的歧义以及计算语义特征的文章之间的语义相关性。
他们还暴露了各种API。
例如,如果您想获取Logistic Regression
的定义,只需使用他们的exploreArticle
API:
响应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>
要比较单词之间的语义相似性,您可以尝试使用他们的compare
API。
比较kiwi
与takahe
,您使用以下API调用:
Here是关于他们用于相关性度量的算法的更多细节。
您还可以托管自己的wikipediaMiner服务(详情here)。 在here了解有关如何使用其服务的详情。他们的相关出版物是here。
答案 1 :(得分:0)
我认为你实际上在寻找 thesaurus ,而不是维基百科。其中一些可用作机器可读的语料库。然而,我必须承认,除了某些特殊情况外,文本定义似乎不是确定单词相似性的良好信息来源。
这些是关于单词相似性度量的大量工作,因此不用重新发明轮子就可以研究最先进的技术和/或工具。 Wikipedia提及其中一些。