www tutorial org graphs español ejemplo book python nlp nltk

python - tutorial - Ejemplos prácticos de uso de NLTK



nltk tokenize (3)

Aquí está mi propio ejemplo práctico para el beneficio de cualquier otra persona que busque esta pregunta (disculpe el texto de muestra, fue lo primero que encontré en Wikipedia ):

import nltk import pprint tokenizer = None tagger = None def init_nltk(): global tokenizer global tagger tokenizer = nltk.tokenize.RegexpTokenizer(r''/w+|[^/w/s]+'') tagger = nltk.UnigramTagger(nltk.corpus.brown.tagged_sents()) def tag(text): global tokenizer global tagger if not tokenizer: init_nltk() tokenized = tokenizer.tokenize(text) tagged = tagger.tag(tokenized) tagged.sort(lambda x,y:cmp(x[1],y[1])) return tagged def main(): text = """Mr Blobby is a fictional character who featured on Noel Edmonds'' Saturday night entertainment show Noel''s House Party, which was often a ratings winner in the 1990s. Mr Blobby also appeared on the Jamie Rose show of 1997. He was designed as an outrageously over the top parody of a one-dimensional, mute novelty character, which ironically made him distinctive, absurd and popular. He was a large pink humanoid, covered with yellow spots, sporting a permanent toothy grin and jiggling eyes. He communicated by saying the word "blobby" in an electronically-altered voice, expressing his moods through tone of voice and repetition. There was a Mrs. Blobby, seen briefly in the video, and sold as a doll. However Mr Blobby actually started out as part of the ''Gotcha'' feature during the show''s second series (originally called ''Gotcha Oscars'' until the threat of legal action from the Academy of Motion Picture Arts and Sciences[citation needed]), in which celebrities were caught out in a Candid Camera style prank. Celebrities such as dancer Wayne Sleep and rugby union player Will Carling would be enticed to take part in a fictitious children''s programme based around their profession. Mr Blobby would clumsily take part in the activity, knocking over the set, causing mayhem and saying "blobby blobby blobby", until finally when the prank was revealed, the Blobby costume would be opened - revealing Noel inside. This was all the more surprising for the "victim" as during rehearsals Blobby would be played by an actor wearing only the arms and legs of the costume and speaking in a normal manner.[citation needed]""" tagged = tag(text) l = list(set(tagged)) l.sort(lambda x,y:cmp(x[1],y[1])) pprint.pprint(l) if __name__ == ''__main__'': main()

Salida:

[(''rugby'', None), (''Oscars'', None), (''1990s'', None), (''",'', None), (''Candid'', None), (''"'', None), (''blobby'', None), (''Edmonds'', None), (''Mr'', None), (''outrageously'', None), (''.['', None), (''toothy'', None), (''Celebrities'', None), (''Gotcha'', None), ('']),'', None), (''Jamie'', None), (''humanoid'', None), (''Blobby'', None), (''Carling'', None), (''enticed'', None), (''programme'', None), (''1997'', None), (''s'', None), ("''", "''"), (''['', ''(''), (''('', ''(''), ('']'', '')''), ('','', '',''), (''.'', ''.''), (''all'', ''ABN''), (''the'', ''AT''), (''an'', ''AT''), (''a'', ''AT''), (''be'', ''BE''), (''were'', ''BED''), (''was'', ''BEDZ''), (''is'', ''BEZ''), (''and'', ''CC''), (''one'', ''CD''), (''until'', ''CS''), (''as'', ''CS''), (''This'', ''DT''), (''There'', ''EX''), (''of'', ''IN''), (''inside'', ''IN''), (''from'', ''IN''), (''around'', ''IN''), (''with'', ''IN''), (''through'', ''IN''), (''-'', ''IN''), (''on'', ''IN''), (''in'', ''IN''), (''by'', ''IN''), (''during'', ''IN''), (''over'', ''IN''), (''for'', ''IN''), (''distinctive'', ''JJ''), (''permanent'', ''JJ''), (''mute'', ''JJ''), (''popular'', ''JJ''), (''such'', ''JJ''), (''fictional'', ''JJ''), (''yellow'', ''JJ''), (''pink'', ''JJ''), (''fictitious'', ''JJ''), (''normal'', ''JJ''), (''dimensional'', ''JJ''), (''legal'', ''JJ''), (''large'', ''JJ''), (''surprising'', ''JJ''), (''absurd'', ''JJ''), (''Will'', ''MD''), (''would'', ''MD''), (''style'', ''NN''), (''threat'', ''NN''), (''novelty'', ''NN''), (''union'', ''NN''), (''prank'', ''NN''), (''winner'', ''NN''), (''parody'', ''NN''), (''player'', ''NN''), (''actor'', ''NN''), (''character'', ''NN''), (''victim'', ''NN''), (''costume'', ''NN''), (''action'', ''NN''), (''activity'', ''NN''), (''dancer'', ''NN''), (''grin'', ''NN''), (''doll'', ''NN''), (''top'', ''NN''), (''mayhem'', ''NN''), (''citation'', ''NN''), (''part'', ''NN''), (''repetition'', ''NN''), (''manner'', ''NN''), (''tone'', ''NN''), (''Picture'', ''NN''), (''entertainment'', ''NN''), (''night'', ''NN''), (''series'', ''NN''), (''voice'', ''NN''), (''Mrs'', ''NN''), (''video'', ''NN''), (''Motion'', ''NN''), (''profession'', ''NN''), (''feature'', ''NN''), (''word'', ''NN''), (''Academy'', ''NN-TL''), (''Camera'', ''NN-TL''), (''Party'', ''NN-TL''), (''House'', ''NN-TL''), (''eyes'', ''NNS''), (''spots'', ''NNS''), (''rehearsals'', ''NNS''), (''ratings'', ''NNS''), (''arms'', ''NNS''), (''celebrities'', ''NNS''), (''children'', ''NNS''), (''moods'', ''NNS''), (''legs'', ''NNS''), (''Sciences'', ''NNS-TL''), (''Arts'', ''NNS-TL''), (''Wayne'', ''NP''), (''Rose'', ''NP''), (''Noel'', ''NP''), (''Saturday'', ''NR''), (''second'', ''OD''), (''his'', ''PP$''), (''their'', ''PP$''), (''him'', ''PPO''), (''He'', ''PPS''), (''more'', ''QL''), (''However'', ''RB''), (''actually'', ''RB''), (''also'', ''RB''), (''clumsily'', ''RB''), (''originally'', ''RB''), (''only'', ''RB''), (''often'', ''RB''), (''ironically'', ''RB''), (''briefly'', ''RB''), (''finally'', ''RB''), (''electronically'', ''RB-HL''), (''out'', ''RP''), (''to'', ''TO''), (''show'', ''VB''), (''Sleep'', ''VB''), (''take'', ''VB''), (''opened'', ''VBD''), (''played'', ''VBD''), (''caught'', ''VBD''), (''appeared'', ''VBD''), (''revealed'', ''VBD''), (''started'', ''VBD''), (''saying'', ''VBG''), (''causing'', ''VBG''), (''expressing'', ''VBG''), (''knocking'', ''VBG''), (''wearing'', ''VBG''), (''speaking'', ''VBG''), (''sporting'', ''VBG''), (''revealing'', ''VBG''), (''jiggling'', ''VBG''), (''sold'', ''VBN''), (''called'', ''VBN''), (''made'', ''VBN''), (''altered'', ''VBN''), (''based'', ''VBN''), (''designed'', ''VBN''), (''covered'', ''VBN''), (''communicated'', ''VBN''), (''needed'', ''VBN''), (''seen'', ''VBN''), (''set'', ''VBN''), (''featured'', ''VBN''), (''which'', ''WDT''), (''who'', ''WPS''), (''when'', ''WRB'')]

Estoy jugando con el Natural Language Toolkit (NLTK).

Su documentación ( Book y HOWTO ) es bastante voluminosa y los ejemplos a veces son un poco avanzados.

¿Hay ejemplos buenos pero básicos de usos / aplicaciones de NLTK? Estoy pensando en cosas como los artículos de NTLK en el blog de Stream Hacker .


NLP en general es muy útil, por lo que es posible que desee ampliar su búsqueda a la aplicación general de análisis de texto. Utilicé NLTK para ayudar a MOSS 2010 generando taxonomía de archivos mediante la extracción de mapas conceptuales. Funcionó realmente bien. No pasa mucho tiempo antes de que los archivos comiencen a agruparse de maneras útiles.

A menudo, para comprender el análisis de texto, debes pensar en términos de tangentes a las formas en que estás acostumbrado a pensar. Por ejemplo, el análisis de texto es extremadamente útil para el descubrimiento. La mayoría de las personas, sin embargo, ni siquiera saben cuál es la diferencia entre la búsqueda y el descubrimiento. Si lees sobre esos temas, probablemente "descubras" la forma en que podrías querer poner a NLTK a trabajar.

Además, considere su visión del mundo de los archivos de texto sin NLTK. Tienes un montón de cadenas de longitud aleatorias separadas por espacios en blanco y puntuación. Algunos de los signos de puntuación cambian la forma en que se usa, como el punto (que también es un punto decimal y un marcador de postfijo para una abreviación). Con NLTK se obtienen palabras y más hasta el punto de obtener partes del discurso. Ahora tiene un control sobre el contenido. Use NLTK para descubrir los conceptos y acciones en el documento. Use NLTK para obtener el "significado" del documento. El significado en este caso se refiere a las relaciones esenciales en el documento.

Es bueno tener curiosidad acerca de NLTK. Text Analytics está listo para una gran expansión en los próximos años. Aquellos que lo entienden estarán mejor preparados para aprovechar mejor las nuevas oportunidades.


Soy el autor de streamhacker.com (y gracias por la mención, obtengo una buena cantidad de tráfico de clics de esta pregunta en particular). ¿Qué estás tratando de hacer específicamente? NLTK tiene muchas herramientas para hacer varias cosas, pero de alguna manera le falta información clara sobre para qué usar las herramientas y la mejor manera de usarlas. También está orientado a problemas académicos, por lo que puede ser pesado traducir los ejemplos pedagogical a soluciones prácticas.