LoginSignup
4
1

More than 3 years have passed since last update.

テキスト正規化用PythonライブラリをMATLABからコール

Last updated at Posted at 2020-04-18

はじめに

テキスト解析をする上で、他言語で書かれた既存のテキスト解析関数を使いたいケースがあるのでやってみました。
neologdnというPythonベースの文書初期化ツールをMATLABから呼んでみます。筆者はPython初心者なので色々間違っていたらすみません。

環境

MATLAB R2020a
Python 3.6

手順

「Python ライブラリ関数の呼び出し」という公式ページがあるのでこちらを参考に準備をします。MATLABとPythonの両環境が必要になってくるわけですが、一言にPythonと言っても、MATLABからの呼び出しにサポートしているものがあり、そちらの方が簡単そうなので公式ページの通りにインストールしました。

試しにMATLAB側で下記を入力します。

MATLAB
py.os.listdir('.')

すると、Python側のos.listdirを使ってファイルの一覧を表示することができました。

次に、neologdnという、日本語を正規化してくれるツールを使用する準備をします。

neologdn is a Japanese text normalizer for mecab-neologd. The normalization is based on the neologd's rules: https://github.com/neologd/mecab-ipadic-neologd/wiki/Regexp.ja

neologdをインストールします。

コマンドプロンプト
py -m pip install neologdn

これで準備完了です。

neologdのreadmeにある例文をMATLABで実行してみましょう。

MATLAB
>> py.neologdn.normalize("ハンカクカナ")

ans = 

  Python str にはプロパティがありません。

    ハンカクカナ

>> py.neologdn.normalize("全角記号!?@#")

ans = 

  Python str にはプロパティがありません。

    全角記号!?@#

>> py.neologdn.normalize("全角記号例外「・」")

ans = 

  Python str にはプロパティがありません。

    全角記号例外「・」

>> py.neologdn.normalize("長音短縮ウェーーーーイ")

ans = 

  Python str にはプロパティがありません。

    長音短縮ウェーイ

>> py.neologdn.normalize("チルダ削除ウェ~∼∾〜〰~イ")

ans = 

  Python str にはプロパティがありません。

    チルダ削除ウェイ

>> py.neologdn.normalize("いろんなハイフン˗֊‐‑‒–⁃⁻₋−")

ans = 

  Python str にはプロパティがありません。

    いろんなハイフン-

>> py.neologdn.normalize("   PRML  副 読 本   ")

ans = 

  Python str にはプロパティがありません。

    PRML副読本

>> py.neologdn.normalize(" Natural Language Processing ")

ans = 

  Python str にはプロパティがありません。

    Natural Language Processing

>> py.neologdn.normalize("かわいいいいいいいいい", pyargs('repeat',6))

ans = 

  Python str にはプロパティがありません。

    かわいいいいいい

>> py.neologdn.normalize("無駄無駄無駄無駄ァ", pyargs('repeat',1))

ans = 

  Python str にはプロパティがありません。

    無駄ァ

>> 

readmeの通りに処理できていますね。
ちなみに結果はstr型で返ってくるようです。
image.png

Text Analytics Toolboxでトークンに分ける前に、こんな感じでノーマライズできると便利そうですね。

4
1
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
4
1