6

我正在从http://www.semantilog.org/wn2sql.html在 MySQL 中安装 WordNet

我想以与普林斯顿网页相同的方式显示数据:http ://wordnetweb.princeton.edu/perl/webwn?s=car

我将如何查询数据库来做到这一点?我正在使用 PHP。

4

1 回答 1

11

根据我从网站上的文档收集的信息,您似乎需要查询三个表。

首先,您查询单词表以获取它的wordno,即每个单词具有的唯一编号。它看起来像这样。

//assuming you've connected to your MySQL db
$word=$_GET['s']; //This variable stores the value given through url
if (ctype_alpha($word)){ // If it's alphabetical
  $word_clean=mysql_real_escape_string($word); //Sanitize it for MySQL
}else{
  //Not a valid word, error handle
  exit();
}
$query='SELECT wordno FROM word WHERE lemma=`$word_clean` LIMIT 1';
$result=mysql_query($query);

接下来,我们需要查询语义表以获取synsetno ,它将输出单词的不同意义。例如:can(名词)和 can(动词),每个都有一个唯一的数字,即synsetno

MySQL 查询将类似于以下内容:

$query='SELECT synsetno FROM sense WHERE wordno=`$wordno`';

对于从该查询中获得的每个结果,您必须查询同义词集表以获取每种意义的定义。can(名词)和can(动词)有不同的定义。每个synsetno的查询。

$query='SELECT definition FROM synset WHERE synsetno=`$synset`';

快!你有一本很酷的字典。但是,必须查询三个表,每个表都有大量记录,这对 CPU 来说是一种痛苦。

于 2011-06-19T23:16:48.660 回答