2016-10-06 31 views
0

我希望有人能夠看到我在這裏失敗的地方。所以我已經從buzzfeed中抓取了一些數據,現在我正在嘗試格式化一個文本文件,然後我可以將其發送到data_convert_examples text_to_data格式器。如何格式化輸入數據的文本data_convert_example

我以爲我有過幾次這樣的答案,但是當我把它當作二進制文件處理,然後嘗試對數據進行訓練時,我仍然遇到了磚牆。

我所做的是在玩具數據集上運行binary_to_text,然後在windows下的記事本++中打開文件,顯示所有字符,並匹配我認爲的格式。

我爲下面的長函數appologize,但我真的不確定問題的可能性,並認爲這是提供足夠信息的最佳方式。任何人有任何想法或建議?

def processPath(self, toPath): 
    try: 
     fout = open(os.path.join(toPath, '{}-{}'.format(self.baseName, self.fileNdx)), 'a+') 
     for path, dirs, files in os.walk(self.fromPath): 
      for fn in files: 
       fullpath = os.path.join(path, fn) 
        if os.path.isfile(fullpath): 

         #with open(fullpath, "rb") as f: 
         with codecs.open(fullpath, "rb", 'ascii', "ignore") as f: 
          try: 
           finalRes = "" 
           content = f.readlines() 
           self.populateVocab(content) 

           sentences = sent_tokenize((content[1]).encode('ascii', "ignore").strip('\n')) 
           for sent in sentences: 
            textSumFmt = self.textsumFmt 
            finalRes = textSumFmt["artPref"] + textSumFmt["sentPref"] + sent.replace("=", "equals") + textSumFmt["sentPost"] + textSumFmt["postVal"] 
           finalRes += (('\t' + textSumFmt["absPref"] + textSumFmt["sentPref"] + (content[0]).strip('\n').replace("=", "equals") + textSumFmt["sentPost"] + textSumFmt["postVal"]) + '\t' +'publisher=BUZZ' + os.linesep) 

           if self.lineNdx != 0 and self.lineNdx % self.lines == 0: 
            fout.close() 
            self.fileNdx+=1 
            fout = open(os.path.join(toPath, '{}-{}'.format(self.baseName, self.fileNdx)), 'a+') 

           fout.write(("{}").format(finalRes.encode('utf-8', "ignore"))) 
           self.lineNdx+=1 
          except RuntimeError as e: 
           print "Runtime Error: {0} : {1}".format(e.errno, e.strerror) 
     finally: 
      fout.close() 

回答

0

進一步分析後,似乎問題的來源是多與源數據和它的構造,而不是data_convert_example.py本身的方式。由於標題不符合問題的根源,因此我將此結束。

我發現我的問題的來源是我有一個「文章」和等號之間的空間。刪除後,我能夠成功地訓練。

相關問題