fastTextとjanomeで問い合わせのカテゴリ分けを自動化する(Windows向け)
とあるパッケージの保守を10年ほどしていて、問い合わせを全てRedmine のチケットで管理していた。 カスタムフィールドにどの機能の話なのかカテゴリを用意して、チケット作成時に保守担当者に選択してもらっていた。ただ、後から分析しようと思ってカテゴリを見てみると、結構担当者によってまちまちというか、間違っていることも多かった。 これまでは分析のときにそれぞれ直していたが、どうにかチケット作成時に正しいカテゴリを選択してもらえないかと思い、fastText で自動化することにした。 fastText の導入環境 fastText とは、Facebook が作成した自然言語処理のライブラリだ。高速かつ簡単に利用できる。 今回は、これまでRedmine に蓄積した約2000の問い合わせを教師データに、問い合わせの内容から対象カテゴリを分類するようにした。 環境、ライブラリは以下の通り。 Windows10 PyCharm fastText janome 日本語をfastTextで処理する場合は、事前に分かち書きという処理をする必要がある。分かち書きにはMeCab というライブラリを使う情報が多いが、この自動化をした当時はpip install で ERROR: Command errored out with exit status 1: のエラーが出て解消するのが面倒だったので、簡単に入れられるjanome を採用した。 (※現在はmecab もpip install で簡単に入れられる様子) 事前準備 まずはfastText とjanome を導入する。 PyCharm でプロジェクトを作成し、View - Tool Windows - Terminal で以下を実行。 git clone https://github.com/facebookresearch/fastText.git cd fastText pip install . pip install janome モデルの作成 まずはRedmine からチケットをCSV エクスポートする。そしてカテゴリと問い合わせの題名+本文だけに加工する。こんなイメージだ...