Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] challenge datainsider part-4 Junción de Tablas y Análisis Exploratorio extra!

Para afrontar esta parte del desafío Trata de localizar los nombres de las empresas que aparecen en la lista de Fortune que no tuvieron correspondiente con la lista de Forbes utilicé la librería de python fuzzywuzzy, haciendo un análisis de coincidencia de strings de los dos datasets: Fortune y Forbes por año. Mi pregunta es si hay otro modo de afrontar esta parte del desafío, ya que esta solución que encontré me consumió bastante tiempo. Muchas gracias!

2 respuestas

Hola Oscar,

¡Gracias por tu pregunta! Entiendo que utilizar la librería fuzzywuzzy en Python para realizar un análisis de coincidencia de strings entre los datasets de Fortune y Forbes te llevó bastante tiempo. Sin embargo, existen otras formas de abordar este desafío sin necesidad de utilizar esa librería.

Una posible alternativa sería utilizar técnicas de procesamiento de lenguaje natural (NLP, por sus siglas en inglés) para comparar los nombres de las empresas en ambos datasets. Podrías utilizar la librería NLTK en Python para realizar este tipo de análisis. Por ejemplo, podrías utilizar el algoritmo de comparación de strings de Jaccard para calcular la similitud entre los nombres de las empresas en ambos datasets.

Aquí tienes un ejemplo de cómo podrías implementar esto utilizando NLTK:

from nltk.metrics import jaccard_distance

def find_non_matching_companies(fortune_companies, forbes_companies):
    non_matching_companies = []
    for fortune_company in fortune_companies:
        matching = False
        for forbes_company in forbes_companies:
            similarity = 1 - jaccard_distance(set(fortune_company), set(forbes_company))
            if similarity > 0.8:  # Ajusta este umbral según tus necesidades
                matching = True
                break
        if not matching:
            non_matching_companies.append(fortune_company)
    return non_matching_companies

# Ejemplo de uso
fortune_companies = ['Apple Inc.', 'Microsoft Corporation', 'Amazon.com, Inc.']
forbes_companies = ['Apple Incorporated', 'Microsoft Corp', 'Tesla, Inc.']

non_matching = find_non_matching_companies(fortune_companies, forbes_companies)
print(non_matching)  # ['Amazon.com, Inc.']

Este es solo un ejemplo básico y deberías adaptarlo a tus necesidades específicas. Recuerda ajustar el umbral de similitud según tus necesidades y los datos con los que estás trabajando.

Espero que esta alternativa te sea útil y te ayude a ahorrar tiempo en tu desafío. Si tienes alguna otra pregunta, ¡no dudes en preguntar!

¡Espero haber ayudado y buenos estudios!

Hola Mariana,

te agradezco mucho por la respuesta que me ofreciste. Desconocía totalmente el uso de técnicas de procesamiento de lenguaje natural. Gracias por sugerirme esta posibilidad a través de un ejemplo concreto!

muchas gracias!