データクレンジングNLPパイソン

1、知識ポイント

"" " 
インストールモジュール:BS4 NLTK gensim 
NLTK:英語プロセス
    1、インストール
    2、nltk.download()モジュールのダウンロード

英語データ処理:
    1、htmlタグの例を削除= BeautifulSoup(DF [ 'レビュー '] [1000]、 'html.parser')。GET_TEXT()
    2、re.subは句読点example_letter(R&LTを削除= '[^ A-ZA-Z]'、 ''、例)
    。3、単語に切断/トークンワード= example_letter.lower ().split()
    4、例えば、ストップワードを削除します。AN IT APOS 
                ストップワード.fromkeys} = {([line.rstrip()を開くためのライン( './ stopWords.txt')で])
                words_nostop = [W W W IFストップワード]にないための言葉では
    5、新しい文の組換え。

単語ベクター溶液を:
    1、ワンホットエンコーディング
        欠点:このソリューションセカンダリストレージスペースは単語と単語の間、より重要なのは、無駄やされる(ベクトルコンピュータを完全に理解し、少しで処理することができない場合であっても何らベクトル間の相関がない)と、 
    2は、特異値分解(SVD)法に基づいて、
        手順:a)第一のステップは、既存のドキュメント統計の大きな数でワード空間行列Xを形成することで、2つの方法があります。
                一つは、各単語が表示される記事の文書は、単語がWの数は、記事の文書の数はMで、この時点でXの寸法はW・mであることが想定された回数の統計であり、
                第2の方法は、特定の単語のためです、統計は、このようにX W * W行列を形成する、つまり周波数のテキストの前後に表示されます。
              b)第二のステップは、X行列のSVD分解のためであり、固有値は、最初のk個のk個の固有ベクトルは、固有値に対応する前に必要とし、
                マトリックス最初のk個の固有ベクトルのその後の寸法は、W * KでありますW-ワードベクトルの全てのk次元表現を構成する
        :欠点
            、1優れたワード空間スパース行列Xを維持する必要性、および新しい単語の出現により頻繁に変更します; 
            2、SVD大きな演算量、及び各単語や文書の変更後、あなたが再計算する必要がある
    3を、word2vecモデルを構築:それぞれの新しい一つの文書は、既存のモデルを変更しないように、パラメータと結果は、繰り返しの多いを通じて学習ワード文書で符号化されている、唯一のもう一度繰り返す必要があり、単語ベクトルは、パラメータを計算することができます
            例:私はPythonとJavaの愛
            A)CBOWアルゴリズムを:入力:私はターゲット大好き:パイソンとJava 
                   CBOWアルゴリズムは、(これらのベクトルが加算され、入力ベクトルとしてコンテキストウィンドウ内の単語を使用しています又は平均化の後)、出力ワードの相関分布の空間を得るために、
                   さらに、ソフトマックス関数は、クロスエントロピー損失と、出力ワードの空間全体にわたって打つ確率を取得し使用するワンホットエンコードされたターゲット単語の値で
                   勾配降下(勾配降下)を使用する、単語ベクトルの入力及び出力損失の勾配入力と出力ワードベクトルを調整するための次の反復の方法を取得します。

            私は大好きです:入力:PythonとJavaの、目標値をb)のアルゴリズムグラムスキップ
                    スキップ-グラムアルゴリズムは入力、分布として単語ターゲットベクトルを使用し、その妥当性出力ワードのスペースを求め、
                    その後、全体の出力ワードを取得するために、ソフトマックス関数を使用しますヒット確率空間、個別のクロスエントロピーを計算ワードコンテキストワンホット符号化され、
                    値が失われた後に加算、勾配ベクトルの入力および出力ワードによって損失、
                    (勾配降下)を得るために勾配降下法を用いて単語の入力および出力ベクトルに対する反復調整
。「」 "

(使用停止ワード)を清掃2、中国のデータ

インポートのOS
 インポートインポートのNPとしてnumpyの
 インポートPDとしてパンダ
 から BS4のインポートBeautifulSoup
 から sklearn.feature_extraction.text インポートCountVectorizer
 から sklearn.ensemble インポートRandomForestClassifier
 から sklearn.metricsはインポートconfusion_matrix
 から sklearn.linear_modelのインポートロジスティック回帰の
 インポートNLTKを
 から nltk.corpusのインポートストップワード
 輸入  jiebaの
 デフclean_chineses_text(テキスト):
     "" " 
    ブログの庭に保存されている中国のデータクレンジングstopwords_chineses.txtファイル
    :のparamテキスト:
    :リターン:
    " "" 
    テキスト = BeautifulSoup(テキスト、' html.parser ').get_text() 削除htmlタグ 
    =テキストjieba.lcut(テキスト); 
    ストップワード([line.rstrip()= {} .fromkeys ためのライン開く(' ./stopwords_chineses.txt ')])#1 ローディングストップワード(中国語) 
    eng_stopwords = SET(ストップワード)重複した単語の削除 
    = [W言葉のために W テキストをIF W ない  eng_stopwords] テキストで削除ストップワード
    リターン   .join(ワード)

3、英語のデータは、(ストップワードを使用します)のクリーニング

インポートのOS
 インポートインポートのNPとしてnumpyの
 インポートPDとしてパンダ
 から BS4のインポートBeautifulSoup
 から sklearn.feature_extraction.text インポートCountVectorizer
 から sklearn.ensemble インポートRandomForestClassifier
 から sklearn.metricsはインポートconfusion_matrix
 から sklearn.linear_modelのインポートロジスティック回帰の
 インポートNLTKを
 から nltk.corpusのインポートストップワード
 輸入  jiebaの
 デフclean_english_text(テキスト):
     "" " 
    クリーニングstopwords_english.txt庭ファイルに保存されている英語のブログのデータ
    :のparamテキスト:
    :リターン:
    " "" 
    テキスト = BeautifulSoup(テキスト、' html.parser ').get_text() 削除htmlタグ 
    = re.subテキスト(R&LT ' [^ A-ZA-Z] ''  '、テキスト)   のみ手紙残す 
    単語をtext.lower =()。スプリット()  すべて小文字 
    ストップワード= {} .fromkeys([ line.rstrip()のためのライン開きます(' ./stopwords_english.txt ')]) ロードストップワード(中国) 
    eng_stopwords = SET(ストップワード)#は重複ワード削除 
    = [W単語をのための W の単語IF W ない  eng_stopwords] テキストで削除ストップワード
    印刷(ワード)
     リターン  .join(言葉)

IF  __name__ == ' __main__ ' 
    テキスト = " !。ミリアンペアニッケルハオ、私の名前が(笑)こんにちはIS」、" 
    A = clean_english_text(テキスト)
     を印刷(A)

    TEST1 = "あなたは「あなたのお母さんはあなたを探している。」で!私のメッセージに応答しないか、ああ、何をしています 
    B = clean_chineses_text(TEST1)
     印刷(B)

 4、stopwords_english.txt

おすすめ

転載: www.cnblogs.com/ywjfx/p/11019689.html