python - notebook - graficos pandas
¿Cómo NLTK word_tokenize a un marco de datos de Pandas para datos de Twitter? (1)
En breve:
df[''Text''].apply(word_tokenize)
O si desea agregar otra columna para almacenar la lista de cadenas tokenizadas:
df[''tokenized_text''] = df[''Text''].apply(word_tokenize)
Hay tokenizadores escritos específicamente para el texto de Twitter, ver 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:
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
Solo quiero el resultado de una fila en un formato de fila. ¿Cómo puedo hacerlo? Si tienes un código mejor para el análisis semántico de twitter, por favor, compártelo conmigo.