我想开发一个总结用户输入文本的 Android 应用程序(可能是一篇新闻文章)

Posted

技术标签:

【中文标题】我想开发一个总结用户输入文本的 Android 应用程序(可能是一篇新闻文章)【英文标题】:I want to Develop an Android app that summarizes a user-entered text (could be a news article) 【发布时间】:2021-07-17 04:30:30 【问题描述】:

我搜索了提取和抽象摘要方法。由于抽象摘要的许多缺点,我想进行推理摘要。我希望能够使用监督学习方法进行推理摘要。在我对提取摘要的研究中,我一直碰到TextRank算法,但这是一种无监督学习方法。我希望能够使用监督学习方法来总结推理。可能吗?我可以在包含 15000 个数据的数据集上运行 TextRank(例如)吗?

下面给出的代码不应考虑在内。无关代码共享问题。

word_embeddings = 
f = open('/content/drive/MyDrive/MetinAnalizi/glove.6B.100d.txt', encoding='utf-8')
for line in f:
    values = line.split()
    word = values[0]
    coefs = np.asarray(values[1:], dtype='float32')
    word_embeddings[word] = coefs
f.close()
sim_mat = np.zeros([len(sentences), len(sentences)])
from sklearn.metrics.pairwise import cosine_similarity
for i in range(len(sentences)):
  for j in range(len(sentences)):
    if i != j:
      sim_mat[i][j] = cosine_similarity(sentence_vectors[i].reshape(1,100), sentence_vectors[j].reshape(1,100))[0,0]

【问题讨论】:

我可能不明白这个问题。这是关于运行 TextRank 的方法,还是关于寻找基于监督学习方法的替代方法?有一些 Python 库实现了 TextRank,它提供了提取摘要功能,例如 derwen.ai/docs/ptr/sample/#extractive-summarization 其实我想说的是:我会开发一个可以总结文字的手机应用。例如,它将是一个可以总结新闻文章的应用程序。为此,使用 TextRank 算法或监督学习方法创建模型是否更有意义?据我所知,TextRank 算法是一种无监督学习方法,用于提取摘要。是否可以使用人工神经网络模型(监督学习)进行推理总结?还是这些模型仅用于抽象摘要? @Paco 【参考方案1】:

文本摘要方法种类繁多,自 2017 年底以来,深度学习在 NLP(又名语言模型、转换器等)中的使用带来了许多进步。

这里的一些权衡取决于质量与成本。例如,将 extractive summarization 与 TextRank 结合使用的成本相对较低,并且不需要经过训练的模型。 OTOH,对 DL 模型使用 抽象摘要 方法往往会更昂贵,但也会产生更好的结果。

就PyTextRank 而言,我们实现了不同的算法变体,根据预期的用例产生不同类型的提取摘要。新闻文章摘要可能更喜欢使用 PositionRank,而研究文章摘要可能更喜欢使用 Biased TextRank。这是由于可能会强调的短语类型,具体取决于这些领域中遇到的典型写作风格和结构。

我的建议是尝试一下,看看哪种方法最适合您的需求?如果您有很多文章要总结并希望保持较低的预算,那么 TextRank 可能会很好用。如果您需要更好地显示摘要中的文本,则可能需要抽象摘要。

【讨论】:

你的回答对我很有启发性。正如您所说,通过反复试验,我可以使用 TextRank 和深度学习方法找到更好的结果。非常感谢。@Paco

以上是关于我想开发一个总结用户输入文本的 Android 应用程序(可能是一篇新闻文章)的主要内容,如果未能解决你的问题,请参考以下文章

简单的密码保护您的 android 应用程序

具有多行输入字段的 UITableViewCell?

Android TextView中的下划线和更改文本颜色[重复]

如何从图像 Android 应用程序中提取文本

从android中的对话框更改TextView文本

jQuery专注于数组模糊