【问题标题】:ValueError: Shape of passed values is blah, indices imply blahValueError:传递值的形状是 blah,索引意味着 blah
【发布时间】:2020-08-28 07:36:22
【问题描述】:

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

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

我的代码有什么问题?

【问题讨论】:

    标签: python pandas list pos-tagger flair


    【解决方案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)
    

    【讨论】:

    • 如果我想处理整个列表?不只是 d[0]?
    猜你喜欢
    • 2015-02-27
    • 2013-11-06
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2023-03-12
    • 2022-07-08
    • 2020-11-09
    相关资源
    最近更新 更多