构建反向语言词典

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

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

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

这是一个该概念的在线实现

那里发生了什么,涉及哪些方面?

EDIT 1:
这个问题更多是关于“如何”做,而不是“用哪个工具”; 但是,请随意提供您认为可以完成这项工作的工具。


回答:

任何方法基本上都涉及拥有一个规范化的数据库。这是一个你的数据库结构可能是什么样子的基本示例:

// 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表并返回结果。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注