http://www.semantilog.org/wn2sql.htmlから MySQL に WordNet をインストールしています。
Princeton の Web ページと同じ方法でデータを表示したいと思います: http://wordnetweb.princeton.edu/perl/webwn?s=car
それを行うためにデータベースにクエリを実行するにはどうすればよいですか? 私はPHPを使用しています。
http://www.semantilog.org/wn2sql.htmlから MySQL に WordNet をインストールしています。
Princeton の Web ページと同じ方法でデータを表示したいと思います: http://wordnetweb.princeton.edu/perl/webwn?s=car
それを行うためにデータベースにクエリを実行するにはどうすればよいですか? 私はPHPを使用しています。
Web サイトのドキュメントから収集した情報によると、3 つのテーブルに対してクエリを実行する必要があるようです。
まず、各単語が持つ一意の番号である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`';
そのクエリから取得した結果ごとに、synsetテーブルにクエリを実行して、各意味の定義を取得する必要があります。can (名詞) と can (動詞) は定義が異なります。各synsetnoのクエリ。
$query='SELECT definition FROM synset WHERE synsetno=`$synset`';
そして早速!あなたはかなりクールな辞書を持っています。ただし、それぞれが大量のレコードを持つ 3 つのテーブルにクエリを実行する必要があるのは、CPU にとっては苦痛です。