[Python3] fastTextでカテゴリ別に分類したい

単語のベクトル化と文章分類は、fastTextのライブラリで実装する。

$ cat /etc/redhat-release
CentOS Linux release 8.3.2011

### fastTextの利用方法
Word representation learning(単語表現学習), Text classification(文章分類)

1.Word representation learning
-> 似ている単語の学習

2.Text classification
-> 分類された文章の学習

どちらも分かち書きした文章が必要になる。
固有表現に強い辞書「mecab-ipadic-NEologd」をインストールする

$ cd /usr/local/src
$ sudo git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -y

### fastText install
$ cd /usr/local/src
$ sudo git clone https://github.com/facebookresearch/fastText.git
$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText

$ sudo mkdir build && cd build && sudo cmake ..
$ sudo make && sudo make install
$ which fasttext
/usr/local/bin/fasttext

$ cd /usr/local/src/fastText
$ sudo pip3 install .

$ wget https://github.com/livedoor/datasets/archive/master.zip
$ ls
$ unzip master.zip
$ cd datasets-master/
$ gzip -d ldgourmet.tar.gz
$ tar xvf ldgourmet.tar
$ ls
README.md categories.csv prefs.csv ratings.csv stations.csv
areas.csv ldgourmet.tar rating_votes.csv restaurants.csv

### 前処理 & データセットの作成
app.py

import csv
import MeCab
import neologdn
import re
import emoji

mecab = MeCab.Tagger('-Owakati -d /usr/lib64/mecab/dic/mecab-ipadic-neologd/')

with open('rating.csv') as f:
	reader = csv.reader(f)
	next(reader)
	for row in reader:
		label = "__label__{0}".format(row[3])

		text1 = neologdn.normalize(row[9])
		text2 = re.sub(r'https?://[\w/:%#\$&\?\(\)~\.=\+\-]+','', text1)
		text3 = ''.join(['' if c in emoji.UNICODE_EMOJI else c for c in text2])
		tmp = re.sub(r'(\d)([,.])(\d+)', r'\1\3', text3)
		text4 = re.sub(r'\d+', '0', tmp)

		tmp = re.sub(r'[!-/:-@[-`{-~]', r' ', text4)
		text5 = re.sub(u'[■-♯]', '	', tmp)

		text = mecab.parse(text5).rstrip('\n')
		print(label + " , " + text)

なんやこれ、前準備が厄介やな。。。。
どうすっかな、これ。。。