ValueError: форма переданных значений - это бла, индексы - бла

Я пытаюсь сделать POS-теги к списку предложений на бахаса, Индонезия, с помощью Flair https://github.com/flairNLP/flair

В результате list, имя pos:

['Sejarah <NOUN> perkembangan <NOUN> ilmu <NOUN> ekonomi <NOUN> Adam <PROPN> Smith <PROPN> sering <ADV> disebut <VERB> sebagai <ADP> yang <PRON> pertama <NUM> mengembangkan <VERB> ilmu <NOUN> ekonomi <NOUN> pada <ADP> abad <NOUN> 18 <NUM> sebagai <ADP> satu <DET> cabang <NOUN> tersiri <NOUN> dalam <ADP> ilmu <NOUN> pengetahuan <NOUN>', 'Melalui <ADP> karya <NOUN> besarnya <NOUN> General <PROPN> Theory <PROPN> Employment <PROPN> Interest <PROPN> and <PROPN> Money <PROPN> yang <PRON> menyatakan <VERB> bahwa <SCONJ> pasar <NOUN> tidak <PART> selalu <ADV> mampu <ADV> menciptakan <VERB> keseimbangan <NOUN> dan <CCONJ> karena <SCONJ> itu <DET> intervensi <NOUN> pemerintah <NOUN> harus <ADV> dilakukan <VERB> agar <SCONJ> distribusi <NOUN> ber <VERB> daya <NOUN> mencapai <VERB> sasarannya <NOUN>']

Я хочу преобразовать этот список в фрейм данных, например:

                     Text      Label
0                 Sejarah     NOUN
1            perkembangan     NOUN
2                    ilmu     NOUN
3                 ekonomi     NOUN
4                    Adam     PROPN
5                   Smith     PROPN
6                  sering     ADV
7                 disebut     VERB
8                 sebagai     ADP 
9                    yang     PRON 
10                pertama     NUM
...                   ...     ...
...                   ...     ...

Я пытался:

df = pd.DataFrame(pos, columns=['Text', 'Label'])

Но у меня такая ошибка:

ValueError: Shape of passed values is (6921, 1), indices imply (6921, 2)

Что не так с моим кодом?

1 ответ

Ты можешь сделать:

# convert string to list
d = d[0].split()

# create dataframe
df = pd.DataFrame(zip(d[::2], d[1::2]), columns=['Text', 'Label']) 

# modify label col
df['Label'] = df['Label'].str.replace('\W','').str.strip()

print(df)

             Text  Label
0         Sejarah   NOUN
1    perkembangan   NOUN
2            ilmu   NOUN
3         ekonomi   NOUN
4            Adam  PROPN
5           Smith  PROPN
6          sering    ADV
7         disebut   VERB
8         sebagai    ADP
9            yang   PRON
10        pertama    NUM
11  mengembangkan   VERB
12           ilmu   NOUN
13        ekonomi   NOUN
14           pada    ADP
15           abad   NOUN
16             18    NUM
17        sebagai    ADP
18           satu    DET
19         cabang   NOUN
20        tersiri   NOUN
21          dalam    ADP
22           ilmu   NOUN
23    pengetahuan   NOUN

Для списка строк вы можете:

# d is list of strings
d = [x.split() for x in d]

df = pd.concat([pd.DataFrame(zip(x[::2], x[1::2]), columns=['Text', 'Label']) for x in d], ignore_index=True)
Другие вопросы по тегам