自然言語処理の深遠

Deep Dive Into Natural Language Processing

OpenCVでカメラ画像を取得したときの画像が暗かったのを直した話

機械学習で使うためにPythonからOpenCVを使ってカメラ画像を取得していた。 この際、取得した画像が暗くなってしまう問題に悩まされていた。 以下のような感じだ。 f:id:Hironsan:20170608150131p:plain

これではとても使えない。 結局ちょっとしたことで解決したので解決策をコードとともに載せておく。 f:id:Hironsan:20170608150145p:plain

続きを読む

PyEnchant使ってサクッとスペルチェックをする

Pythonで英語のスペルチェックをしようとしていたら、PyEnchantというライブラリを見つけたので紹介。PyEnchantを使うことで、スペルチェックしたりミススペルした単語に対して訂正語を提示したりできる。イメージ的にはGoogleのもしかしてに近いことをできる。

もともとはEnchantというC++で書かれたスペルチェッカーがあるのだが、PyEnchantはそのPythonバインディングという位置づけ。詳しい情報は以下の公式サイトを当たると良い。

PyEnchant a spellchecking library for Python

パッと見た限りでは日本語の情報もなかったので、この記事では簡単な使い方を紹介しておく。

続きを読む

Word Mover's Distance を使って文の距離を計算する

自然言語処理にとって文や文書間の類似度を計算するのは重要なタスクです。 類似文(書)の計算には、盗作の検知、関連記事の検索、質問応答における質問文の多様性の吸収といった様々な応用があります。

文書間の距離を計算する手法として Word Mover’s Distance があります。 Word Mover’s Distance は2015年に提案された手法です。Twitterのようなショートテキストに対して良い結果を示しているのが特徴です。 具体的には Word2vec や GloVe 等で得られた単語の分散表現を使って文書間の距離を計算します。

本記事では、Word Mover’s Distance を試してみることを目的としています。 具体的には gensim という単語の分散表現や類似文書を計算できるPythonライブラリを用いて Word Mover’s Distance を計算します。

なお、Word Mover’s Distance の理論については以下の記事が非常にわかりやすく解説してくださっているのでそちらを参照してください。 yubessy.hatenablog.com

では早速実装してみましょう。

続きを読む