私は、それらの間の字句/意味の類似性に基づいて検索を行いたい小さな辞書データベースを実装しています..
たとえば、それぞれ「異なる」「異なる方向」beer
などの「姉妹語」がありますsoda, lemonade, wine, champagne
(例: 最初の 2 つは「ビール」のアイデアの「適度な」バージョンであり、後の 2 つは「より極端な」バージョンです)。 )
WordNet に API があることは知っていますが、私の辞書にある単語 (およびフレーズ) のほとんどは、より非公式な方法で関連しています。
(別の例。「ギャングスター」は [ nun, orphan, rebel
] { criminal, mafia boss, murderer
} に関連し、四肢は左から右に変化し、[] 内のものは「正の四肢」と見なされ、{} 内のものは「負の四肢」と見なされます)
使用中:
- ユーザーが検索入力 (単語) を入力します
- 単語は姉妹語と一致します。
- ユーザーは、上記の例のように、四肢を少なくとも 2 方向に変更することで「単語を微調整」する機会があります。
このような検索を実装する最良の方法は何ですか? 上記のステップ 2 と 3 は?
私はPHP/MySQLに精通しているので、使用を検討していますが、より良い代替手段は何ですか? 繰り返しますが、これは大きな辞書ではないことに注意してください。よくある言葉を抜粋しただけです。
これに答える私の試みは次のとおりです-それは非常に基本的なものです...改善の提案を歓迎します:
MySQL テーブルの単語:
id, (primary key, autoincrement)
word (varchar 75),
relatedword (varchar 75)
relationscore (int 11)
direction (tinyint, -1 or 1)
$word クエリと $direction が与えられた場合:
"SELECT relatedword FROM words WHERE word='$word' AND direction=$direction ORDER BY relationscore DESC"