我想开发一个总结用户输入文本的 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 应用程序(可能是一篇新闻文章)的主要内容,如果未能解决你的问题,请参考以下文章