javascript - 自然语言处理数据库查询

标签 javascript python json nlp nltk

我需要为结构化数据库开发自然语言查询工具。我尝试了两种方法。

  • 使用 Python nltk(Python 自然语言工具包)
  • Javascript 和 JSON(用于数据源)

在第一种情况下,我做了一些 NLP 步骤来格式化自然查询,方法是删除停用词、词干,最后使用特色语法映射来映射关键字。此方法适用于简单的场景。

然后我转向第二种方法。查找JSON中的数据并获取相应的列名和表名,然后构建sql查询。对于这一点,我还实现了删除停用词、使用 javascript 进行词干提取。

这两种技术都有局限性。我想实现语义搜索方法。

请有人建议我更好的方法来做到这一点..

最佳答案

NLIDB(数据库的自然语言接口(interface))的语义解析是一个非常发展的领域,具有许多技术:基于规则的方法(涉及语法)或机器学习技术。它们涵盖了大范围的查询输入,并提供比纯 NL 处理或正则表达式方法更多的结果。

我喜欢的技术是基于基于特征的上下文无关语法 FCFG 。对于初学者来说,在 NTLK 书中 available online ,查找字符串“sql0.fcfg”。该代码示例展示了如何通过特征“SEM”或 FCFG 的语义将 NL 短语结构查询“中国的哪些城市”映射到 SQL 查询“SELECT City FROM city_table WHERE Country=”china”。

我推荐卡温顿的书

  • 面向 Prloog 程序员的 NLP (1994)
  • Prolog 深度编程 (1997)

他们会帮助你走得更远。这些 PDF 可以从他的 site 下载。 .

关于javascript - 自然语言处理数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330033/

相关文章:

javascript - 创建一个函数,根据 jQuery 中的函数参数显示所选属性和值的文本

javascript - 使用JavaScript进行代码依赖来选择RESTful

javascript - 使用 jQuery sortable 交换两个 div

python - Jupyter notebook python 在 Windows 10 上崩溃

python - 模拟返回模拟对象而不是返回值

java - Jackson:没有找到类~~~~~~的序列化器,也没有发现创建 BeanSerializer 的属性

jquery - 使用 JQuery.getJSON 指定回调参数

php - JSON 解析 --> Swift | JSON 写入中的顶级类型无效

javascript - 如何一键发送数据并运行与该数据的链接

python - Scapy 中的 3 次握手