将段落分为具有有意义的子段落

问题描述 投票:0回答:1

[通常,一个段落包含许多子段落,每个子段落都具有一定的含义。在NLP中,如何将段落拆分为具有含义的子段落,换句话说,我想检测子段落之间的边界

nlp topic-modeling boundary
1个回答
0
投票

您要说明的问题很有趣,但是定义不正确,因为“含义”本身的定义不明确,而且我们实际上不知道如何区分段落和不良段落。

但是,我们可以这样简化问题:如果它们的topic类似,即它们是相同或相似的对象,或者包含其他相似的词或短语,我们希望将相邻的句子组合在一起。因此我们可以正式描述我们的算法:

  1. 将段落分成句子。
  2. 将每个句子表示为某种形式上的对象(例如,来自w2v,fasttext,ELMO或BERT的一袋单词或一词嵌入单词包,或来自诸如USE之类的某些神经网络的句子)。
  3. 计算每对句子之间的距离(例如,句子嵌入之间的余弦距离或单词计数,或词嵌入之间的动词距离)。
  4. 对此距离矩阵运行聚集聚类算法,但有一个附加限制:只能将相邻的聚类合并在一起。
  5. 尝试使用不同的停止标准(通常是阈值)在不同的段落上进行聚类,并选择产生最有意义的分区的阈值。

如果该算法看起来像您想要的,我可以在Python中提供其基线实现。

© www.soinside.com 2019 - 2024. All rights reserved.