Skip to main content

@uec_tlに使用するマルコフ連鎖による文章生成とテキスト処理のためのパッケージ

Project description

UECTL

PyPI - Python Version PyPI Version GitHub LICENSE

@uec_tlに使用するマルコフ連鎖モデルとテキスト処理のためのパッケージです.

インストール

uectl本体:

$ pip install uectl

uectl本体+前処理用(MeCabが必要):

$ pip install uectl[preprocessing]

Dockerによる環境構築

マルコフ連鎖で文章を学習させる際, 文章を単語ごとに分ける必要があります. この単語ごとに区切る処理はMeCabというソフトウェアを使います. MeCabを各OSに応じて導入するのは少し面倒なので, Dockerで環境構築できるようにしました. ちなみにMeCabが必要なのは前処理の項だけです. uectl本体だけでも, 前処理済みのサンプルファイルsample_output.txtを使って, モデルの学習と文章生成を行うことができます.

セットアップ(初回時)とコンテナの立ち上げ

$ docker-compose up -d

uec_tl_markovという名前のイメージとuec_tl_markovという名前のコンテナが作成されます.

コンテナに移動

$ docker exec -it uec_tl_markov /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"
root@コンテナID:/home/uec_tl_markov#

前処理

workspaceディレクトリに移動した後, preprocessing.pyを使って, テキストを前処理します.

$ cd workspace

sample_input.txtというサンプルファイルがあるので, それを使って試してみます.

$ cat sample_input.txt
私は電通大が好きです
調布が好きでした
好きな店は食神です
$ python preprocessing.py -i sample_input.txt -o sample_output.txt

前処理の結果はsample_output.txtに保存しました.

$ cat sample_output.txt
私  電通大  好き です 
調布  好き でし  
好き      です 

食 神以外は予想通りに区切れていますね.

モデルの学習

次にsample_output.txtの各行を学習データとして, N階マルコフ連鎖(N=2)のモデルを作成します.

$ python training_model.py -i sample_output.txt -o sample_model.json -s 2

学習したモデルはsample_model.jsonとして保存しました.

文章生成

最後に, 先ほど学習したモデルsample_model.jsonを使って, どのような文章を生成するかを確かめてみます.

$ python testing_model.py -i sample_model.json -c 5
調布が好きでした
好きな店は食神です
調布が好きでした
好きな店は食神です
私は電通大が好きでした

私は電通大が好きでしたという学習データには存在しない文章の生成を確認できました!

UEC18LT会登壇資料

電通大生の呟きを基に電通大生を錬成してみた

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uectl-0.1.2.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

uectl-0.1.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file uectl-0.1.2.tar.gz.

File metadata

  • Download URL: uectl-0.1.2.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.12

File hashes

Hashes for uectl-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a5958792cacc5aad36df29aa189f0d59f5c151f6a71ab41ff1dad71e7c938510
MD5 658c67f18f68839c2ea26909a3233b9a
BLAKE2b-256 26a7263f2b9c44a3a16e4dde7216d95d9f57350946eaf51276b70ba1702e518f

See more details on using hashes here.

File details

Details for the file uectl-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: uectl-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.12

File hashes

Hashes for uectl-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6bb65739b21976f0fb233f28bf58a57bf9ad02035656e0e17e6a5e4f0cb9accf
MD5 145db96cdf2ab8147fbc747fec274d2a
BLAKE2b-256 b209e8af018ab66b93c1d81291f3ec78101c503c4071f8ec1cfdd511db747846

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page