微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ValueError:传递的值的形状是blah,索引暗示是blah

如何解决ValueError:传递的值的形状是blah,索引暗示是blah

我尝试使用Flair https://github.com/flairNLP/flair对印度尼西亚语中的句子列表进行POS标记

结果为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)

我的代码怎么了?

解决方法

您可以这样做:

# 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]),'Label']) for x in d],ignore_index=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。