我想知道构建逆向语言词典需要什么。
用户输入类似以下内容的内容:“红色可食用水果”,应用程序将返回:“西红柿、草莓……”
我认为这些结果应该基于某种形式的关键字,例如同义词,或某种形式的字符串搜索。
这是这个概念的一个 online implementation。
那里发生了什么以及涉及什么?
编辑 1:
问题更多是关于“如何”而不是“哪个工具”;但是,请随意提供您认为可以完成这项工作的工具。
最佳答案
任何方法基本上都涉及使用 normalized database 。以下是您的数据库结构的基本示例:
// terms
+-------------------+
| id | name |
| 1 | tomatoes |
| 2 | strawberries |
| 3 | peaches |
| 4 | plums |
+-------------------+
// descriptions
+-------------------+
| id | name |
| 1 | red |
| 2 | edible |
| 3 | fruit |
| 4 | purple |
| 5 | orange |
+-------------------+
// connections
+-------------------------+
| terms_id | descript_id |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 3 | 1 |
| 3 | 2 |
| 3 | 5 |
| 4 | 1 |
| 4 | 2 |
| 4 | 4 |
+-------------------------+
这将是一个相当基本的设置,但是它应该让您了解使用查找表在数据库中工作的多对多关系。
您的应用程序必须拆分字符串并能够处理规范化输入,例如摆脱用户输入的后缀。然后脚本将查询
connections
表并返回结果。关于algorithm - 构建逆向语言词典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1749201/