ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
Python
自然言語処理
要約
0
どのような問題がありますか?

本文要約

要約

今回は現在使用している方法とは異なり、実装が簡単な要約方法になります。
参考元にはニューラルネットワーク(accel-brain-base)を使用した例などもありますので、そちらを参考にしてください。

Pythonライブラリの追加

以下のライブラリをインストールしてください。

$ pip install pysummarization

Pythonプログラム

test.pyに以下のコードを記述します。

ここでソース記事の各行を重みづけしてから、重要度の高い5つの行だけを選択します。

test.py
from pysummarization.nlpbase.auto_abstractor import AutoAbstractor
from pysummarization.tokenizabledoc.simple_tokenizer import SimpleTokenizer
from pysummarization.abstractabledoc.top_n_rank_abstractor import TopNRankAbstractor

def getSummary(text):

    # Object of automatic summarization.
    auto_abstractor = AutoAbstractor()
    # Set tokenizer.
    auto_abstractor.tokenizable_doc = SimpleTokenizer()
    # Set delimiter for making a list of sentence.
    auto_abstractor.delimiter_list = [". ",".\n","\n"]
    # Object of abstracting and filtering document.
    abstractable_doc = TopNRankAbstractor()
    # Summarize document.
    result_dict = auto_abstractor.summarize(text, abstractable_doc)

    # Output result.
    out_text = ''

    dic_len = len(result_dict["summarize_result"])
    if dic_len > 5 :
        dic_len = 5
    for i in range(dic_len):
        out_text += result_dict["summarize_result"][i]
    return out_text

以前のgetBody()から上記のgetSummary()を呼び出します。
タイトルや本文に色々ゴミが入ってくるので軽く削除してます。
またブログアップロードする際に改行文字をHTMLの改行タグ(<BR>)に変更しています。

test.py
def getBody(link):
    try :
        res = requests.get(link)
        extractor.analyse(res.text)
        text, title = extractor.as_text()
        title = re.sub('[-|:|\||\[|\(|\{].*','',title)
        text = re.sub('&.*?;','',text)
        text = getSummary(text)
        return postBlog(title,text.replace('\n','<BR>'),'TECHNOLOGY')
    except Exception as e :
        print(e)
        return None

結果はこちら

ちなみに要約前は以下。

次は翻訳に入ります。

参考URL:

以下のURLで上記から作成したブログやYoutubeを公開しています。良かったら見てください。
https://rnk-jp.blogspot.com/
https://www.youtube.com/channel/UCHlLpnqvCqyX82Vlsd0MaxA

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ronk
この記事は以下の記事からリンクされています
ronkBlogger自動投稿からリンク

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure Kubernetes Serviceに関する記事を投稿しよう!
~
0
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
この機能を利用するにはログインする必要があります。ログインするとさらに便利にQiitaを利用できます。
この機能を利用するにはログインする必要があります。ログインするとさらに便利にQiitaを利用できます。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ストックするカテゴリー