构建逆向语言词典

构建逆向语言词典

我想知道构建逆向语言词典需要什么。

用户输入类似以下内容的内容:“红色可食用水果”,应用程序将返回:“西红柿、草莓……”

我认为这些结果应该基于某种形式的关键字,例如同义词,或某种形式的字符串搜索。

这是这个概念的一个 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/

10-13 00:04