テキストマイニング感情分析のプロジェクトプロセスを記録する

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変数関係図(よく使われる)マトリクスホットマップコード:
  •  %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      
    
    
  • パラメータ意味区分異なる変数: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