Error con las etiquetas de recuento (nltk) en la columna del marco de datos.
Extrayendo la definición de diferentes palabras en cada oración
texto = data[‘OmschrijvingSkillwithoutstopwords’].tolist()
textos etiquetados = pos_tagsents(map(word_tokenize, texto))
data[‘pos’] = pos_tagsents(data[‘OmschrijvingSkillwithoutstopwords’].apply(word_tokenize).tolist())
data[‘Nombres’] = data[‘pos’].apply(lambda row: [i[0] for i in row if i[1] == ‘NN’])
data[‘Verbos’] = data[‘pos’].apply(lambda row: [i[0] for i in row if i[1] == ‘VB’])
data[‘Adj’] = data[‘pos’].apply(lambda row: [i[0] for i in row if i[1] == ‘JJ’])
data[‘NOUN Plural’] = data[‘pos’].apply(lambda row: [i[0] for i in row if i[1] == ‘NNS’])
data[‘OmschrijvingSkillwithoutstopwords’] = data[‘OmschrijvingSkillwithoutstopwords’].astype(str)
data[‘OmschrijvingSkillwithoutstopwords’] = data[‘OmschrijvingSkillwithoutstopwords’].str.split(“t”, n=1, expand=True)
La salida es
0 [(beschikbaarheid, NN), (mili, NN)]
1 [(par, NN)]
2 [(opera, NN)]
3 [(mili, NN)]
4 [(opera, NN)]
...
4696 [(on, IN)]
4697 [(veiligheidssys, NN)]
4698 []
4699 [(a, DT)]
4700 [(a, DT)]
Name: pos, Length: 4701, dtype: object
Quiero contar desde data['pos']
cuántos sustantivos, verbos, etc. tengo, por lo que quiero tener una salida:
('NN':3, 'DT':2)
Intenté el siguiente código:
Counter([j for i, j in pos_tag(word_tokenize(tagged_text))])
pero obtuve un error:
TypeError: 'function' object is not iterable
Tengo la idea de que debido a que tengo una lista, no puedo usar Counter.
Intenté convertir data['OmschrijvingSkillwithout_stopwords']
en un diccionario, pero no funcionó. ¿Alguien puede ayudarme a contar mis etiquetas para saber cuántas etiquetas tengo?
Gracias
davy.ai
Para contar las etiquetas en
data['pos']
, puedes usar la funciónCounter
junto con una comprensión de lista anidada para extraer las etiquetas de la lista de tuplas en cada fila:Esto mostrará la cantidad de etiquetas para todas las etiquetas en
data['pos']
, sin importar si son sustantivos, verbos, etc.Si solo quieres contar etiquetas específicas, puedes usar un enfoque similar pero filtrar las etiquetas que deseas:
Esto mostrará la cantidad de cada una de las etiquetas especificadas.