我正在实现一个小型字典数据库,我想根据它们之间的词汇/语义相似性进行搜索..
例如,beer
有“姐妹词”,例如soda, lemonade, wine, champagne
每个“不同”的“不同方向”(例如:前两个是“啤酒”概念的“温和”版本,而后两个是“更极端”的版本)
我知道 WordNet 有一个 API,但我字典中的大多数单词(和短语)都以更非正式的方式相关
(另一个例子。“gangster”与[ 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"