2017-06-02 132 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