Nlp 如何使用自然语言处理检查段落是否包含预定义主题?

Nlp 如何使用自然语言处理检查段落是否包含预定义主题?,nlp,Nlp,我们有一个允许用户以自由文本形式回答问题的系统,我们希望检查他们的答案是否包含我们预定义的主题。这些主题将在提交答案之前定义 我们尝试使用一种类似于垃圾邮件检测的方法,但这只适用于确定内容是否正确。我们需要回复来说明一段文本包含哪些预定义主题。有没有一种算法可以解决这个问题?也许你会尝试使用“单词袋”进行特征提取,使用“具有多项式模型的朴素贝叶斯分类器”进行分类 在本页中,这将描述更多细节。您也可以尝试显式语义分析(ESA)[1][2]。给定一组表示概念的文档(在您的例子中是您的主题),您可以训

我们有一个允许用户以自由文本形式回答问题的系统,我们希望检查他们的答案是否包含我们预定义的主题。这些主题将在提交答案之前定义

我们尝试使用一种类似于垃圾邮件检测的方法,但这只适用于确定内容是否正确。我们需要回复来说明一段文本包含哪些预定义主题。有没有一种算法可以解决这个问题?

也许你会尝试使用“单词袋”进行特征提取,使用“具有多项式模型的朴素贝叶斯分类器”进行分类


在本页中,这将描述更多细节。

您也可以尝试显式语义分析(ESA)
[1][2]
。给定一组表示概念的文档(在您的例子中是您的主题),您可以训练一个模型,并将任何新句子作为输入,您可以获得该句子“诱发”的最接近概念的排序列表。当然,这假设您有一个文档,其中包含一些描述您想要识别的每个概念的文本(这就是为什么最常见的做法是使用Wikipedia页面作为概念),但如果是这种情况,您可以尝试一下

[1] https://en.wikipedia.org/wiki/Explicit_semantic_analysis
[2] http://www.cs.technion.ac.il/~gabr/papers/ijcai-2007-sim.pdf

这显然太宽泛了。你在寻找什么样的主题,你对如何建立他们的存在感有想法吗?天真的方法会倾向于将“我可以为一杯酒而杀人”标记为“侵略性的”,但不一定是“酒精”(因为“饮料”也有一个中性的含义——饮用液体)。此外,立即否定所有可能的垃圾邮件过滤器似乎为时过早。有太多不同的技术,其中许多可能会与您最终选择的任何技术竞争。问题类似于“Y很好时为什么我应该做X?”然后我们希望确保响应文本包含预定义的答案,例如“X不会做这件坏事,但Y会做”或“与Y相比,90%做X的人更喜欢X“。你还是应该给我们一个X和Y代表什么的大致概念。如果它们非常笼统或模棱两可,这是很难做到的;如果它们是非常明确和具体的,仅仅检查它们的存在就足够了,除了柠檬化或其他简单的标准化步骤之外,你并不需要合适的NLP。不幸的是,我不知道势X和Y,所以我和你一样一无所知:)我们正在研究概念证明,问题还没有写出来。我想你是对的,我不需要合适的NLP。谢谢你的帮助。我想这就是他们所说的“类似于垃圾邮件检测的方法”(可能减去“多项式”)的意思。我使用的垃圾邮件检测方法位于本页底部。我定义了垃圾邮件/火腿的例子,然后未来的“电子邮件”将根据培训例子进行分类。这是二项式的,但该方法很好地扩展到了多项式,即您想要定义的任意数量的类别(加上可能一个或多个“溢出”类别,用于培训不属于任何类别的样本)。