2011-06-19 7 views
6

私はhttp://www.semantilog.org/wn2sql.htmlはWordNetの

からのMySQLにWordNetのをインストールしています、私はプリンストンのウェブページと同じようにデータを表示したいを使用して簡単な辞書を作成しますそれを行う?私はPHPを使用しています。

+1

あなたは始めてください。 – Ibu

+0

@hakre私は、プリンストンがそれをやり遂げる方法ですが、始めるには良い方法だと思います。私はシスネット(意味関係など)を表示する必要はありません。 – Chad

答えて

11

私がウェブサイトのドキュメントから収集したところから、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、単語のwhich'll出力異なる感覚を得るためにテーブルを照会する必要があります。例:あなたが得る結果ごとに、

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

:(名詞)とすることができます(動詞)、それぞれの線に沿って、MySQLのクエリはなり

synsetno何かがある一意の番号を持つことができますそのクエリからsynsetテーブルを照会しての定義の各意味を取得する必要があります。 Can(名詞)とcan(動詞)は異なる定義を持つことができます。各synsetnoのクエリ。

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

そしてpresto!あなたはとても素敵な辞書を持っています。ただし、3つのテーブルにそれぞれ1トンのレコードを照会する必要があるのは、CPUの苦労です。

+0

これは私を始めさせるのに十分です。ありがとう! – Chad

+0

単語の例文を取得する方法を教えてもらえますか? – SexyBeast

+0

あなたは 'SELECT * FROM word JOIN sense on sense.wordno = word.wordnoに参加することができます。sense.synsetno = synset.synsetnoにJOIN synsetを設定してくださいWHERE word.lemma LIKE 'wheel' ORDER BY' sense'.tagcnt' DESC' – astroanu

関連する問題