0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Python] macにDockerを入れてsumyを試してみた

Last updated at Posted at 2022-06-26

背景

「Pythonでテキストを要約してみたい。」

とういうことで、この記事を参考にPythonのライブラリのsumyを使用してみました。

この記事では、macの中にDockerを入れることからします。
python3.6以降+pipの環境がある場合は、ライブラリのインストールまでスキップできます。

環境

  • MacBook Air (M1)
  • macOS Monterey 12.3
  • Homebrew 3.4.6

Docker Desktopの起動

brew install --cask docker
open /Applications/Docker.app

--caskを付けると、Docker Desktopがインストールされます。

私の環境では、以下のエラーが出ました。

It seems there is already a Binary at '/usr/local/share/zsh/site-functions/_docker'.

原因は、先にDocker CLIがインストールされていたためでした。
以下を参考に修正しました。
参考記事:Dockerのインストールでエラーが出た時の対処

CentOSの起動

docker pull centos
docker run -it centos

OSのバージョンの確認(RedHat系)

cat /etc/redhat-release
# CentOS Linux release 8.4.2105

Pythonの設定

CentOS8には、Python3.6がデフォルトで存在します。
Python3.6以降が存在しない場合は、インストールしてください。
※参考記事内ではPython3.4以前も使えると書いてありますが、GitHubでは3.6以降になっています。

Pythonのパスを通す

ln -s /usr/libexec/platform-python /usr/local/bin/python

pipの設定

デフォルトではpipが存在しないため、pipをインストールします。
pip 22からPython 3.6のサポートは切れたため、pip 21をインストールします。

curl https://bootstrap.pypa.io/pip/3.6/get-pip.py | python

ライブラリのインストール

sumyの実行に必要なライブラリをインストールします。

pip install -U setuptools
pip install sumy numpy tinysegmenter

コード (参考記事を引用)

test.py
from __future__ import absolute_import
from __future__ import division, print_function, unicode_literals

from sumy.parsers.html import HtmlParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lex_rank import LexRankSummarizer as Summarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
 
LANGUAGE = "japanese"
SENTENCES_COUNT = 3
 
if __name__ == "__main__":
    url = "https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%8C"
    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):
        print(sentence)

実行結果

警察犬 の遺留品捜査や 災害救助犬 の被災者探索などでよく知られるように、イヌの感覚のうち最も発達しているのは 嗅覚 であり、においで食べられるものかどうか、目の前にいる動物は敵か味方かなどを判断する。
縄文時代 早期からの遺跡から犬( 縄文犬 )が出土しており、その一部は 埋葬 された状態で発見されているが、多数例は散乱状態で出ており、家族の一員として飼われた犬と、そうでない犬がいたと考えられる。
(イヌの肉は数千年前から食用とされてきた。

まとめ

精度は微妙だが、とりあえず要約することができた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?