提取文本摘要,作为使用深度网络的分类问题

数据挖掘 深度学习 nlp 支持向量机 自动总结
2022-02-25 20:01:59

我知道这很广泛,但我只需要一些指示。

我希望实现一个文本摘要系统。我已经尝试过一种抽象方法,现在我正在尝试一种提取方法。当前的提取方法(Textrank、Lexrank 等)并未提供最佳性能。有人建议我将其视为一项无监督学习任务,使用自动编码器/RBM 或 K 均值或任何其他无监督学习算法将句子分类为重要或不重要。

我的问题是:

  1. 这样的事情可行吗?(我知道除非经过尝试,否则在数据科学中没有什么可以肯定地说,但值得一试吗?)
  2. 我应该将什么样的特征输入分类器?我已经知道词频分布(TF-IDF)、句子位置、共现统计,但是这些就足够了吗?我应该考虑哪些附加功能?还是我应该考虑直接输入词向量?

我在这方面做了一些工作并阅读了几篇论文,但没有一篇在特征计算方面提供清晰的说明,而只是解释了网络架构。

任何形式的帮助将不胜感激,谢谢!

2个回答

TL;博士:

这样的事情可行吗?(我知道除非经过尝试,否则在数据科学中没有什么可以肯定地说,但值得一试吗?)

是的

我应该将什么样的特征输入分类器?我已经知道词频分布(TF-IDF)、句子位置、共现统计,但是这些就足够了吗?我应该考虑哪些附加功能?还是我应该考虑直接输入词向量?

输入词向量。深度学习可以找出好的特征,如 tf-idf、共现等。

更长的版本:

输入:

使用 Word2Vec 或 Glove 等词嵌入算法将所有词转换为词向量。这通常是一个好主意,因为这允许您以更好的语义(狗、猫、牛等将接近)和句法(11 月、12 月等将接近)意义来表示单词。

(使用 tf-idf 作为特征对我不起作用。我用它来监督神经网络的提取摘要。)

如何管理输入:

这在很大程度上取决于您的数据如何。(请让我知道哪个数据集)我假设您有类似 [sentence1, sentence2,...] 作为输入和类似 [True, False, ...] 的输出,这意味着 send1 在摘要中,而 sent2 不在.

如果你的数据不是这种形式,你应该把它转换成这种形式。

您尚未指定它是不受监督的还是受监督的。

对于监督:

使用 LSTM。逐字向 LSTM 输入句子。一旦句子结束(用记号 say 或句号标记),LSTM 就会预测句子是否应该在摘要中。在此基础上进行训练。

这有点类似于您进行情绪分析的方式:输入句子,然后询问情绪是积极的还是消极的。

您可以尝试堆叠 LSTM 或更改超参数以获得更好的结果。

对于无人监督:

这有点困难。您可以将句子转换为向量(Sent2Vec)并希望重要的句子聚集在一起,因为它们包含重要的单词。

或者你可以训练一个 RNN 来预测下一个字符,并希望其中一个神经元学会预测重要的单词/句子,就像OpenAI 的无监督情绪神经元学习预测情绪一样。

这些天遵循的一般“深度”架构是:嵌入、编码、参与、预测

查看我发布的链接(蓝色),它们可能对您有用。

注意:如果可能,请提及您的数据集以及您如何设法进行抽象摘要(考虑到它比提取要难得多)

我尝试过 markovify,python 中的一个马尔科夫链库,用于文本文档的自动文本摘要。您可以通过一种简单的无监督方法来检查它。对我来说,它没有给出令人满意的结果,因为我使用医学期刊的摘要作为我的数据集,但如果你尝试在不同的主题数据集上使用它,它可能会对你有所帮助。