python - 从给定文本中识别与域相关的重要关键字
问题描述
我对 NLP/文本处理领域比较陌生。我想知道如何从给定的文本中识别与域相关的重要关键字。例如,如果我必须构建一个将在银行领域使用的问答聊天机器人,那么 Q 会是:TRADE:12345 的到期日期是什么时候?
从 Q 中,我想提取关键字:到期日期 & TRADE:12345。从提取的信息中,我将构建一个类似 SQL 的查询,搜索数据库,检索 SQL 输出并将响应提供给用户。
任何帮助,将不胜感激。
提前致谢。
解决方案
所以,这就是工作的来源。
通常人们从停用词列表开始。有好几种,慎重选择。但是您很有可能会尝试和/或使用基本列表,然后在该列表中添加更多单词。
根据清单,它将取出
“什么,是,那个,为了,?”
由于这是一个非常简单的示例,因此他们都会这样做。但是你会注意到正在做的事情与你想要的恰恰相反。您要求提供特定于域的单词,但正在发生的事情是删除所有其他垃圾(到库)。
从这里开始,这将取决于您使用什么。NLTK 或 Spacy 是常见的选择。无论你选择什么,都要真正理解概念,否则它会咬你一口(就像数据科学中的几乎所有东西一样)。
期望开始根据语言模式进行思考,因此在您的示例中:
TRADE:12345 的到期日是什么时候?
“what”是疑问句,“the”是定冠词,“for”是介词短语的开头。
可能还有其他线索,例如“:”或 TRADE 全部大写。但是,可能不是。
这应该可以帮助您入门,但您可能会查看其他一些 StackExchange 站点以获得更深入的专业知识。
最后,您希望将这样的问题分解为多个问题(假设您已完成研究并确定该问题尚未被反复提出)。因此,NLTK 和 NLP 是相当新的,但 SQL 查询通常是谷歌搜索。
推荐阅读
- python - 如何将对象的函数名作为参数传递
- c++ - 对元素的向量或指向元素的指针进行排序
- php - 如何合并 $u_activity[$key] 和 $u_activity_event[$key] 结果集返回的结果集
- angular - 我正在尝试使用带有角度的茉莉花来测试来自服务的 api 请求,但没有成功
- go - 我可以创建一个与另一个签名相同的函数吗?
- highcharts - 在特定的向下钻取级别初始化 Highcharts 树状图
- postgresql - 优化触发器添加审计日志
- xcode - 如何正确签署 Mac 应用程序以进行自我分发?
- nginx - 如何从 X-frame-options 同源中排除我服务器上的指定路径?
- javascript - 重新构造数组