如何确定输入句子是否与某个主题一致?

人工智能 自然语言处理
2021-10-23 07:12:13

如何确定输入句子是否与某个主题一致?

例如,假设我得到以下数据集。

| Subject       | User input           | Output |
|---------------|----------------------|--------|
| Dog ownership | I own a dog          | Yes    |
| Dog ownership | My dog is called Joe | Yes    |
| Dog ownership | I don't have a dog   | No     |

在上面的例子中,主语“dog Ownership”与输入句子“I own a dog”和“My dog is called Joe”是一致的(因为,如果你的狗叫 Joe,那么你也拥有一只狗)。

3个回答

如果你有大量的训练数据,ANN(深度学习)很可能会让你到达那里。但我有一种预感,你也可能会从使用规则归纳方法之类的东西中获得一些好处。也许像CN2 之类的东西。我建议至少阅读这些内容,看看您是否可以找到一种将其应用于您的系统的方法。

如果您收集了数据或信息,那么您想询问有关此数据的问题,机器应该会回答您。

我认为你首先需要数据挖掘来导出这些数据中的含义和关系,然后你可以建立你的专家系统来回答你。

神经网络是我推荐的一件事。您的问题适合谓词演算领域,对输入句子进行一些基本的模式识别(假设您只接受某种类型的句子)。您可以在不需要大量数据的情况下做到这一点。

首先,将您的语句转换为规范表示,可能使用一阶逻辑和简单的模式匹配/字符串匹配。例如,

I own a dog 

X own/owns a/an Y  

owns(I, dog)

在这里,您有一个模式“ X own(s) a(n) Y ”,您可以在用户输入中识别它。然后,您有一个谓词owns(X, Y),您将其添加到您的语句数据库中。然后你可以查询这个数据库。例如,我是否拥有一只猫?可以适合问题模式Do/Does X own(s) a(n) Y? , 你可以在你的数据库中搜索own(I, cat)你不会找到它,所以答案是“不”。如果问题是“我养狗吗?” 您会在您的数据库中找到owns(I, dog)并且您可以回复“是”。

这都是相当“古老”的技术,但我认为你会发现你会比使用机器学习或统计方法更快地获得不错的结果,尤其是在你没有太多数据开始的情况下。

另一个需要研究的分支是专家系统如果您正在考虑编程语言,那么Prolog将非常适合这一点,但任何语言都应该这样做,真的。