ニューラルネットワークについて
https://www.sbbit.jp/article/cont1/33345
ニューラルネットワークの基礎
https://tutorials.chainer.org/ja/13_Basics_of_Neural_Networks.html
自然言語処理で一躍脚光を浴びたRNNとは?初心者に優しく解説!
https://aismiley.co.jp/ai_news/rnn/
Python での言語検出 (langdetect)
https://www.delftstack.com/ja/howto/python/language-detection-python/
かぼちゃ
https://tech.nkhn37.net/python-cabocha-syntactic-analysis
beemswarmのプロットの条件
BERTとSHAPを使ってレビューの感情分析とクラスタリングを行い、クラスタごとのSHAP値をbeeswarmプロットする場合、いくつかの入力データや出力の型に関する条件があります。これらの条件を適切に満たすことで、プロットが成功します。
入力型の条件 BERTモデルの入力型 (レビュー)
tokenizerに渡すデータは、リスト形式の文字列(List[str])です。これにより、複数のレビューを一度に処理できます。 例: ["レビュー1", "レビュー2", "レビュー3"] 単一のレビューをトークン化する場合は、[単一の文字列]というリスト形式にします。 SHAP解析の入力型
shap.Explainerへの入力は、BERTモデルが予測するためのトークン化された入力(input_idsなど)です。tokenizerでトークン化されたデータ({'input_ids': ..., 'attention_mask': ...})をSHAPに渡します。 shap_values = explainer(encodings['input_ids']) クラスタごとのレビューの入力型
クラスタリング結果に基づいて、各クラスタに属するレビューはリスト形式で保持されている必要があります。例えば、clustered_reviews = {0: ['レビュー1', 'レビュー2'], 1: ['レビュー3', 'レビュー4']} のように、クラスタ番号をキーにして、各クラスタに対応するレビューをリストで格納します。 SHAPの出力型
shap.Explainerからの出力は、shap_valuesオブジェクトです。このオブジェクトには、各トークンに対応する重要度(SHAP値)が含まれています。これらはshap_values.valuesとして取得できます。 shap_values.valuesの形状は通常 (num_reviews, num_tokens) の2次元配列になります。 SHAP値をプロットするための入力型
shap.summary_plot()には、SHAP値の配列(shap_values.values)と、それに対応するレビューのトークン(tokenizer.convert_ids_to_tokens()で得られるトークン)を渡します。 例: shap.summary_plot(shap_values.values, tokenizer.convert_ids_to_tokens(encodings['input_ids'][0])) プロットのための条件 shap_values.values:
この配列は、レビューごとにトークンの重要度を持っている必要があります。 shap_values.valuesの形状は通常 (num_reviews, num_tokens) となります。 トークンのマッピング:
shap.summary_plotは、SHAP値を可視化する際にトークンとSHAP値を結びつけるために、トークンのリストが必要です。 tokenizer.convert_ids_to_tokens(encodings['input_ids'][0])のようにして、input_idsからトークンを取得できます。 shap.summary_plotの入力型:
shap.summary_plotに渡すSHAP値は2次元配列((num_reviews, num_tokens))であり、対応するトークン(または特徴量)のリストが必要です。 プロットをする際には、各レビューに対応するトークンを使って、SHAP値を表示します。