如何解决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 举报,一经查实,本站将立刻删除。