読者です 読者をやめる 読者になる 読者になる

中国語を単語分割

中国語を単語に分割したい。Segmentater? Tokenizer? 形態素解析

Chinese Text Analyser

webサービスの。β版だけど。

ライブラリ的なやつだと、それなりにありそうだけど、使いたいだけならハードル高いかも。

Is there any good open-source or freely available Chinese segmentation algorithm available? - Stack Overflow

GitHub - fxsjy/jieba: 结巴中文分词

↑これが比較的手軽に扱えそう。

実行例:

pip install jieba
python
>>> import jieba
>>> seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
>>> print("Full Mode: " + "/ ".join(seg_list))  # 全模式
Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
>>> seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
>>> print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
Default Mode: 我/ 来到/ 北京/ 清华大学

Cheat Sheetとかさくっと見たい

Cheat Sheet、画面上でサクッとみれたり、作れたらいいと思い、ググった。PDFとか、画像とかだとちょっとアレなので。

Build Cheat Sheets and Share Your Favourites! - Cheatography.com: Cheat Sheets For Every Occasion

↑Cheat Sheet作れたり、他人が作ったのを見れるっぽいWebサービス。 画面左において、縦長でみたいんだけど、なんか横長のが多い?

Cheat Sheet Generator

↑Cheat Sheet作れるっぽいWebサービス。 UI、機能的に微妙だが、一応HTMLとかに書き出せる?

Dash for macOS - API Documentation Browser, Snippet Manager - Kapeli

Macでローカルで動くアプリケーション、各種ドキュメント類のブラウザ、スニペット管理ツール。 CheetSheetをみたり、作ったりもできる。 ただ、開発者がAppleともめたようで、MacAppストアから削除されて、独自配布とかで、心情面で積極的には利用しづらい。 でも、アプリケーション自体は便利っぽい。 iOS版は自分でソースダウンロードしてインストールとかひどいことになってる。

Zeal - Offline Documentation Browser

↑DashにインスパイアされたWindowsLinux用アプリケーション。Macでビルドにチャレンジしたページもあったが、それは色々大変らしい。

Velocity - The Documentation and Docset Viewer for Windows

↑DashにインスパイアされたWindows用アプリケーション。 Macでは動かんからなあ。

DevDocs API Documentation

↑各種ドキュメントのオンラインビューワ。 よさげだけど、Cheat Sheetはみれたり、作れないかな。

機械学習とかAIとかボットとか

気になったページとかをメモ。

Deep LearningとConvolutional Neural Network - Stimulator

ディーブラーニングとかの解説、比較的とっつきやすかった。

25 Chatbot Startups You Should Know – VentureRadar

チャットボットのスタートアップの紹介。いかにして販売等のサポートをするかみたいなのが多い感じ。

What is the best way to learn and write a AI Chat bot? - Quora

AIチャットボット作りたいんだけど何やったらいいの?てきな質問。

【ディープラーニング】10時間でChainerの基本を身につける - あれもPython,これもPython

Chainerでディープラーニングの学習。

深層学習フレームワーク Chainer の開発と今後の展開

Chainerの解説。

対話型AIについて | SENAN

対話型AIについての調査記事。

学習対話エージェント

「対話事例から対話モデルを学習することで,対話ベースで観光案内を行うエージェントを構築する」研究。

Chainerで学習した対話用のボットをSlackで使用+Twitterから学習データを取得してファインチューニング - Qiita

やってみた的なやつ。

An awesomely weird conversation between two AI Cleverbots - Shareables

ボット同士の会話。

Building an IBM Watson powered AI Chatbot

Watsonでチャットボット。

MicrosoftのLUIS

MicrosoftのLUISってどんなことができるのか?

Microsoft Cognitive Services - Documentation


Overview

LUISは機械学習のパワーをアプリケーションにもたらす

LUISはデザインされている、簡便にHTTPエンドポイントをデプロイするのに、エンドポイントは自分が送ったセンテンスを受け取って、意図するところと存在するkeyエンティティーで解釈しする。LUISWebインターフェースを使って、インテンションとエンティティーのセットのデザインを、アプレケーションに沿うようにカスタムして、LUISに言語理解システムを構築するプロセスをガイドさせることができる。

LUISを使う利点

人間とコンピュータのインタラクションで難点になるのは、人が何を欲するか理解し、意図に関連した情報の断片を見つけるコンピュータの能力である。たとえば、〜

一度アプリケーションをデプロイしてトラフィックがスタートすると、LUISはアクティブラーニングを使用して、自分を改善する。アクティブラーニングの過程で、LUISは関係が不確かなインタラクションを特定して、インテントとエンティティーに沿ってラベル付けするように求める。・・・


タイポグラフィーについて

最近はwebでのタイポグラフィーに関しても、意識されるのがあたりまえのようだ。

タイポグラフィーに関して、なんとなくのメモ。

  1. 文字組版としてのタイポグラフィーと図像的な表現としてのタイポグラフィー。
  2. デジタル表現においては、近年までタイプフェイスの再現技術の問題もあり、文字組版としてのタイポグラフィーは品質を追求できない傾向にあったかと思う。
  3. スペースとコンテンツのバランス、相互関係、相互作用、構成。
  4. 文章の内容にふさわしい表現としてのタイプフェイスの選択、タイポグラフィー。理解の邪魔にならない方向と、味付けの方向。
  5. タイポグラフィーに限らず、手をかけられなかった部分から、水は漏れる(品質が落ち、信頼性は低くなる)。

SQLAlchemyの学習

SQLAlchemy関連の学習

公式のサイト:

create_engine()の引数

  1. SQLite3の使用

sql関係ないけど、

クラスの文字列への変換の時に呼び出されるやーつ

object.__repr__(self)

JavaScriptにとかCSSを利用した表現の可能性

オブジェクト指向とか。

オブジェクト指向 JavaScript 入門 - JavaScript | MDN

これ面白そう。cssのnthの拡張?

nth-everything css

A Call for ::nth-everything | CSS-Tricks

Lettering.jsとかあるのか。

Lettering.js - A jQuery plugin for radical web typography.

FlaskのアプリをuWSGI+Nginxで動かす(Cent OS 6.8)

試した手順。

Flask + uWSGI + Nginx でハローワールドするまで @ さくらのVPS (CentOS 6.6) - Qiita

一応動いた。 ただ、これはforegroundで動かすまでの解説。 backgroundで動かすか自動起動とかになると別途情報が必要。

ここまでで、一応FlaskアプリケーションをNginx経由で動かすことはできた。あとは、起動時に自動実行されるよう設定するなどすればOKだろう(そのためには/etc/rc.localをいじればいい)。

Flask公式の奴

uWSGI — Flask Documentation (0.11)

以下、ちょい訳


uWSGIはプロトコルでもアプリケーションサーバでもある。

uWSGI is both a protocol and an application server

もっとも一般的なuWSGIサーバはuwsgi。ややこしいな。

The most popular uWSGI server is uwsgi,

以下略


uWSGIの公式?

Managing the uWSGI server — uWSGI 2.0 documentation

以下、ちょい訳。


uWSGIを起動するのはシスアドの役目、webサーバみたいに。webサーバにやらせる仕事じゃない、とはいえ自分のアプリのアーキテクチャにフィットするならできるけど。

一番いいのはOSの起動時にuWSGIサービス起動するやりかた。

ダンなOSなら下記のやつが有効。「クラシック」なOSならinit.d/rc.dスクリプトとかSupervisor、Daemontoolsかinetd/xinetdが使える。

System Method
Ubuntu Running uWSGI via Upstart (the official uwsgi package, available since Ubuntu 12.04 provides an init.d based solution. Read the README.)
Debian Systemd
Arch Linux Systemd
Fedora Systemd
OSX launchd
Solaris SMF

uWSGIを制御するシグナル

uWSGIにsafe-pidfile optionをつければmaster process PIDをファイルに書かせることができる。

uWSGIが応じるシグナルは下記の通り。

Signal Description Convenience command
SIGHUP gracefully reload all the workers and the master process --reload
SIGTERM brutally reload all the workers and the master process (use --die-on-term to respect the convention of shutting down the instance)
SIGINT immediately kill the entire uWSGI stack --stop
SIGQUIT immediately kill the entire uWSGI stack
SIGUSR1 print statistics
SIGUSR2 print worker status or wakeup the spooler
SIGURG restore a snapshot
SIGTSTP pause/suspend/resume an instance
SIGWINCH wakeup a worker blocked in a syscall (internal use)
SIGFPE generate C traceback
SIGSEGV generate C traceback

インスタンスを管理するにはシグナルよりも良い方法があって、例えばmaster-fifoみたいなやり方がしっかりとしたやり方。

サーバのリロード

以下略


上記の記述だと、素直に読めばUbuntu以外のLinuxは「Systemd」使えば良いように読める。

で、下記のページ読むと、

Systemd — uWSGI 2.0 documentation

uWSGI is a new-style daemon for systemd.

とか

Adding the Emperor to systemd

とか言ってる。強そう。

Emperorに関しては下記のページ。

The uWSGI Emperor – multi-app deployment — uWSGI 2.0 documentation

Master FIFOに関しては下記のページ。

The Master FIFO — uWSGI 2.0 documentation

リロードに関しては下記のページ。

The Art of Graceful Reloading — uWSGI 2.0 documentation

シグナルの送信に関しては下記のページ。

CodeZine(コードジン)

Man page of SIGNAL

しかしCentOS6.8はモダンではない模様。Emperorは使えるかな?

保存版 CentOS 7とCentOS 6との違いまとめ | urashita.com

CentOS6(CentOS5)と7の差分対応 (SystemVinit/Upstart/systemd) - Opensourcetechブログ(ZeusITCamp裏BLOG)

RHEL6→RHEL7で変更された主要コマンドまとめ — | サイオスOSS | サイオステクノロジー

CentOS6, CentOS7 システムコマンド対応表

第1回 CentOS7の変更点について(CentOS6.6との違い) | Nedia What's up!

ではinit.d/rc.dスクリプトか、Supervisor、Daemontoolsかinetd/xinetdを使うと。

Windowsユーザーに教えるLinuxの常識(最終回):Linux起動の仕組みを理解しよう[rcスクリプト編] - @IT

[ThinkIT] 第4回:システム起動スクリプトとランレベルの比較 (1/3)

linux起動時に自動的に実行するコマンド(プログラム)の設定 - Qiita

とりあえず、バックグラウンド動かすには--daemonizeオプションを付けてログファイルの保存場所を指定すれば良い模様。

便利で超強力なWSGIサーバー uWSGI を使ってみよう - 檜山正幸のキマイラ飼育記

とりあえず、ここで保留。


その他参考ページ:

CentOS6.5でPython3.4+Nginx+uWSGIでバーチャルホスト運用 - Life is Really Short, Have Your Life!!

How to Deploy Python WSGI Applications Using uWSGI Web Server with Nginx | DigitalOcean

uWSGI で Django を使う方法 — Django 1.4 documentation

[Python]Flaskアプリをnginx + uWSGIでさくらVPSにデプロイする - Unresolved

uWSGI — flask-docs-ja 0.10-dev documentation

Apacheにかわるwebサーバ: uWSGIパフォーマンスチューニング - Qiita

ちゃんと運用するときのuWSGI設定メモ - Qiita

Ubuntu 12.04でpyenvを利用して速攻でPython3.4 + Nginx + uWSGI + FlaskなWebアプリケーション実行環境を作る - Qiita

nginx コマンド超シンプル早見表 - Qiita

nginxとuwsgiの連携方法 - Qiita

nginxをCentOS6にインストール

下記ページ参照

Install | NGINX

vimかなんかで下記のファイル作成。

vim -p /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

$releaseverは5とか6とか7とかCentOSのバージョン入れる。

yum install nginx

入門 自然言語処理

「入門 自然言語処理」関連のページ

原著の1版

NLTK Book

原著のPython3対応の奴

NLTK Book

原著のerrata

Confirmed Errata | O'Reilly Media Natural Language Processing with Python

Unconfirmed Errata | O'Reilly Media Natural Language Processing with Python

日本語版の日本語に関する12章

Python による日本語自然言語処理

Python による日本語自然言語処理 http://www.nltk.org/book-jp/ch12.html#id36

12.2.2 文字単位分かち書きを使う なお、TinySegmenter in Python の最新版は https://code.google.com/p/mhagiwara/source/browse/trunk/nltk/jpbook/jptokenizer.py から入手することができる。

上記URLからのダウンロードはできなくなった模様。下記URLに移動?

nltk/jptokenizer.py at master · mhagiwara/nltk https://github.com/mhagiwara/nltk/blob/master/jpbook/jptokenizer.py


続きを読む