¿Cómo aplicar la biblioteca word_tokenize de NLTK en un dataframe de Pandas para los datos de Twitter?

Este es el código que estoy usando para el análisis semántico de twitter: –

import pandas as pd import datetime import numpy as np import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords from nltk.stem.wordnet import WordNetLemmatizer from nltk.stem.porter import PorterStemmer df=pd.read_csv('twitDB.csv',header=None, sep=',',error_bad_lines=False,encoding='utf-8') hula=df[[0,1,2,3]] hula=hula.fillna(0) hula['tweet'] = hula[0].astype(str) +hula[1].astype(str)+hula[2].astype(str)+hula[3].astype(str) hula["tweet"]=hula.tweet.str.lower() ho=hula["tweet"] ho = ho.replace('\s+', ' ', regex=True) ho=ho.replace('\.+', '.', regex=True) special_char_list = [':', ';', '?', '}', ')', '{', '('] for special_char in special_char_list: ho=ho.replace(special_char, '') print(ho) ho = ho.replace('((www\.[\s]+)|(https?://[^\s]+))','URL',regex=True) ho =ho.replace(r'#([^\s]+)', r'\1', regex=True) ho =ho.replace('\'"',regex=True) lem = WordNetLemmatizer() stem = PorterStemmer() fg=stem.stem(a) eng_stopwords = stopwords.words('english') ho = ho.to_frame(name=None) a=ho.to_string(buf=None, columns=None, col_space=None, header=True, index=True, na_rep='NaN', formatters=None, float_format=None, sparsify=False, index_names=True, justify=None, line_width=None, max_rows=None, max_cols=None, show_dimensions=False) wordList = word_tokenize(fg) wordList = [word for word in wordList if word not in eng_stopwords] print (wordList) 

Entrada es decir a: –

  tweet 0 1495596971.6034188::automotive auto ebc greens... 1 1495596972.330948::new free stock photo of cit... 

obteniendo salida (wordList) en este formato: –

 tweet 0 1495596971.6034188 : :automotive auto 

Quiero la salida de una fila en un formato de fila solamente. ¿Cómo puedo hacerlo? Si tienes un mejor código para el análisis semántico de Twitter, por favor, compártelo conmigo.

En breve:

 df['Text'].apply(word_tokenize) 

O si desea agregar otra columna para almacenar la lista de cadenas con token:

 df['tokenized_text'] = df['Text'].apply(word_tokenize) 

Hay tokenizadores escritos específicamente para el texto de Twitter, consulte http://www.nltk.org/api/nltk.tokenize.html#module-nltk.tokenize.casual

Para usar nltk.tokenize.TweetTokenizer :

 from nltk.tokenize import TweetTokenizer tt = TweetTokenizer() df['Text'].apply(tt.tokenize) 

Similar a:

  • Cómo aplicar pos_tag_sents () a pandas dataframe de manera eficiente

  • cómo usar word_tokenize en el dataframe

  • Cómo aplicar pos_tag_sents () a pandas dataframe de manera eficiente

  • Tokenizing palabras en una nueva columna en un dataframe de pandas

  • Ejecute nltk sent_tokenize a través del dataframe de Pandas

  • Procesamiento de texto en Python: NLTK y pandas