2017-06-02 174 views
0

我想從我的twitter文本語料庫中刪除表情符號和表情符號。 該腳本成功刪除了笑臉。但是,當我將該文件用於下一個分析步驟時,該字符串被轉換爲浮點數,並在接下來的步驟中導致錯誤。不刪除表情符號,文本不是浮動的,並且在接下來的分析步驟中不會導致錯誤。所以錯誤可以在這個腳本中找到。我能以某種方式改變腳本,將字符串格式保留爲字符串嗎?「替換」將字符串轉換爲浮動。如何保持字符串格式?

浮動的結果是在輸出文件中的一些行:

<class 'str'> ""USERNAME Danke, Dir auch, beim Stabilisieren und Herumdoktern am Falschen "" 
<class 'str'> ""USERNAME Also ich werde, sobald die Brille da ist, sagen, was ich von den Gläsern und co halte! "" 
<class 'float'> nan 

#remove emoticons 
with open("data_sentiment.csv","r", encoding="utf-8") as oldfile1, open("data_sentiment_stripped_emoticons.csv", 'w',encoding="utf-8") as newfile1: 
    for line in oldfile1: 
     line=line.replace("","").replace(":)", "").replace(":D", "").replace(":(","").replace(":-(","") 
     newfile1.write(line) 
newfile1.close() 
+0

使用[原始字符串](https://docs.python.org/3.4/reference/lexical_analysis.html#string-and-bytes-literals) – Gahan

回答

0

問題並不在此腳本。該腳本創建一個文本文件,根據定義,該文件不包含浮動。

問題出在腳本(/ program/whatever),最終讀取您在此處寫入的文件。第二個腳本將打開文件並遇到像「2.6」這樣的字符串,然後將其解釋爲一個數字。

+0

但是,如果我不刪除與該腳本的表情符號,然後另一個文件將腳本正確解釋爲一個字符串。 –

+0

這是有道理的。沒有明智的腳本會將「2.6 :)」解釋爲浮動。但是,這並不意味着你的問題中的腳本將「2.6 :)」翻譯成「2.6」是錯誤的。它仍然是一個字符串 - 你只需要讓你的第二個腳本(讀取新文件的那個,你沒有發佈的腳本)不會將字符串解釋爲浮動。 – acdr