NLP:按意图进行句子分割

时间:2018-06-12 03:49:09

标签: nlp

我试图通过意图找到句子隔离的解决方案。由于一个句子可能有多个意图,我想通过意图将一段文本分成短句。

例如:要分开'今天发送电子邮件我的团队会议,并将计划文件附加到'今天发送电子邮件我的团队会议',并附上计划文件'。或者'我想要苹果和橘子,今晚我会迟到'我想要苹果和橘子','我今晚会迟到'。

我已经检查了分块和句子标记,我认为分块可能是一个起点,但它没有给出一个接近的方法。有人可以给我一些建议吗?非常感谢!

2 个答案:

答案 0 :(得分:0)

根据您的评论,我会将您的问题解释为多标签分类问题,这可能(至少从我过去做过的事情)比首先尝试细分句子更容易。每个句子都可以有多个标签,例如“用户想要水果”和“用户将迟到”。

您可以通过实施One-Vs-Rest classifier来解决这个问题。这将为每个标签训练分类器,但标签不是互斥的。这基本上意味着每个标签都有自己的分类器进行训练,每个标签给出一个句子,将决定其标签是否合适。如果两个标签合适,则分配两个标签。

根据我的经验,如果您使用简单的TFIDF和一些简单的预处理进行矢量化,然后使用一些经典的分类器,如果您有良好的训练数据,您已经可以获得相当好的结果。

答案 1 :(得分:0)

句子分割是我要采取的解决方案,假设您为每个意图分离了训练数据,则可以通过简单地增加每个意图的发音,在合成生成的数据上训练句子分割器(序列标记模型)。

例如,假设我们有4个具有多个训练发音的意图,则可以通过随机选择一个句子编号“ s_num”来生成句子分割器的训练文本,该句子编号表示该训练发音中将包含多少个意图/句子,然后根据该数字随机选择一个“ s_num”个句子并将它们附加在一起,从而为分割器提供训练实例。

标签可能如下:

“这是一个intent1句子,这是一个intent2句子” [“开始”,“ O”,“ O”,“ O”,“ END”,“ O”,“开始”,“ O”,“ O”,“ O”,“ END”]