テキストマイニング感情分析のプロジェクトプロセスを記録する
2628 ワード
一、コーパスの構築データソースを特定し、pythonを使用してデータを抽出し、無効なデータ を洗浄することに注意する.ラベルシステムを確立し、表示根拠として今回採用したのはBIOラベルシステムである:BはBeginを代表し、開始を表す;IはIntermediateを表し、中間を表す.OはOtherを表し、その他を表し、無関係文字をマークするために使用される.また、EとAはそれぞれエンティティと属性を表し、ユーザーが最も注目している属性は「A+?」で表され、例えば位置は「AL」である.その後の感情分析のために、プラスの感情とマイナスの感情をB−PとB−Nに分けることもできる. 注記 品質検査(reviews_check.py)は、スペースが多くなったり、スラッシュが多くなったり、ラベルシステム内の既定のラベルがなくて、大文字と小文字を区別しないなど、表示中にフォーマット上のエラーが発生するためです.そのため、チェックを行うにはフォーマットチェックプログラムが必要です.ここでの品質検査には内容は含まれず、フォーマットのみが含まれています.
二、モデルの構築語料前処理 語、品詞、タグの3つの対応データテーブル を生成する.三種類の辞書 を創立する word 2 vec作成語ベクトル 語ベクトル:一般的な理解は、語を機械的に読めるデータフォーマットに変換することである.例えば、「今日は天気がいい」という言葉を語ベクトルに変換すると、[1,0,0,0,0][0,0,0,0,0][0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,1]となり、この符号化はone-hot符号化と呼ばれ、独熱符号化とも呼ばれ、すなわち、テキストなどの長さのNビット特徴レジスタを用いてサンプルを格納し、各サンプル中の単一の特徴が1ビットのみ状態1にあることを保証し、その他は0である.しかしone-hot符号化を使用すると、いくつかのサンプル量の大きい語彙は表現しにくく、メモリを非常に消費していることがわかります.このとき,空間ベクトルに似た語ベクトルが現れた.
語ベクトルを訓練する方法はニューラルネットワークDNNがあり,採用する方法は一般的に3層のニューラルネットワーク構造(もちろん多層でもよい)であり,入力層,隠蔽層,出力層(softmax層)に分けられる.定義データの入出力には、CBOW(Continuous Bag-of-WOrds)とSkip-Gramの2つの方法があります.
CBOW:ある語のコンテキストに基づいてある語を予測する.たとえば、1つの/学習/語ベクトル/の/メソッド.......コンテキストに4つの語がある「語ベクトル」を予測すると、入力レイヤのサイズは4であり、非表示レイヤは自己設定であり、出力レイヤは用語集全体のサイズに等しく、式で表すとPである(「語ベクトル」|(「1つ」、「学習」、「方法」)CBOWはワードバッグモデルを使用しているため,この4つのワードはいずれも平等であり,距離を考慮せず,我々のコンテキスト内であればよい.
Skip-Gram:CBOWとは逆に、コンテキストの内容を予測するために特徴語を入力します.その公式はP((「一つ」,「学習」,「の」,「方法」)|「語ベクトル」)である.入力レイヤは1、非表示レイヤは自己設定、出力レイヤは用語集サイズです.すなわち,「語ベクトル」を用いて,そのコンテキストで最も出現する可能性のある4つの語を予測する.
word 2 vecもCBOWとSkip-Gramを用いてモデルを訓練し語ベクトルを得たが,従来のDNNモデルは用いられなかった.ホフマンの木を使っています訓練セットとテストセット を区分する注釈ファイルを用いてモデル を構築する.モデルの正解率を表示 モデルは、より多くのデータを予測する 三、感情分析可視化分析(タイタニック号参照) numpyは配列で、pandasは計算されたパケット(自己記録......)です.ここで可視化分析で使われるパケットについてお話しします.seabornはまとめの願いを失いました.次のリンクを見てみましょう.https://blog.csdn.net/suzyu12345/article/details/69029106ここでは、いくつかの一般的な点について説明します.タイプboxplot箱図barplotヒストグラムstripplot散点図factorplot変数関係図(よく使われる)マトリクスホットマップコード: パラメータ意味区分異なる変数:hue調整パターンロングタイプ:aspect調整色(これが一番好き):palette(Pastel 1,Pastel 2,coolwarm,coolwarm_rいくつかの色がよく見えて高級感に満ちています.そうそう、ずれています) 深さ掘削(重み計算などの方法)構造方程式はSPSSではなく,他人を誤解したくないほど簡単に作られた.関連ルールは作成しましたが、頻繁なアイテムセットのみが掘り起こされ、関連ルールはありません.from orangecontrib.associate.fpgrowth import * import Orange x1=df[‘a’].values x2=df['b].values
二、モデルの構築
語ベクトルを訓練する方法はニューラルネットワークDNNがあり,採用する方法は一般的に3層のニューラルネットワーク構造(もちろん多層でもよい)であり,入力層,隠蔽層,出力層(softmax層)に分けられる.定義データの入出力には、CBOW(Continuous Bag-of-WOrds)とSkip-Gramの2つの方法があります.
CBOW:ある語のコンテキストに基づいてある語を予測する.たとえば、1つの/学習/語ベクトル/の/メソッド.......コンテキストに4つの語がある「語ベクトル」を予測すると、入力レイヤのサイズは4であり、非表示レイヤは自己設定であり、出力レイヤは用語集全体のサイズに等しく、式で表すとPである(「語ベクトル」|(「1つ」、「学習」、「方法」)CBOWはワードバッグモデルを使用しているため,この4つのワードはいずれも平等であり,距離を考慮せず,我々のコンテキスト内であればよい.
Skip-Gram:CBOWとは逆に、コンテキストの内容を予測するために特徴語を入力します.その公式はP((「一つ」,「学習」,「の」,「方法」)|「語ベクトル」)である.入力レイヤは1、非表示レイヤは自己設定、出力レイヤは用語集サイズです.すなわち,「語ベクトル」を用いて,そのコンテキストで最も出現する可能性のある4つの語を予測する.
word 2 vecもCBOWとSkip-Gramを用いてモデルを訓練し語ベクトルを得たが,従来のDNNモデルは用いられなかった.ホフマンの木を使っています
%matplotlib inline
plt.rcParams['axes.unicode_minus']=False #
df_corr=df.corr()
plt.figure(figsize=(10,10))
sns.heatmap(df_corr,annot=True,square=True,cmap='Pastel1')#annot