- Products -


Software


NEWS


Special



- Knowledge -


Category × Tag



- Like -

公開
作成日:2021/12/20
更新日:2021/12/20

Pythonでテキストマイニングツールを自作する

・自分の希望にあったテキストマイニングツールが無かったので、作ってみた。超簡単!

手順


事前準備


・Pythonを実行できる環境を用意する。
 0からやる場合は、anacondaをインストールするのがオススメ。

・MeCabをインストールする。
 pipコマンドというものを使ってインストールする。難しいことは無い。実行するのみ。

pip install mecab-python3


・辞書をインストールする。
 こちらもpipコマンドを実行するのみ。(別途unidicをインストールしてると実行時にえらーするので削除した)

pip install unidic-lite


・pythonコードを書き、ちゃんと動くかテストしてみる。

import MeCab
wakati = MeCab.Tagger("-Owakati")
result = wakati.parse("ITって本当にすごいよね!").split() 
print(result)


名詞の数だけ数えてみる。


・Chasenをインストールする。これが無いと品詞分析(形態素解析)ができない。

・開発環境をインストールした配下の「dicrcファイル」を編集する。
 例えば以下のファイル。
"C:\ProgramData\Anaconda3\Lib\site-packages\unidic_lite\dicdir\dicrc"

・このファイルに以下の設定を追記する。これにより、chasenが使えるようになる。

; ChaSen
node-format-chasen = %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format-chasen  = %m\t%m\t%m\t%F-[0,1,2,3]\t\t\n
eos-format-chasen  = EOS\n


・pythonコードを書き、結果を確認してみる。

# src.txtファイル内に対象の文章を入れておく。
f = open('src.txt')
text = f.read()  # ファイル終端まで全て読んだデータを返す
f.close()


#MeCabで分割
import MeCab
m = MeCab.Tagger('-Ochasen')
 
node = m.parseToNode(text)
words=[]
while node:
    hinshi = node.feature.split(",")[0]
    # if hinshi in ["名詞","動詞","形容詞"]:
    if hinshi in ["名詞"]:
        try:
            # origin = node.feature.split(",")[6]
            origin = node.feature.split(",")[8]
            words.append(origin)
        except Exception as e:
            # print(e)
            i = 1
            
    node = node.next

#単語の数カウント
import collections
c = collections.Counter(words)
print(c.most_common(5000))


・さらに、csvファイルに書き出す場合は以下のコードを追記する。5000は出力単語の上限を指定している。

# csv出力
export_list = c.most_common(5000);
import csv
with open("word_list.csv", "w") as f:
    writer = csv.writer(f, lineterminator='\n')
    for a in export_list:
        writer.writerow(a)



※補足:表記揺れについて
https://analysis-navi.com/?p=3093

制限あるが、フリーで使えるものもある


https://textmining1.userlocal.jp/home/result/5e9da4538300c5a603f5ce888f4d94d5

参考


・環境構築について
https://qiita.com/tamago_pinoko/items/6935565212a00823b3b0

・一通りのテキストマイニング手順
https://analysis-navi.com/?p=2167

・mecabについて
https://self-development.info/mecab%E3%81%AE%E3%83%A9%E3%83%83%E3%83%91%E3%83%BC%E3%81%A7%E3%81%82%E3%82%8Bmecab-python3%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

・unidic-liteインストールについて
https://qiita.com/cress_cc/items/6b1db5865741b1c9fe6a

・分かち書きと形態素解析について
https://testpy.hatenablog.com/entry/2016/10/04/010000


Category



Tag




関連記事


{{tmp.name}}

{{article.category}} {{article.title}}