2017-11-17 11 views
2

こんにちはCSVファイルからカスタムストップワードを削除します。私はほぼすべての関連記事をオンラインで読んだことがある!!私は、Python 2.7 ここは、Pythonは、私はPythonのプログラミングに新しいですし、私はディレクトリ内の複数のファイルからカスタムメイドのストップワードを取り除く手助けが必要

  • 私files.Iの1の2本のサンプルラインがあるを使用しています

    1. は、このフォーマットを維持し、ちょうど行からストップワードを削除する:
    2. 「8806」
    3. ;」 [チャド]デモ参加Legisの需要の溶解が国会多くの傷、警察が群衆を分散させるよう。「;」19"
    4. 『44801』は、 "アメリカの石油会社がイラクの石油食料交換プログラムで再生することを役割は大きい精査の下に来ています。 ";" 19 "
    5. 私はストップワードと呼ばれるdatファイルにストップワードのリストを持っています。
    6. これは私のコードです:

      import io 
      import os 
      import os.path 
      import csv 
      
      os.chdir('/home/Documents/filesdirectory') 
      stopwords = open('/home/StopWords.dat','r').read().split('\n') 
      
      for i in os.listdir(os.getcwd()): 
          name= os.path.splitext(i)[0]  
          with open(i,"r") as fin: 
           with open(name,"w") as fout: 
             writer=csv.writer(fout) 
             for w in csv.reader(fin): 
              if w not in stopwords: 
               writer.writerow(w) 
      

    それは私にすべてのエラーを与えるが、空のファイルを作成しません。どんな助力も非常に感謝しています。

  • +0

    何期待どおりの出力は見えますか? – georgexsh

    +0

    ありがとうgeorgexh。出力は、 "8806"; "デモンストレーターチャド国会議員警察の群集"; "" 19 " " 44801 ";"役割アメリカの石油会社イラクの油脂のための調査 ";" 19 " – reza

    +0

    とストップワードリスト? – georgexsh

    答えて

    0
    import os 
    import os.path 
    os.chdir('/home/filesdirectory') 
    for i in os.listdir(os.getcwd()): 
        filein = open(i, 'r').readlines() 
        fileout = open(i, 'w') 
        stopwords= open('/home/stopwords.dat', 'r').read().split() 
    
        for line in filein: 
         linewords= line.split() 
         filteredtext1 = [] 
         filteredtext1 = [t for t in linewords if t not in stopwords] 
         filteredtext = str(filteredtext1) 
         fileout.write(filteredtext + '\n') 
    

    まあ、私はこの問題を解決しました。 このコードは、各行のストップワード(または指定した単語のリスト)を削除し、同じ行のファイルに各行を書き込み、最後にストップワードのない新しいファイルで置き換えます。ここでの手順は以下のとおりです。

    1. を書くために、ファイルを開いて読み、readlines()
    2. を使用して、それぞれの行を読み取るために、ファイルを開いて、各ファイルの上に行くためにループに入る作業ディレクトリを宣言します
    3. ストップワードファイルを読み込み、分割その言葉
    4. 個別に各ラインに対処するためのループのために入力した言葉にラインを分割
    5. 彼らはストップワードリスト内の文字列
    6. から
    7. 変更リストをされていない場合
    8. は、リストの項目として行の言葉を書きリストを作成し、文字列をファイルに書き込み