目的
勉強で参考にしたページの要約をしたい。
参考URL
と、思っていたら以下のAPIがあった。試してみる!
自動要約APIを作ったので公開します | リクルートテクノロジーズ メンバーズブログ
GitHub - recruit-tech/summpy
環境構築
1. pythonをv2.7にする
2. pipで以下パッケージをインストール
numpy
scipy
scikit-learn
networkx
cherrypy
janome
pulp
※Mecabはpipでエラーが出たため、janome選択
要約対象の文章
ジダン、ネイマール獲得の噂に「知らない」。だがC・ロナウドとは「共存できる」(フットボールチャンネル) - Yahoo!ニュース
この記事を読み込ませる。
Webリクエスト実行
$ python -m summpy.server -h 127.0.0.1 -p 8080
ソース
# -*- coding: utf-8 -*- import requests params = dict() params['sent_limit'] = 1 #params['char_limit'] = 15 params['text'] = "レアル・マドリーのジネディーヌ・ジダン監督は、パリ・サンジェルマンのブラジル代表FWネイマールの獲得が噂される件について、交渉が行われているかどうかは知らないと主張している。" params['text'] += "11日の会見でのコメントをスペイン紙マルカなどが伝えた。" params['text'] += "ネイマールのマドリー移籍に向けた報道は、ここ数日再び勢いを増している。" #params['text'] += "負傷の療養のためブラジルに帰国していたネイマールにマドリー関係者が接触していたとの話や、ネイマールの父親が水面下で仲介役と接触したとの話もある。" #params['text'] += "会見でネイマール獲得の噂について質問を受けたジダン監督は、「私は何も言う立場にはない」と返答。" #params['text'] += "「交渉が行われているのかどうかは知らないし、私からは要請していない。" #params['text'] += "良い形でシーズンを終えることに集中したい。その後のことはそれからだ」と語った。" #params['text'] += "だが、もしネイマールが加入したとすれば、エースのFWクリスティアーノ・ロナウドと共存することは可能だという考えも述べている。" #params['text'] += "「良い選手たちはいつも共存可能なものだ。私もジョルカエフと共存できないと言われていた。ピッチ外ではどうだか分からないが、ピッチ上では融合できる」と自身の現役時代を引き合いに出した。" #params['text'] += "チームはチャンピオンズリーグ決勝を2週間後に控えているが、ネイマール加入の噂が影響することはないと主張。" #params['text'] += "「そういう移籍の話がいつもあることは選手たちも分かっている。我々は決勝だけに集中している。ネイマールの話に乱されることはない」と語った。" #print(params['text']) url = 'http://127.0.0.1:8080/summarize' r = requests.get(url, params=params) print(r.content)
実行結果
{ "debug_info": {}, "summary": [ "レアル・マドリーのジネディーヌ・ジダン監督は、パリ・サンジェルマンのブラジル代表FWネイマールの獲得が噂される件について、交渉が行われているかどうかは知らないと主張している。" ] }
む〜1行目がそのままでただけ。
使い方がわからない。。。。。4行目を追加するとエラーになる。
{ "error": "add_edge() takes exactly 3 arguments (4 given)" }
Python API
ソース
# -*- coding: utf-8 -*- from summpy.lexrank import summarize text = 'レアル・マドリーのジネディーヌ・ジダン監督は、パリ・サンジェルマンのブラジル代表FWネイマールの獲得が噂される件について、交渉が行われているかどうかは知らないと主張している。' text += '11日の会見でのコメントをスペイン紙マルカなどが伝えた。' #text += 'ネイマールのマドリー移籍に向けた報道は、ここ数日再び勢いを増している。' #text += "負傷の療養のためブラジルに帰国していたネイマールにマドリー関係者が接触していたとの話や、ネイマールの父親が水面下で仲介役と接触したとの話もある。" #text += "会見でネイマール獲得の噂について質問を受けたジダン監督は、「私は何も言う立場にはない」と返答。" #text += "「交渉が行われているのかどうかは知らないし、私からは要請していない。" #text += "良い形でシーズンを終えることに集中したい。その後のことはそれからだ」と語った。" #text += "だが、もしネイマールが加入したとすれば、エースのFWクリスティアーノ・ロナウドと共存することは可能だという考えも述べている。" #text += "「良い選手たちはいつも共存可能なものだ。私もジョルカエフと共存できないと言われていた。ピッチ外ではどうだか分からないが、ピッチ上では融合できる」と自身の現役時代を引き合いに出した。" #text += "チームはチャンピオンズリーグ決勝を2週間後に控えているが、ネイマール加入の噂が影響することはないと主張。" #text += "「そういう移籍の話がいつもあることは選手たちも分かっている。我々は決勝だけに集中している。ネイマールの話に乱されることはない」と語った。" text = unicode(text, encoding='utf-8') # ensure type(text) is unicode sentences, debug_info = summarize( text, sent_limit=5, continuous=True, debug=True ) for sent in sentences: print sent.strip().encode('utf-8')# -*- coding: utf-8 -*-
実行結果
レアル・マドリーのジネディーヌ・ジダン監督は、パリ・サンジェルマンのブラジル代表FWネイマールの獲得が噂される件について、交渉が行われているかどうかは知らないと主張している。 11日の会見でのコメントをスペイン紙マルカなどが伝えた。
む〜よくわからない。使い方が間違ってるのだろう。。。