首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从句子中提取信息

从句子中提取信息
EN

Stack Overflow用户
提问于 2016-11-02 16:28:57
回答 4查看 504关注 0票数 0

我正在创建一个简单的聊天机器人。我想从用户响应中获取信息。示例场景:

代码语言:javascript
复制
Bot : Hi, what is your name?
User: My name is Edwin.

我想从句子中提取出Edwin这个名字。但是,用户可以通过不同的方式进行响应

代码语言:javascript
复制
User: Edwin is my name.
User: I am Edwin.
User: Edwin. 

我试图依靠单词之间的依存关系,但结果并不好。

你知道我可以用什么技术来解决这个问题吗?

EN

回答 4

Stack Overflow用户

发布于 2016-11-02 16:50:34

首先,我认为设置一个完整的名称检测是非常繁重的。如果你希望你的机器人能够在99%的情况下检测到一个名字,你需要做一些工作。我想名字检测只是你计划的开始...

这就是说,这是我脑海中的第一个想法:

从语法上讲,

  • 名称是名词。因此,如果一个人可以对句子进行语法分析,就可以找到这个名字的一些候选者。
  • 的名字应该以大写开头,尽管在聊天中这可能不被尊重,所以它可能用处不大。然而,如果遇到一个以大写字母开头的单词,它很可能是某人的名字(尽管它可能是一个地名……)。
  • 在介绍自己时,你可以合理地想到的模式并不是那么多,所以你可以对它们进行“硬编码”,当然要对拼写错误有一点容忍度。
  • 如果你想要一个真实的名字,你可以使用一个保存大量名字的数据库,但要享受夏威夷或中国名字的乐趣。尽管如此,在欧洲名字的情况下,这似乎是一个可行的解决方案。

然而,我不是AI专家,我期待着看到其他提案。

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 10:31:35

我建议使用NER:

你可以自己操作它:http://nlp.cogcomp.org/

票数 1
EN

Stack Overflow用户

发布于 2016-11-08 18:11:09

有很多选择,只有2个“模型”:

基于NLP训练的

  • ;使用HTTP for integration/delivery:

代码语言:javascript
复制
- [Microsoft LUIS](https://www.luis.ai/)
- [API.AI](http://api.ai/)
- [IBM Watson](https://www.ibm.com/marketplace/cloud/cognitive-customer-engagement/us/en-us)

基于模式匹配的

  • ;使用解释器(需要本机实现或来自其他implementation)

的桥

代码语言:javascript
复制
- [Rivescript](https://www.rivescript.com/about) - Python interpreter available
- [ChatScript](http://chatscript.sourceforge.net/) - needs a C++ bridge/interop
- [AIML](http://www.alicebot.org/downloads/programs.html) - Python interpreter available

这不是当前选项的详细列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40375368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档