首页 > 解决方案 > 自动摘要仅返回第一句 - Python / Flask

问题描述

尝试创建一个使用多种算法自动总结文章的网站。遇到仅从选择中提取第一句话的问题,感谢您提供任何帮助。

我正在使用作为摘要库的库 sumy,并使用烧瓶和 HTML/CSS 从算法中输出自动摘要。除了 LSA,唯一的输出是第一句话,让我相信这与我的“para”变量有关。我创建它是因为它附加了字符串以创建完整的段落,但我确信有一种更简单的方法可以做到这一点。

   @app.route('/dependent', methods = ['POST'])
def mySumD():
if request.form['action'] == 'LSA':
    para = ""
    url = request.form['url_link']
    parser = HtmlParser.from_url(url, Tokenizer(LANGUAGE))
    stemmer = Stemmer(LANGUAGE)
    summarizer = Summarizer(stemmer)
    summarizer.stop_words = get_stop_words(LANGUAGE)

    for sentence in summarizer(parser.document, SENTENCES_COUNT):
        data = str(sentence)
        para += data 
    return render_template('dependent.html', para = para)

elif request.form['action'] == 'Luhn':
    para = ""
    url = request.form['url_link']
    parser = HtmlParser.from_url(url, Tokenizer(LANGUAGE))
    stemmer = Stemmer(LANGUAGE)
    summarizer = LuhnSummarizer(stemmer)
    summarizer.stop_words = get_stop_words(LANGUAGE)

    for sentence in summarizer(parser.document, SENTENCES_COUNT):
        data = str(sentence)
        para += data 
        return render_template('dependent.html', para = para)

elif request.form['action'] == 'LexRank':
    para = ""
    url = request.form['url_link']
    parser = HtmlParser.from_url(url, Tokenizer(LANGUAGE))
    stemmer = Stemmer(LANGUAGE)
    summarizer = LexSummarizer(stemmer)
    summarizer.stop_words = get_stop_words(LANGUAGE)

    for sentence in summarizer(parser.document, SENTENCES_COUNT):
        data = str(sentence)
        para += data 
        return render_template('dependent.html', para = para)

<form action = "{{ url_for('mySumD') }}" method = "POST" id="urlForm" class="standard">

 <input type="url" id = "url" name="url_link" class= "form-control" placeholder="Insert URL here...">
        <div id="url_field_is_empty" class="error" style="display: none"> You must submit a valid URL</div>
  <h1>Choose Your Summarization Method</h1>
  <div class="btn-group" style="width:100%" id="subscribersoptions">
     <button style="width:20%" type ="submit" name="action" value="LSA">LSA</button>
     <button style="width:20%" type ="submit" name="action" value="Luhn">Luhn</button>
     <button style="width:20%" type ="submit" name="action" value="LexRank">Lex Rank</button>
     <button style="width:20%" type ="submit" name="action" value="TextRank">Text Rank</button>
     <button style="width:20%" type ="submit" name="action" value="SumBasic">SumBasic</button>
     <button style="width:20%" type ="submit" name="action" value="KL-Sum">KL-Sum</button>
  </div>    
  <br>
  {{para}}

</form>

标签: pythonpython-3.xnumpyflasknltk

解决方案


推荐阅读