Счетчик объектов до Pandas DataFrame - включает только первый регистр - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь преобразовать список объектов Counter в Dataframe. Допустим, у меня есть следующий счетчик:

Counter({''VERB': 19, 'PRON': 15, 'NOUN': 13, '.': 9, 'ADP': 9, 'DET': 7, 'ADJ': 4, 'PRT': 4, 'CONJ': 3, 'ADV': 3, 'NUM': 2, 'x': 0})
Counter({''VERB': 14, 'NOUN': 9, 'ADV': 8, 'PRON': 8, 'ADJ': 7, '.': 6, 'CONJ': 4, 'DET': 3, 'ADP': 3, 'PRT': 2, 'x': 0, 'NUM': 0})

Я хочу преобразовать это в pandas Dataframe. Однако при попытке сделать это он включает в себя только первый объект Counter и, таким образом, не перебирает другой объект (или остальную часть документа с другими объектами Counter).

index   NOUN    VERB    ADJ .   ADP PRON    DET CONJ    ADV PRT NUM x
0       13      19      4   9   9   15      7   3       3   4   2   0

Ниже вы можете найти мой использованный скрипт. Я предполагаю, что пропускаю маленькую деталь, но, кажется, скучаю по ней.

import nltk
import pandas as pd

for line in lines:
    tokens = nltk.word_tokenize(line)
    tagged = nltk.pos_tag(tokens, tagset='universal')
    selective_tagged = ['ADJ','ADP','ADV','CONJ','DET','NOUN','NUM','PRT','PRON','VERB', '.', 'x']
    selective_tagged_words =[]
    for word,tag in tagged:
        if tag in selective_tagged:
            selective_tagged_words.append((word,tag))
    counts=Counter(tag for word,tag in selective_tagged_words)
    other_tags = set(selective_tagged)-set(counts)
    for i in other_tags:
        counts[i]=0
    df = pd.DataFrame.from_dict(counts, orient='index').reset_index()   
    df = df.T 
    postag.append(counts)

Заранее спасибо!

...