首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php调用wordnet (Wordnet类或PHP API )

从php调用wordnet (Wordnet类或PHP API )
EN

Stack Overflow用户
提问于 2011-06-13 23:06:04
回答 1查看 5.1K关注 0票数 4

我正在尝试写一个程序来查找两个文档之间的相似性,因为我只使用英语,所以我决定使用wordnet,但我找不到一种方法将wordnet与php链接,我无法从php中找到任何wordnet api。

我在论坛上看到有人说(斯普德利)他从php调用wordnet (使用shell_exec()函数),Thesaurus class or API for PHP [edited]

我真的很想知道使用的方法或一些示例代码,也许是开始在php中使用wordnet的教程。

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-13 23:44:28

从WordNet站点链接到的PHP扩展非常旧,而且已经过时了--它声称可以与PHP4一起使用,所以我认为它已经多年没有出现过了。

没有任何其他API可用于WordNet->PHP,所以我推出了自己的解决方案。

PHP可以从命令行运行,因此WordNet的shell_exec()函数可以读取输出。

如果您从命令行运行WordNet (cd进入Wordnet的目录,然后只运行wn)而不带任何参数,它将显示Wordnet支持的可能函数的列表。

仍然是在命令行中,如果您随后尝试其中的一个/某些函数,您将看到Wordnet如何输出其结果。例如,如果您想要单词'star‘的同义词,您可以尝试使用-synsn函数:

代码语言:javascript
复制
wn star -synsn

这将产生类似如下所示的输出:

名词星形的

同义词/上位词(按估计频率排序)

星的八种感官

感觉1星=>天体,天体

Sense 2王牌,熟练,冠军,感觉,maven,mavin,virtuoso,genius,hotshot,star,superstar,wiz,wiz => expert

Sense 3星=>天体,天体

Sense 4星=>平面图形,二维图形

Sense 5明星,校长,=>首席演员,角色演员

Sense 6头条,明星=>表演者,表演艺术家

Sense 7星号、星形=>字符、字素、图形符号

Sense 8星型拓扑、星型=>拓扑、网络拓扑

在PHP中,您可以使用shell_exec()函数读取相同的输出。

代码语言:javascript
复制
$result = shell_exec('/path/to/wn '.$word.' -synsn');

现在,$result应该包含上面引用的文本块。

在这一点上,您必须进行一些适当的编码。您需要获取该文本块并对其进行解析以获得所需的数据。

这就是它变得棘手的地方。因为数据是以人类而不是程序读取的格式呈现的,所以很难准确地进行解析。

重要的是要注意,不同的搜索选项呈现其输出略有不同。而且,返回的一些结果可能有些晦涩难懂。我最终编写了一个加权系统来对结果进行评分,但它相当具体地满足了我的需求,因此您需要对其进行实验,以提出您自己的系统。

我希望这对你有足够的帮助。:)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6332254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档