Classifying data from .arff files with scikit-learn? - python

In a previous post i learned about the process to follow for classifying text with scikit-learn. In order to organize my data in a better way i discover .arff files let's say i have the following .arff file:
#relation lang_identification
#attribute opinion string
#attribute lang_identification {bos, pt, es, slov}
#data
"Pošto je EULEX obećao da će obaviti istragu o prošlosedmičnom izbijanju nasilja na sjeveru Kosova, taj incident predstavlja još jedan ispit kapaciteta misije da doprinese jačanju vladavine prava.",bos
"De todas as provações que teve de suplantar ao longo da vida, qual foi a mais difícil? O início. Qualquer começo apresenta dificuldades que parecem intransponíveis. Mas tive sempre a minha mãe do meu lado. Foi ela quem me ajudou a encontrar forças para enfrentar as situações mais decepcionantes, negativas, as que me punham mesmo furiosa.",pt
"Al parecer, Andrea Guasch pone que una relación a distancia es muy difícil de llevar como excusa. Algo con lo que, por lo visto, Alex Lequio no está nada de acuerdo. ¿O es que más bien ya ha conseguido la fama que andaba buscando?",es
"Vo väčšine golfových rezortov ide o veľký komplex niekoľkých ihrísk blízko pri sebe spojených s hotelmi a ďalšími možnosťami trávenia voľného času – nie vždy sú manželky či deti nadšenými golfistami, a tak potrebujú iný druh vyžitia. Zaujímavé kombinácie ponúkajú aj rakúske, švajčiarske či talianske Alpy, kde sa dá v zime lyžovať a v lete hrať golf pod vysokými alpskými končiarmi.",slov
I would like to experiment with scikit-learn and classify with a supervised aproach a complete new test string let's say:
test = "Por ello, ha insistido en que Europa tiene que darle un toque de atención porque Portugal esta incumpliendo la directiva del establecimiento del peaje"
Scipy provide an arff loader, let's load an arff file with this:
from scipy.io.arff import loadarff
dataset = loadarff(open('/Users/user/Desktop/toy.arff','r'))
print dataset
This should return something like this: (array([]), how can use numpy record arrays to classify with scikit-learn?.

Related

Identify the names of the interlocutors (most frequent words that follow a certain pattern) to separate the dialog lines of a chat using regex

import re
#To read input data file
with open("dm_chat_data.txt") as input_data_file:
print(input_data_file.read())
#To write corrections in a new text file
with open('dm_chat_data_fixed.txt', 'w') as file:
file.write('\n')
This is the text file extracted by webscraping, but the lines of the dialogs of each of its chat partners are not separated, so the program must identify when each user starts the dialog.
File dm_chat_data.txt
Desempleada_19: HolaaLucyGirl: hola como estas?Desempleada_19: Masomenos y vos LucyGirl?Desempleada_19: Q edad tenes LucyGirl: tengo 19LucyGirl: masomenos? que paso? (si se puede preguntar claro)Desempleada_19: Yo tmb 19 me llamo PriscilaDesempleada_19: Desempleada_19: Q hacías LucyGirl: Entre al chat para ver que onda, no frecuento mucho
Charge file [100%] (ddddfdfdfd)
LucyGirl: Desempleada_19: Gracias!
AndrewSC: HolaAndrewSC: Si quieres podemos hablar LyraStar: claro LyraStar: que cuentas amigaAndrewSC: Todo bien y tú?
Charge file [100%] (ddddfdfdfd)
LyraStar: LyraStar: que tal ese auto?AndrewSC: Creo que...Diria que... ya son las 19 : 00 hs AndrewSC: Muy bien la verdad
Bsco_Pra_Cap_: HolaBsco_Pra_Cap_: como vaBsco_Pra_Cap_: Jorge, 47, de Floresta, me presento a la entrevista, vos?Bsco_Pra_Cap_: es aqui, cierto?LucyFlame: holaaLucyFlame: estas?LucyFlame: soy una programadora de la ciudad de HudsonBsco_Pra_Cap_: de Hudson centro? o hudson alejado...?Bsco_Pra_Cap_: contame, Lu, que buscas en esta organizacion?
And this is the file that you must create separating the dialogues of each interlocutor in each of the chats. The file edited_dm_chat_data.txt need to be like this...
Desempleada_19: Holaa
LucyGirl: hola como estas?
Desempleada_19: Masomenos y vos LucyGirl?
Desempleada_19: Q edad tenes
LucyGirl: tengo 19
LucyGirl: masomenos? que paso? (si se puede preguntar claro)
Desempleada_19: Yo tmb 19 me llamo Priscila
Desempleada_19:
Desempleada_19: Q hacías
LucyGirl: Entre al chat para ver que onda, no frecuento mucho
Charge file [100%] (ddddfdfdfd)
LucyGirl:
Desempleada_19: Gracias!
AndrewSC: Hola
AndrewSC: Si quieres podemos hablar
LyraStar: claro
LyraStar: que cuentas amiga
AndrewSC: Todo bien y tú?
Charge file [100%] (ddddfdfdfd)
LyraStar: LyraStar: que tal ese auto?
AndrewSC: Creo que...Diria que... ya son las 19 : 00 hs
AndrewSC: Muy bien la verdad
Bsco_Pra_Cap_: Hola
Bsco_Pra_Cap_: como va
Bsco_Pra_Cap_: Jorge, 47, de Floresta, me presento a la entrevista, vos?Bsco_Pra_Cap_: es aqui, cierto?
LucyFlame: holaa
LucyFlame: estas?
LucyFlame: soy una programadora de la ciudad de Hudson
Bsco_Pra_Cap_: de Hudson centro? o hudson alejado...?
Bsco_Pra_Cap_: contame, Lu, que buscas en esta organizacion?
I have tried to use regex, where each interlocutor is represented by a "Word" that begins in uppercase immediately followed by ": "
But there are some lines that give some problems to this logic, for example "Bsco_Pra_Cap_: HolaBsco_Pra_Cap_: como va", where the substring "Hola" is a simply word that is not a name and is attached to the name with capital letters, then it would be confused and consider "HolaBsco_Pra_Cap_: " as a name, but it's incorrect because the correct users name is "Bsco_Pra_Cap_: "
This problem arises because we don't know what the nicknames of the interlocutor users will be, and... the only thing we know is the structure where they start with a capital letter and end in : and then an empty space, but one thing I've noticed is that in all chats the names of the conversation partners are the most repeated words, so I think I could use a regular expression pattern as a word frequency counter by setting a search criteria like this "[INITIAL CAPITAL LETTER] hjasahshjas: " , and put as line separators those substrings with these characteristics as long as they are the ones that are repeated the most throughout the file
input_data_file = open("dm_chat_data.txt", "r+")
#maybe you can use something like this to count the occurrences and thus identify the nicknames
input_data_file.count(r"[A-Z][^A-Z]*:\s")
I think it is quite hard. but you can build a rules as shown in below code:
import nltk
from collections import Counter
text = '''Desempleada_19: HolaaLucyGirl: hola como estas?Desempleada_19:
Masomenos y vos LucyGirl?Desempleada_19: Q edad tenes LucyGirl: tengo
19LucyGirl: masomenos? que paso? (si se puede preguntar claro)Desempleada_19: Yo
tmb 19 me llamo PriscilaDesempleada_19: Desempleada_19: Q hacías LucyGirl: Entre
al chat para ver que onda, no frecuento mucho
Charge file [100%] (ddddfdfdfd)
LucyGirl: Desempleada_19: Gracias!
AndrewSC: HolaAndrewSC: Si quieres podemos hablar LyraStar: claro LyraStar: que
cuentas amigaAndrewSC: Todo bien y tú?
Charge file [100%] (ddddfdfdfd)
LyraStar: LyraStar: que tal ese auto?AndrewSC: Creo que...Diria que... ya son
las 19 : 00 hs AndrewSC: Muy bien la verdad
Bsco_Pra_Cap_: HolaBsco_Pra_Cap_: como vaBsco_Pra_Cap_: Jorge, 47, de Floresta,
me presento a la entrevista, vos?Bsco_Pra_Cap_: es aqui, cierto?LucyFlame:
holaaLucyFlame: estas?LucyFlame: soy una programadora de la ciudad de
HudsonBsco_Pra_Cap_: de Hudson centro? o hudson alejado...?Bsco_Pra_Cap_:
contame, Lu, que buscas en esta organizacion?
'''
data = nltk.word_tokenize(text)
user_lst = []
for ind, val in enumerate(data):
if val == ':':
user_lst.append(data[ind - 1])
# printing duplicates assuming the users were speaking more than one time. if a
user has one dialog box it fails.
users = [k for k, v in Counter(user_lst).items() if v > 1]
# function to replace a string:
def replacer(string, lst):
for v in lst:
string = string.replace(v, f' {v}')
return string
# replace users in old text with single space in it.
refined_text = replacer(text, users)
refined_data = nltk.word_tokenize(refined_text)
correct_users = []
dialog = []
for ind, val in enumerate(refined_data):
if val == ':':
correct_users.append(refined_data[ind - 1])
if val not in users:
dialog.append(val)
correct_dialog = ' '.join(dialog).replace(':', '<:').split('<')
strip_dialog = [i.strip() for i in correct_dialog if i.strip()]
chat = []
for i in range(len(correct_users)):
chat.append(f'{correct_users[i]}{strip_dialog[i]}')
print(chat)
>>>> ['Desempleada_19: Holaa', 'LucyGirl: hola como estas ?', 'Desempleada_19: Masomenos y vos ?', 'Desempleada_19: Q edad tenes', 'LucyGirl: tengo 19', 'LucyGirl: masomenos ? que paso ? ( si se puede preguntar claro )', 'Desempleada_19: Yo tmb 19 me llamo Priscila', 'Desempleada_19:', 'Desempleada_19: Q hacías', 'LucyGirl: Entre al chat para ver que onda , no frecuento mucho Charge file [ 100 % ] ( ddddfdfdfd )', 'LucyGirl:', 'Desempleada_19: Gracias !', 'AndrewSC: Hola', 'AndrewSC: Si quieres podemos hablar', 'LyraStar: claro', 'LyraStar: que cuentas amiga', 'AndrewSC: Todo bien y tú ? Charge file [ 100 % ] ( ddddfdfdfd )', 'LyraStar:', 'LyraStar: que tal ese auto ?', 'AndrewSC: Creo que ... Diria que ... ya son las 19', '19: 00 hs', 'AndrewSC: Muy bien la verdad', 'Bsco_Pra_Cap_: Hola', 'Bsco_Pra_Cap_: como va', 'Bsco_Pra_Cap_: Jorge , 47 , de Floresta , me presento a la entrevista , vos ?', 'Bsco_Pra_Cap_: es aqui , cierto ?', 'LucyFlame: holaa', 'LucyFlame: estas ?', 'LucyFlame: soy una programadora de la ciudad de Hudson', 'Bsco_Pra_Cap_: de Hudson centro ? o hudson alejado ... ?', 'Bsco_Pra_Cap_: contame , Lu , que buscas en esta organizacion ?']

Removing the break line of words form texts that are on a list

I am new here. I am a begginer with python so I am trying to write a code that allows me to remove the link break of a list in python.
I have the following list (which is more extense), but I will share a part of it.
info = ['COLOMBIA Y LA \nNUEVA REVOLUCIÓN \nINDUSTRIAL\nPropuestas del Foco \nde Tecnologías Convergentes \ne Industrias 4.0\nVolumen 9\nCOLOMBIA - 2019\nArtista: Federico Uribe\n\n-----\n\n-----\nPropuestas del Foco \nde Tecnologías Convergentes\ne Industrias 4.0\nTomo 9\nCOLOMBIA\nY LA NUEVA \nREVOLUCIÓN \nINDUSTRIAL\n\n-----\n© Vicepresidencia de la República de Colombia\n© Ministerio de Ciencia, Tecnología e Innovación\n© Elías D. Niño-Ruiz, Jean Paul Allain, José Alejandro Montoya, Juan Luis Mejía Arango, Markus Eisenhauer, \nMaría del Pilar Noriega E., Mauricio Arroyave Franco, Mónica Álvarez-Láinez, Nora Cadavid Giraldo, \nOlga L. Quintero-Montoya, Orlando Ayala, Raimundo Abello, Tim Osswald \nPrimera edición, 2020\nISBN Impreso: 978-958-5135-10-9\nISBN digital: 978-958-5135-11-6\nDOI: https://doi.org/10.17230/9789585135116vdyc\nColección: Misión Internacional de Sabios 2019\nTítulo del volumen 9: Colombia y la nueva revolución industrial\nPreparación editorial\nUniversidad EAFIT \nUniversidad del Norte\nCarrera 49 No. 7 sur - 50 \nDirección de Investigación, Desarrollo e Innovación\nTel.: 261 95 23, Medellín \nKm. 5 Vía Puerto Colombia, Área Metropolitana de Barranquilla\ne-mail: publicaciones#eafit.edu.co \nTel.: 3509420\n \ne-mail: dip#uninorte.edu.co\nCorrección de textos y coordinación editorial: Cristian Suárez-Giraldo y Óscar Caicedo Alarcón\nDiseño de la colección y cubierta: leonardofernandezsuarez.com\nDiagramación: Ana Milena Gómez Correa \nMedellín, Colombia, 2020\nProhibida la reproducción total o parcial por cualquier medio sin la autorización escrita del titular de los \nderechos patrimoniales.\n__________________________________\nColombia y la nueva revolución industrial / Elías D. Niño-Ruiz…[et al]. – Medellín : \n Colombia. Ministerio de Ciencia Tecnología e Innovación, 2020\n 175 p. -- (Misión Internacional de Sabios 2019).\n \n ISBN: 978-958-5135-10-9 ; 978-958-5135-11-6\n1. Educación – Colombia. 2. Educación y desarrollo – Colombia. 3. Desarrollo científico y tecnológico – Colombia. I. Niño-Ruiz, Elias D. \nII. Noriega E., María del Pilar, pról. III. Mejía Arango, Juan Luis, pról. IV. Abello Llanos, Raimundo, pról. V. Tít. VI. Serie\n370.9861 cd 23 ed.\nC718\n Universidad Eafit- Centro Cultural Biblioteca Luis Echavarría Villegas\n___________________________________\n\n-----\nTomo 9\nCOLOMBIA \nY LA NUEVA \nREVOLUCIÓN \nINDUSTRIAL\n\n-----\nBiotecnología, Bioeconomía \ny Medio Ambiente\nSilvia Restrepo, coordinadora \nCristian Samper \nFederica di Palma (Reino Unido) \nElizabeth Hodson \nMabel Torres\nEsteban Manrique Reol (España) \nMichel Eddi (Francia) \nLudger Wessjohann (Alemania) \nGermán Poveda\nCiencias Básicas y del Espacio\nMoisés Wasserman Lerner, coordinador \nCarmenza Duque Beltrán \nSerge Haroche (Francia, premio Nobel) \nAna María Rey Ayala \nAntonio Julio Copete Villa\nCiencias Sociales y Desarrollo \nHumano con Equidad\nClemente Forero Pineda, coordinador \nAna María Arjona \nSara Victoria Alvarado Salgado \nWilliam Maloney (Estados Unidos) \nStanislas Dehaene (Francia) \nJohan Schot (Holanda) \nKyoo Sung Noh (Corea del Sur)\nCiencias de la Vida y la Salud\nJuan Manuel Anaya, coordinador \nNubia Muñoz \nIsabelle Magnin (Francia) \nRodolfo Llinás \nJorge Reynolds \nAlejandro Jadad\nEnergía Sostenible\nJuan Benavides, coordinador \nAngela Wilkinson (Reino Unido)\nEduardo Posada \nJosé Fernando Isaza\nIndustrias Creativas y Culturales \nEdgar Puentes, coordinador \nRamiro Osorio \nCamila Loboguerrero \nLina Paola Rodríguez Fernández \nCarlos Jacanamijoy \nAlfredo Zolezzi (Chile)\nOcéanos y Recursos Hidrobiológicos\nAndrés Franco, coordinador \nWeildler Antonio Guerra \nJorge Reynolds \nJuan Armando Sánchez \nSabrina Speich (Francia)\nTecnologías Convergentes Nano, \nInfo y Cogno Industrias 4.0\nMaría del Pilar Noriega, coordinadora \nJean Paul Allain \nTim Andreas Osswald \nOrlando Ayala\nCoordinador de coordinadores\nClemente Forero Pineda\nCOMISIONADOS\n\n-----\nBiotecnología, \nBioeconomía y \nMedio Ambiente\nSecretaría Técnica – \nUniversidad de los \nAndes, Vicerrectoría de \nInvestigación \nSilvia Restrepo \nMaría Fernanda Mideros\nClaudia Carolina Caballero \nLaguna\nGuy Henry \nRelator \nMartín Ramírez \nCiencias Básicas \ny del Espacio\nSecretaría Técnica – \nUniversidad Nacional de \nColombia\nJairo Alexis Rodríguez López\nHernando Guillermo \nGaitán Duarte\nLiliana Pulido Báez\nRelator\nDiego Alejandro Torres \nGalindo\nCiencias Sociales y \nDesarrollo Humano \ncon Equidad\nSecretaría Técnica – \nUniversidad del Rosario, \nEscuela de Ciencias \nHumanas \nStéphanie Lavaux \nCarlos Gustavo Patarroyo \nMaría Martínez \nRelatores\nJuliana Valdés Pereira \nEdgar Sánchez Cuevas \nPaula Juliana Guevara \nPosada\nCiencias de la \nVida y la Salud', 'El gerente de relaciones públicas de Riot Games para la región, Juan José Moreno, retrató el fenómeno de League of Legends en la industria gamer.</li>\n\n<li>Creadoras de contenido relevantes expusieron varios consejos a las mujeres que están interesadas en emprender este camino.</li>\n\n</ul></div><div class=" cid-616 aid-184215">\n\t\t\t<div class="figure cid-616 aid-184215 binary-foto_marquesina format-png"><img src="articles-184215_foto_marquesina.png" alt="" width="960" height="400"></div>\n<p>Con éxito finalizó el tercer y último día de Colombia 4.0, el evento que reunió a la industria creativa y TI, tanto de manera virtual como presencial durante tres días en Puerta de Oro, en Barranquilla.</p>\n<p>Durante la tercera jornada, los asistentes pudieron presenciar a diversos conferencistas expertos en temáticas como la transformación digital en los jóvenes, el futuro de la industria de los videojuegos, las nuevas maneras de aproximarse a las audiencias y la creación de contenido digital. Así mismo, tuvo lugar un nuevo Foro Misión TIC 2022.</p>\n<p>A continuación, los momentos más destacados del tercer día de Colombia 4.0:</p>\n<h3>El fenómeno League of Legends</h3>\n<p>Juan José Moreno, gerente de relaciones públicas de Riot Games para América Latina, aseguró, durante su participación en Colombia 4.0, que busca ser más que una empresa de videojuegos y crear una experiencia completa a sus jugadores. Así, detalló que en 2016 el juego contaba con más de 100 millones de jugadores activos mensuales y en 2019 alcanzaron 8 millones de jugadores que se conectaban diariamente a jugar partidas simultáneas en todo el mundo.</p>\n<p>Por eso, en 2019 lanzaron una colección de ropa en alianza con Louis Vuitton, además crearon KDA, un grupo virtual de pop de LoL que se compone de los personajes más populares del juego. Esto se dio como respuesta a la necesidad de los streamers de tener canciones sin copyright para sus transmisiones, por lo que lanzaron un disco con 37 canciones originales para que las personas puedan usarlas sin problema.</p>\n<h3>El análisis FODA de las industrias 4.0</h3>\n<p>Ximena Duque, presidenta de Fedesoft, e Iván Darío Castaño, director ejecutivo de Ruta N, desarrollaron un análisis de fortalezas, oportunidades, debilidades y amenazas de las industrias 4.0 en el país. Entre las oportunidades que tienen estas industrias ambos coincidieron en que el mercado entendió que es el momento de transformar sus negocios hacia lo digital. Castaño instó a las industrias 4.0 a que aprovechen este momento, puesto que, dijo, hoy en día se pueden hacer muchos negocios sin que la territorialidad sea un límite.</p>\n<p>Hablando de los aspectos por mejorar, Ximena Duque se refirió a que aún se debe seguir trabajando por el cierre de brechas sociales, al tiempo que Castaño afirmó que el bilingüismo es algo en lo que el país debe avanzar. Eso sí, recordó que cuando se trata de bilingüismo hoy en día es necesario pensar en idiomas diferentes al inglés.</p>\n<h3>Consejos para las creadoras de contenido digital</h3>\n<p>En el último día de Colombia 4.0, algunas de las creadoras de contenidos más influyentes del país dieron sus mejores consejos para aquellas personas que están empezando en las redes sociales y quieren triunfar en el mundo digital.</p>\n<p>La influenciadora Valentina Lizcano comentó que esos influenciadores que se dedican a mostrar vidas perfectas en las redes sociales o hacen contenido aspiracional, no aportan mucho, por eso, la honestidad y ser genuinos es lo que va a ayudar a crear comunidades realmente fieles y sólidas. "Las mujeres debemos dejar de hablarnos con mentiras. Como somos nos vemos lindas. Nuestra realidad tiene que estar alineada con tu contenido", afirmó la actriz.</p>\n<h3>Pódcast como nueva manera de formar comunidad</h3>\n<p>Una de las conversaciones al respecto giró en torno al pódcast, es decir aquellos contenidos de audio que se distribuyen a través de plataformas, y a cómo esta herramienta puede convertirse, incluso, en una fuente de ingresos o de fidelización de comunidades para las empresas.</p>\n<p>La conversación fue entre Mauricio Cabrera, creador de Story Baker, y Alejandro Vargas, gerente general de Podway, quienes coincidieron en que el podcasting ha logrado democratizar el audio para que haya otras ideas por fuera de lo tradicional ya que ahora cualquier ciudadano tiene las herramientas necesarias para ser un creador.</p>\n<h3>Nuevo Foro Misión TIC 2022</h3>\n<p>El tercer foro de Misión TIC contó con la presencia de destacados invitados del sector de la tecnología que despertaron el interés de los asistentes por el apasionante mundo de las tecnologías, donde se analizaron las perspectivas y el rol que juegan las mujeres en las industrias TI del país.</p>\n<p>La introducción y bienvenida estuvo a cargo de Dennis Palacios Directora (E) de Economía Digital del Ministerio TIC, quien explicó los beneficios de Misión TIC e hizo una especial invitación a todos los colombianos, <em>"Hago una cordial invitación a todos los niños jóvenes y adultos del país a que se inscriban en la última convocatoria de Misión TIC \'</em>La última tripulación\' que tiene 50 mil cupos gratis para aprender programación", expresó Palacios durante la apertura.', 'En Norte de Santander hay aproximadamente 650 empresas de base tecnológica registradas en la Cámara de Comercio de Cúcuta, estás desarrollan software, contenidos digitales, aplicaciones, marketing y comercialización virtual. El departamento se ha convertido en una plataforma de despegue para estas ideas de negocio y las cifras muestran que cada vez ganan más terreno.</p>\n\n<p>\n\t<strong>Según Procolombia, en una nota publicada en su página web, las exportaciones de las industrias 4.0 llegaron a 407,5 millones de dólares en 2018, un incremento del 33 % en comparación con 2017.</strong></p>\n\n<p>\n\tLa entidad encargada de la promoción de los productos y la industria nacional reportó que 337 empresas colombianas hicieron negocios en más de 60 destinos. Además, el principal comprador fue Estados Unidos con 177,7 millones de dólares.</p>\n\n<p>\n\t“El apetito de los compradores internacionales por los servicios de las Industrias 4.0 de Colombia (BPO, software, salud, audiovisuales y contenidos digitales, comunicación gráfica y editorial) sigue ampliándose con ritmo acelerado”, reseña la entidad.</p>\n\n<p>\n\t<strong>Al desagregar los productos y servicios que hacen parte de la oferta de estas empresas, resalta el liderazgo de las ventas de software, que aportaron 159,7 millones de dólares, seguido por BPO, con 103,9 millones; audiovisuales y contenidos digitales, con 82,8 millones; salud, con 57,4 millones y comunicación gráfica y editorial, con 3,5 millones de dólares.</strong></p>\n\n<p>\n\tJuliana Villegas, vicepresidente de Exportaciones de Procolombia, indicó que “las ventas del país se han ‘desconcentrado’, porque antes el 80 % de las exportaciones nacionales de estos productos provenía de Bogotá. Ahora, hay zonas que han ganado participación como Antioquia, Valle del Cauca, Santander y Norte de Santander”.</p>\n\n<p>\n\tEl año pasado, el 56,6 %, es decir 230,8 millones de dólares, de las exportaciones salieron de Bogotá. Antioquia aportó el 18,8 % y Valle del Cauca, el 12,5 %. Sin embargo, al analizar las ciudades se destacan los aumentos de 107 % de Pereira (5,8 millones de dólares), del 48 % de Cúcuta (420.000 dólares) y del 10 % de Barranquilla (11,5 millones de dólares).</p>\n\n<p>\n\tEn Norte de Santander cuatro empresas llevaron al extranjero sus productos de\xa0software, contenidos digitales y BPO, con Estados Unidos y México como destinos.\xa0Las exportaciones de software ascendieron a 420.346 dólares, los contenidos digitales produjeron 36.285 dólares y el BPO fue avaluado en 28.950 dólares.</p>\n\n<p>\n\t<strong>La diversificación de creadores y exportadores de este tipo de contenido benefician al país en el incremento de su oferta.</strong></p>\n\n<p>\n\tEstados Unidos es el mayor comprador de la tecnología nacional con el 43,6 % del total de las exportaciones (177,7 millones de dólares) y los productos llegan a San Francisco, Miami, Los Ángeles, Washington, Nueva York, Houston, Atlanta, Dallas y Chicago.</p>\n\n<p>\n\t<strong>Trabajo articulado regional</strong></p>\n\n<p>\n\tDesde el 2016 existía la iniciativa de la Cámara de Comercio de Cúcuta y la Universidad Francisco de Paula Santander (Ufps) de crear un clúster para las industrias de base tecnológica.</p>\n\n<p>\n\tSin embargo, sólo hasta el año pasado se logró la unión de 23 empresas para aunar esfuerzos en pro de mejorar la productividad y abrirse nuevos mercados.</p>\n\n<p>\n\t<strong>Beatriz Vélez, empresaria del sector, dijo que el sector se enfoca en software para el sector salud y de educación. “Estos son los subsectores a donde más están apuntando los desarrolladores del departamento”, indicó.</strong></p>\n\n<p>\n\tLa rentabilidad y poca inversión inicial que se necesita para crear estas empresas es uno de los beneficios más grandes del sector. “No se necesita una gran infraestructura, se puede trabajar desde el garaje de una casa, lo importante es tener buen equipo (computador) e internet”, explicó Vélez.</p>\n\n<p>\n\t<img alt="" height="370" src="/sites/default/files/2019/03/05/imagenes_adicionales/e5.jpg" width="640" /></p>\n\n<p>\n\t<em>23 empresas componen el clúster Nortic del departamento, con el objetivo de impulsar y fortalecer el sector.</em></p>\n\n<p>\n\tSin embargo, la empresaria destacó que el trabajo en equipo es vital para desarrollar el software que venden estas empresas. “En Cúcuta hay mano de obra semi calificada y económica, esto beneficia a las industrias 4.0 de la región”, agregó la empresaria.</p>\n\n<p>\n\t<strong>William Trillos, gerente de Gnosoft, resaltó que las industrias 4.0 hacen parte del cambio de los procesos tradicionales en las empresas colombianas. “En cualquier tipo de actividad económica se pueden aplicar los productos que genera el sector”, manifestó.</strong></p>\n\n<p>\n\tEl gerente de Gnosoft estudió ingeniería de sistemas en la Ufps, luego de trabajar en varias empresas tomó la decisión de crear la suya.\xa0</p>\n\n<p>\n\tDe esta forma, en el 2007 empezó el trabajo para que naciera Gnosoft, empresa que ofrece asesoramiento al sector educativo para la introducción efectiva de las TIC.</p>\n\n<p>\n\t<strong>“Iniciamos fracasando en la salud, luego empezamos a trabajar con la educación y nos dimos cuenta que podíamos cambiar vidas a través de la tecnología, mejorando los canales de comunicación y automatizando los procesos de este sector”, explicó Trillos.</strong></p>\n\n<p>\n\tHoy, a Gnosoft la componen 18 empleados entre ingenieros de sistemas, analistas de diseño gráfico y contadores. Gracias a Procolombia Trillos y su equipo recibieron un curso para desarrollar exportación, “desde Cúcuta podemos ofrecer el servicio a cualquier país del mundo en donde allá conexión a internet, eso es una ventaja”, agregó el empresario.</p>\n\n<p>\n\t<img alt="" height="370" src="/sites/default/files/2019/03/05/imagenes_adicionales/e6.jpg" width="640" /></p>\n\n<p>\n\tOtra empresa que está entrando en el sector es Insegroup. Yordan Mantilla, uno de sus líderes, señaló que actualmente se desarrollan en el mercado eléctrico y en sus proyectos de automatización requieren nuevas tecnologías de las comunicaciones.</p>\n\n<p>\n\t“Enfocamos el desarrollo del concepto de ciudades inteligentes, creando soluciones para la cuantificación de variables ambientales. Otro proyecto es (T-Cyborg) que busca integrar el análisis de los sonidos de las ciudades para entender cómo percibe e interpreta su ciudad una persona ciega”, explicó Mantilla.</p>\n\n<p>\n\tInsegroup tiene una unidad de negocio que busca desarrollar los pilotos de sus proyectos en Cúcuta, para poner en práctica su oferta de servicios y ofrecerla a mediano plazo a nivel mundial.</p>\n\n<p>\n\t<strong>“Dentro de la validación del T-Cyborg, Latinoamérica y Centroamérica mostraron tener un potencial enorme para acceder a esa tecnología, la cual es de punta e innovadora”, indicó el empresario.</strong></p>\n\n<p>\n\tCamilo Puello, cofundador de Just Sapiens, convirtió una idea de negocio digital nacida en 2013, en una empresa. Hoy, su iniciativa se ha vendido a nivel regional y nacional.</p>\n\n<p>\n\t“En un par de meses buscamos vender la idea a nivel internacional, en el departamento hemos vendido el servicio a 35 abogados y a entidades públicas. En el país hemos llegado a Neiva, Santa Marta y Bogotá”, explicó Puello.</p>\n\n<p>\n\tA través del clúster se están desarrollando estrategias para enfocar a las empresas en segmentos de mercado con baja ocupación, donde la región con su portafolio de servicio puede apoyar en la generación de alto valor agregado con soluciones TIC.</p>\n\n<p>\n\t<strong>Vitrina internacional</strong></p>\n\n<p>\n\tUna delegación de cerca de 30 empresas colombianas, en las que no se incluía empresas nortesantandereanas, generó en el Mobile World Congress 2019, llevado a cabo en Barcelona, ventas por cerca de 2 millones de euros y expectativas de negocio de cerca de 50 millones de euros.</p>\n\n<p>\n\tProcolombia reseñó esta información en su página web, donde se aseguró que Colombia despuntó en Barcelona siendo la delegación Latinoamericana más grande.</p>\n\n<p>\n\tLa presidenta de Procolombia, Flavia Santoro manifestó que “el Mobile World Congress fue una gran oportunidad para mostrarle al mundo el valor agregado de las industrias 4.0 del país”.']
I want to remove every '\n' that is on the list because when I remove the special characters ("[\W]+"), some words, for example like "\nNUEVA" or "\nINDUSTRIAL", end up with an 'n' before the word ("nNUEVA" o nINDUSTRIAL"). What I need is to remove the 'break line' form each word of each text on the list, even if it is at the beggining, the end or between words.
I have tried:
lista_1 = []
lista_2 =[]
for it in info:
for q in it:
if q[0:2] != '\n':
lista_1.append(it)
else:
lista_2.append(it[2:])
and then:
new_list = lista_1 + lista_2
new_list
but I am getting: "memory error"
Does somebody knows how can I overcome this problem? or any other code I could use?
Thank you so much!
You can use list comprehension:
info = [i.replace("\n", "") for i in info]
You can use a generator comprehension and then join each entries of the list by a separator character, sep, I choose an empty string.
sep = '' # choose the separator character
text = sep.join(s.replace('\n', '') for s in info)

Who can i do this? object too deep for desired array

who are yours?...sorry for my english translate but im from Spain, and my english is very bad, sorry.
Im trying to make a program for my class of Computational Physical Programmation. I need to study the position and the velocity of 2-phase rocket, changing the % of gas of the first phase(it, obviously, change the % of 2 phase gas,Masa1= mass of 1phase, Masa 2= mass of 2phase). Changing the gas, change the time of fly. I wish to put all data whit odeint like this:
from numpy import * #importamos todo lo que
from scipy.integrate import odeint #podamos necesitar a lo largo
import matplotlib.pyplot as plt #del programa
#funciones
def funder (M,t,u,D,m0): #funcion para calcular luego
'''funcion derivada''' #la integral de la funcion
y, v=M[0],M[1]
return array([v,u*D/(m0-(D*t))])
#constantes
ni=100 #numero de intervalos
#cohete de una fase
#Datos propuestos en el enunciado para una primera prueba
D=13840. #Kg/s cantidad de combustible que se quema por segundo
m0=2.85e6 #Kg masa total inicial
u=2.46 #km/s velocidad de salida de los gases
r=0.05 #proporcion de la masa recipiente
mu=0.47*m0 #masa util
mc=(m0-mu)/(1+r) #masa combustible
t0=mc/D #tiempo que tarda en quemar el cobustible en una etapa
#condiciones iniciales
y0, v0 =0, 0 #posicion y velocidades iniciales igual
ListaPorce=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9] #lista de #porcentajes,luego se convertira
#en un array
Intervalos=[] #lista con los #intervalos de tiempo de los
#distintos porcentajes de combustible
for i in ListaPorce: #para los i en ListaPorce, haz:
Combustible=mc*i #multiplicara los indices por #el combustible
#asi sabemos que cantidad de #combustible para cada porcentaje
tempo=linspace(0,(Combustible/D),ni) #tempo es el array de tiempos #para cada porcentaje de combustible
Intervalos.append(tempo) #añade tempo a la lista #Intervalos, que luego sera un array
Duracion=array(Intervalos) #convertimos la lista #Intervalos al array Duracion
Porcentaje=array(ListaPorce) #convertimos la lista #ListaPorce al array Porcentaje
Usado=mc*Porcentaje
masa1=mu+(1+r)*Usado #masa de la fase 1
masa1.shape=(masa1.size,1)
masa2=mu+(1+r)*(mc-Usado) #masa de la fase 2
Comparacion01=odeint(funder,array([y0,v0]),Duracion, args=(u,D,masa1))
print Comparacion01
But when i make run, the program say me:
Traceback (most recent call last):
File "Trabajo IFC.py", line 278, in <module>
Comparacion01=odeint(funder,array([y0,v0]),Duracion, args=(u,D,masa1))
File "/usr/lib/python2.7/dist-packages/scipy/integrate/odepack.py", line 144, in odeint
ixpr, mxstep, mxhnil, mxordn, mxords)
ValueError: object too deep for desired array
The error is for use a non 1D array for odeint, true?. Who i can do that?
i wish to have a "mega-array"(Comparacion01) like [%,times,position,velocity]
Who i can do that? need to change the funcion "funder"
thanks a lot for all users. i will continue trying...

How to format the content of any .txt file in one line by removing \n with Python?

Just a quick question guys... I would like to recover the content of a formatted .txt file in one line. for instance consider the following content of a .txt file:
Me encanta todos los electrodomésticos LG, ya que últimamente se han actualizado en un 200% en tecnología de punta respecto de las demás marcas que lo aventajaban antiguamente, sus repuestos son fáciles de encontrar en caso de defectos y mas económicos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que reúne las dos grandes funciones, lavar y secar en un sólo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y además no es ruidosa, se las recomiendo a todos.
Además, posee una gran característica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar sólo las que desees, por ejemplo si es quires sólo lavar, se programa para esa función en específico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.
I would like to recover it in one line like this:
Me encanta todos los electrodomésticos LG, ya que últimamente se han actualizado en un 200% en tecnología de punta respecto de las demás marcas que lo aventajaban antiguamente, sus repuestos son fáciles de encontrar en caso de defectos y mas económicos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que reúne las dos grandes funciones, lavar y secar en un sólo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y además no es ruidosa, se las recomiendo a todos. Además, posee una gran característica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar sólo las que desees, por ejemplo si es quires sólo lavar, se programa para esa función en específico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.
So far I tried this:
with open('/path/test_text.txt', 'r') as content_file:
content1 = content_file.read().splitlines()
print content1
Then, this is the output:
['Me encanta todos los electrodom\xc3\xa9sticos LG, ya que \xc3\xbaltimamente se han actualizado en un 200% en tecnolog\xc3\xada de punta respecto de las dem\xc3\xa1s marcas que lo aventajaban antiguamente, sus repuestos son f\xc3\xa1ciles de encontrar en caso de defectos y mas econ\xc3\xb3micos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que re\xc3\xbane las dos grandes funciones, lavar y secar en un s\xc3\xb3lo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y adem\xc3\xa1s no es ruidosa, se las recomiendo a todos.', 'Adem\xc3\xa1s, posee una gran caracter\xc3\xadstica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar s\xc3\xb3lo las que desees, por ejemplo si es quires s\xc3\xb3lo lavar, se programa para esa funci\xc3\xb3n en espec\xc3\xadfico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.']
The issue with the above code is that I get a comma separation from the newline: se las recomiendo a todos.', 'Adem\xc3\xa1s,. Is there any way to remove this type of special characters from the output?
Thanks in advance guys.
Try using join.
with open('/path/to/file') as f:
string = f.read().splitlines()
oneline = ''.join(string)
# do something with oneline
What you have is a list of values, where each value is a line. By joining them with no separator, you can get your one-line file.

How to stem a list of words in spanish with nltk?

How can i stem all spanish words in the following list with nltk snowballstemer?. This is what i tried:
# coding=utf-8
from sklearn.feature_extraction.text import CountVectorizer
import nltk.stem
vectorizer= CountVectorizer(min_df=1)
opinion = ["""
Hola compis!
No sabÌa como se ponÌa una lavadora hasta que conocÌ
esta y es que es muy sencilla de utilizar! Todo un gustazo
cuando estamos aprendiendo para emanciparnos, que si nos
ponen facilidad con las tareas de la casa pues mejor que mejor.
Antes de esta tenÌamos otra de la marca Otsein, de estas
que van incluidas en el mobiliario y adem·s era de carga superior,
pero tan antigua que seg˙n mi madre, nadie la podÌa tocar porque
solo la entendÌa ella.
Esta es de la marca Aeg y dentro de este tipo de lavadoras de
esta marca las habÌa m·s caras o m·s baratas y est· digamos que
est· en el punto medio. Es de color blanco y tiene carga frontal,
con una capacidad de 6kg. En casa a pesar de ser cuatro,
se ponen lavadoras casi todos o todos los dÌas.
En su parte de arriba encontramos la ";zona de mandos";,
donde se puede echar el detergente, aunque en nuestro caso
lo al ser gel lo ponemos directamente junto con la ropa.
Luego tiene la rueda para elegir el programa y los intermitentes
que indican en que paso del programa estaba.
Como todas tiene programas m·s cortos y m·s largos, incluso
un programa que seria como lavar a mano y otro ideal para
estores, que salen casi secos y planchaditos para colgar y
ya est·. Es muy f·cil de aprenderla y adem·s tiene indicador
por sonido de cuando acaba, lista para abrir y tender.
Saludillos!
"""]
spanish_stemmer = nltk.stem.SnowballStemmer('spanish')
print "\n these are the stems of opinion",
opinion = [[spanish_stemmer(word) for word in sentence.split(" ")]for sentence in opinion]
the problem with that aproach is the following this is the output:
Traceback (most recent call last):
these are the stems of opinion
File "/Users/user/PycharmProjects/untitled/prueba stem.py", line 47, in <module>
opinion = [[spanish_stemmer(word) for word in sentence.split(" ")]for sentence in opinion]
TypeError: 'SnowballStemmer' object is not callable
How can i return the list of stems given the list (opinion)? and how to lowercase the complete opinion?
>>> from nltk import word_tokenize
>>> from nltk.stem import SnowballStemmer
>>> stemmer = SnowballStemmer('spanish')
>>>
>>> stemmer.stem('cuando')
u'cuand'
>>> stemmer.stem('apprenderla')
u'apprend'
>>>
>>> text = 'En su parte de arriba encontramos la ";zona de mandos";, donde se puede echar el detergente, aunque en nuestro caso lo al ser gel lo ponemos directamente junto con la ropa.'
>>> stemmed_text = [stemmer.stem(i) for i in word_tokenize(text)]
>>> stemmed_text
[u'en', u'su', u'part', u'de', u'arrib', u'encontr', u'la', u'``', u';', u'zon', u'de', u'mand', u"''", u';', u',', u'dond', u'se', u'pued', u'echar', u'el', u'detergent', u',', u'aunqu', u'en', u'nuestr', u'cas', u'lo', u'al', u'ser', u'gel', u'lo', u'pon', u'direct', u'junt', u'con', u'la', u'rop', u'.']
Try to change last line to this:
...
opinion = [[spanish_stemmer.stem(word) for word in sentence.split(" ")]for sentence in opinion]
...

Categories

Resources