Как я могу удалить '\ n' из моих токенов nltk или предотвратить его появление в первую очередь после преобразования строки в список? - PullRequest
1 голос
/ 21 июня 2019

Я преобразовал столбец из CSV в список, а затем строку для токенизации. После преобразования в строку я получаю \ n во всем. Я пытаюсь либо предотвратить это полностью, либо удалить его после того, как это произойдет.

До сих пор я пытался заменить, раздеть и полоску безрезультатно.

Вот версия, в которой я попробовал .replace () после преобразования списка в строку.

df = pd.read_csv('raw_da_qs.csv')
question = df['question_only']
question = question.str.replace(r'\d+','')
question = str(question.tolist())
question = question.replace('\n','')
tokenizer = nltk.tokenize.RegexpTokenizer('\w+')
tokens = tokenizer.tokenize(question)

и я получаю токены вроде 'nthere' и 'nsuicide'

Ответы [ 2 ]

0 голосов
/ 26 июня 2019
# created one dummy df for this

import pandas as pd
df  = pd.DataFrame(['\n good mrng','\n how are you', '\nwell do\nne'], columns= ['question_only'])

df['replace_n'] = df['question_only'].apply(lambda x: x.replace('\n', ''))

tokenizer = nltk.tokenize.RegexpTokenizer('\w+')
df['token'] = df['replace_n'].apply(lambda x: tokenizer.tokenize(x))

#o/p
df['token']
0       [good, mrng]
1    [how, are, you]
2       [well, done]
Name: token, dtype: object
0 голосов
/ 22 июня 2019

У меня была такая же проблема, и я нашел единственное решение , которое я нашел - использовать sed . Я надеюсь, что кто-то поделится питонским способом справиться с этим.

...