NLP usando NLTK tomar la unión entre la lista tokenizada y el archivo csv
mast_dict = pd.read_csv('C:/Users/ZAM/Desktop/LoughranMcDonald_MasterDictionary_2018.csv')
stop_words = set(stopwords.words('english'))
#print(stopwords.words('english'))
filtered_text = []
with open('C:/Users/ZAM/Downloads/HEURO/file0.txt') as fin:
tokens = word_tokenize(fin.read())
for r in words:
if not r in stop_words:
filtered_text.append(r)
filtered_text = [''.join(c for c in s if c not in string.punctuation) for s in filtered_text]
filtered_text = [x for x in filtered_text if not (x.isdigit())]
print(filtered_text)
Output
['BEGIN', 'PRIVACYENHANCED', 'MESSAGE', 'ProcType', '2001MICCLEAR', 'OriginatorName', 'webmasterwwwsecgov', 'OriginatorKeyAsymmetric', 'MFgwCgYEVQgBAQICAf8DSgAwRwJAW2sNKK9AVtBzYZmr6aGjlWyK3XmZv3dTINen', 'TWSM7vrzLADbmYQaionwg5sDW3P6oaM5D3tdezXMm7z1TBtwIDAQAB', 'MICInfo', 'RSAMD5RSA', 'RHiO0hkbOslk2iB2eQM8lSgcXyjFKRha0FtFBz3xsf7Z6kKaWhrhStjKFZUvWZf', 'eDg67b8ZljTBWxC8ybQfg', ...]
El mast_dict
variable contiene alrededor de 86K palabras en inglés con puntajes positivos, puntuaciones negativas, puntajes de polaridad, etc.
Quiero hacer una articulación entre el filtered_text
lista que contiene palabras tokenizadas como se muestra en mast_dict
archivo CSV para que pueda obtener las puntuaciones de las palabras tokenizadas en filtered_text
lista.
Avísame. ¡Gracias!
Pregunta hecha hace 3 años, 4 meses, 28 días - Por syntaxsculptor
2 Respuestas:
-
Para asociar las palabras tokenizadas en la lista
filtered_text
con las puntuaciones del archivo CSVmast_dict
, puedes seguir los siguientes pasos:- Primero, carga el archivo CSV `mast_dict` en un DataFrame de pandas.
- Recorre la lista `filtered_text` y para cada palabra verifica si se encuentra en el DataFrame cargado previamente y, en caso afirmativo, obtén las puntuaciones correspondientes.
- Puedes almacenar las palabras con sus puntuaciones en un diccionario para que puedas acceder fácilmente a ellas.
Aquí te dejo un ejemplo de cómo podrías hacerlo:
python import pandas as pd from nltk.corpus import stopwords from nltk.tokenize import word_tokenize import string
Cargar el archivo CSV en un DataFrame
mast_dict = pd.read_csv('C:/Users/ZAM/Desktop/LoughranMcDonald_MasterDictionary_2018.csv')Tokenizar el archivo de texto
stop_words = set(stopwords.words('english')) filtered_text = [] with open('C:/Users/ZAM/Downloads/HEURO/file0.txt') as fin: tokens = word_tokenize(fin.read()) for word in tokens: if word.lower() not in stop_words and word.isalpha(): filtered_text.append(word.lower())Crear un diccionario para almacenar las palabras y sus puntuaciones
word_scores = {} for word in filtered_text: if word in mast_dict['Word'].values: row = mast_dict[mast_dict['Word'] == word] word_scores[word] = {'Positive': row['Positive'].values[0], 'Negative': row['Negative'].values[0]}Imprimir las palabras y sus puntuaciones
for word, score in word_scores.items(): print(f'{word}: Positive = {score["Positive"]}, Negative = {score["Negative"]}')Este código te permitirá asociar las palabras tokenizadas en
filtered_text
con sus puntuaciones del archivo CSVmast_dict
. Puedes adaptarlo según tus necesidades específicas. ¡Espero que te sea útil!Respondida el Dec 18, 2020 a las 14:15 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para unir la lista tokenizada (
filtered_text
) con el archivo CSV (mast_dict
) y obtener las puntuaciones de las palabras tokenizadas, puedes usar el siguiente código:python import pandas as pd
Leer el archivo CSV
mast_dict = pd.read_csv('C:/Users/ZAM/Desktop/LoughranMcDonald_MasterDictionary_2018.csv')Obtener la lista de palabras del archivo CSV
mast_dict_words = list(mast_dict['Word'].values)Crear un conjunto de palabras del archivo CSV
mast_dict_set = set(mast_dict_words)Crear un conjunto de palabras de la lista tokenizada
filtered_text_set = set(filtered_text)Obtener la intersección de los dos conjuntos (unión)
intersection = filtered_text_set.intersection(mast_dict_set)Obtener las puntuaciones de las palabras en la intersección
scores = [] for word in intersection: score = mast_dict[mast_dict['Word'] == word]['Positive Score'].values[0] scores.append(score)Imprimir las puntuaciones
print(scores)Este código creará un conjunto de palabras del archivo CSV y un conjunto de palabras de la lista tokenizada. Luego, obtendrá la intersección de los dos conjuntos, que representa las palabras que aparecen en ambas listas. Finalmente, iterará sobre las palabras de la intersección y obtendrá sus puntuaciones del archivo CSV.
Respondida el Dec 18, 2020 a las 14:28 - por Gemini
Votos positivos: 0 | Votos negativos: 0