Python
Pythonで日本語文章から形態素・感情分析
はち
更新日:2021/10/29
経緯
・文章の形態素解析に興味があった
・窓口系のシステムに活用できないかを模索していた
・当社のシステムにAI的な技術を活用していきたい
・在宅勤務、リモートワークシーンが増えて文章でのやり取りが増えた
今回使うもの
・Python3
・Transformers+PyTorch
「最先端の自然言語処理」 BERT(自然言語処理の機械学習手法)を使うためのもの
・fugashi
Mecab(形態素解析モデル)のラッパー、非常に便利
・IPADic
辞書ファイル。これがないと形態素解析が出来ない。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from transformers import pipeline from transformers import AutoModelForSequenceClassification from transformers import BertJapaneseTokenizer from fugashi import Tagger tagger = Tagger('-Owakati') TARGET_TEXT = "今日はいい天気ですね。" model = AutoModelForSequenceClassification.from_pretrained('daigo/bert-base-japanese-sentiment') tokenizer = BertJapaneseTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-whole-word-masking') nlp = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer) print(nlp(TARGET_TEXT)) tagger.parse(TARGET_TEXT) for word in tagger(TARGET_TEXT): print(word, word.feature.lemma, word.pos, sep='\t') |
動作イメージ
入力された文章が ポジティブ/ネガディブ で判定される
それぞれの判定に対してスコアが出る。1がMAXで0.5だと中間くらい。
PHPで発火させる
execコマンドを使って発火させる以外の選択があれば模索したいです。
社内システムでの活用、連携を考察
・問い合わせ内容の頻出ワードを明示化してコンテンツ作りに流用(形態素解析)
・お問合せフォームの入力内容を解析してネガ度を測定(感情分析)