Skip to main content

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

Project description

UECTL

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

ダウンロードとインストール

Python 3.6 が必要です.

uectl本体:

$ git clone https://github.com/A03ki/uec_tl_markov.git
$ cd uec_tl_markov
$ pip installl -e .

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

$ git clone https://github.com/A03ki/uec_tl_markov.git
$ cd uec_tl_markov
$ pip installl -e ".[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.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

uectl-0.1.1-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: uectl-0.1.1.tar.gz
  • Upload date:
  • Size: 7.3 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.48.2 CPython/3.6.12

File hashes

Hashes for uectl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4fb5b474b3e66f1ffe868d4160bafc583f63be050c8f5df7292c936e1a5b89de
MD5 9907c34753b8c7cf7f1e69bc999717dd
BLAKE2b-256 e6bb508f0a8fb2322da87df4e7454f6a533fdc253128257ed59f0fc260a6ff1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: uectl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.8 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.48.2 CPython/3.6.12

File hashes

Hashes for uectl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f4f668740c9dc3ad4584f0d98acb6a69d0aca7eb01c7dcb72f0c353cf34ca7f7
MD5 b9f970d6559cd42600bb1053c2bbb9bf
BLAKE2b-256 2d47e308d6551744c2c93e35ad05c9608078eb3959be05a6d9f9741db6b6cf24

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