Как удалить пустое значение после того, как мы делаем предварительную обработку текста в Python - PullRequest
0 голосов
/ 18 мая 2019

например, у меня есть твит "@cintya @groot @smanela https://blog...", и я выполняю процесс предварительной обработки, ссылка и упоминание которого были удалены, и я думаю, что оно должно быть потеряно. Но в CSV они возвращаютпустое значение. Как я могу исправить их? Вот мой код

def replaceMultiple(mainString, toBeReplaces, newString):
    for elem in toBeReplaces :
        if elem in mainString :
            mainString = mainString.replace(elem, newString)
    return  mainString

with open('datalatihNegatif.csv', encoding='utf-8') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    for row in readCSV:
        _word = []
        username = row[0]
        date = row[1]
        text = row[2].lower()
        text = re.sub(r'@[A-Za-z0-9_]+','',text)
        text = re.sub(r'http\S+', '',text)

        text = replaceMultiple(text, ["!","@","#","$","%","^","&","*","(",
                                      ")","_","-","+","=","{","}","[","]",
                                      "\\","/",",",".","?","<",">",":",";",
                                      "'",'"',"~","0","1","2","3","4","5","6","7","8","9"], '')
        text = text.strip()
        nltk_tokens = nltk.word_tokenize(text)
        stop_words = set(stopwords.words("indonesian"))
        stop_words_new = ['i','liked','video','an','at','ba','da','do','ka','ma','ta','uh','yg','al','eh','ha','ah','ng']
        new_stopwords_list = stop_words.union(stop_words_new)

        print(username)
        print(date)

        for word in nltk_tokens:
            if word not in new_stopwords_list:
                if stemmer.stem(word) != "":
                    _word.append(stemmer.stem(word))
        print(_word)
        csvFile = open('preprocessingDLNegatif.csv', 'a', newline='')
        csvWriter = csv.writer(csvFile)
        csvWriter.writerow(_word)
        csvFile.close()

Я ожидаю, что результат в CSV удален, но на самом деле вывод пустое значение 1 строка в CSV 481 пустое значение,как я могу удалить это?

1 Ответ

0 голосов
/ 18 мая 2019

Как насчет проверки чего-либо в _word перед тем, как записать это:

if len(_word) != 0:
    csvFile = open('preprocessingDLNegatif.csv', 'a', newline='')
    csvWriter = csv.writer(csvFile)
    csvWriter.writerow(_word)
    csvFile.close()

Я также не стал бы закрывать выходной файл для каждой записываемой вами записи.Откройте его один раз перед циклом и закройте, когда закончите.Это сделало бы мой ответ похожим на:

if len(_word) != 0:
    csvWriter.writerow(_word)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...