SEACrowd / seacrowd-datahub

A collaborative project to collect datasets in SEA languages, SEA regions, or SEA cultures.
Apache License 2.0
57 stars 54 forks source link

Create dataset loader for VIMQA #576

Closed SamuelCahyawijaya closed 1 month ago

SamuelCahyawijaya commented 3 months ago

Dataloader name: vimqa/vimqa.py DataCatalogue: http://seacrowd.github.io/seacrowd-catalogue/card.html?vimqa

Dataset vimqa
Description VIMQA, a new Vietnamese dataset with over 10,000 Wikipedia-based multi-hop question-answer pairs.
Subsets -
Languages vie
Tasks Question Answering
License Unknown (unknown)
Homepage https://github.com/vimqa/vimqa
HF URL -
Paper URL https://aclanthology.org/2022.lrec-1.700/
chenxwh commented 3 months ago

self-assign

chenxwh commented 3 months ago

I need some help with the dataset features @holylovenia I have now:

features = datasets.Features(
      {
          "_id": datasets.Value("string"),
          "question": datasets.Value("string"),
          "answer": datasets.Value("string"),
          "context": datasets.Sequence([datasets.Value("string"), [datasets.Value("string")]]),
          "type": datasets.Value("string"),
          "supporting_facts": datasets.Sequence([datasets.Value("string"), datasets.Value("int32")]),
      }
  )

but the context and supporting_facts features have error: raise ValueError("When defining list feature, you should just provide one example of the inner type")

What should be correct feature type? Thank you!

holylovenia commented 3 months ago

I need some help with the dataset features @holylovenia I have now:

features = datasets.Features(
      {
          "_id": datasets.Value("string"),
          "question": datasets.Value("string"),
          "answer": datasets.Value("string"),
          "context": datasets.Sequence([datasets.Value("string"), [datasets.Value("string")]]),
          "type": datasets.Value("string"),
          "supporting_facts": datasets.Sequence([datasets.Value("string"), datasets.Value("int32")]),
      }
  )

but the context and supporting_facts features have error: raise ValueError("When defining list feature, you should just provide one example of the inner type")

What should be correct feature type? Thank you!

Hi @chenxwh! It might be due to the list inside datasets.Sequence(...). Could you please try making it datasets.Sequence(datasets.Sequence(...)) or datasets.Sequence((...)) (tuple) and see if the error persists?

chenxwh commented 3 months ago

hi @holylovenia,

I tried Sequence before [], same issue. It sounds more like you only can have one "level" inside Sequence, like it's a sequence of str or int. But the raw data is complicated, see below (list of tuple of list):

{'_id': '8032a180-d664-435e-8feb-45ccfc64d984',
 'question': 'Ca sĩ nào đã có Mark Ronson sản xuất album sinh năm 1983?',
 'answer': 'Amy Winehouse',
 'context': [['Mi Reflejo',
   ['Mi Reflejo là album phòng thu thứ hai và là album tiếng Tây Ban Nha đầu tiên của nữ ca sĩ nhạc pop người Mỹ Christina Aguilera.',
    'Album được phát hành vào ngày 12 tháng 9 tại Mỹ bởi hãng BMG U.S. Latin.',
    'Sau thành công của album đầu tay, Christina Aguilera (1999), Christina bắt đầu nghĩ tới việc thu âm album tiếp theo trong năm 2000.',
    'Album Mi Reflejo bao gồm 5 ca khúc từ album đầu tay nhưng được viết lại bằng tiếng Tây Ban Nha, 4 ca khúc mới và 2 ca khúc cover (hát lại).',
    'Các bài hát trong album được tập hợp và viết bởi nhạc sĩ kiêm nhà sản xuất Mi Reflejo Rudy Pérez.']],
  ['Glen Ballard',
   ['Basil Glen Ballard Jr. (sinh ngày 1 tháng 5 năm 1953) là một người viết bài hát, người viết lời bài hát, và nhà sản xuất thu âm người Mỹ.',
    'Ông được biết đến nhiều nhất qua việc đồng sáng tác và sản xuất album Jagged Little Pill phát hành năm 1995 của Alanis Morissette.',
    'Album này đã thắng hai giải Grammy ở hạng mục Album rock xuất sắc nhất và Album của năm, và được Rolling Stone xếp vào danh sách 500 album vĩ đại nhất mọi thời đại.',
    'Ông cũng nổi tiếng nhờ cộng tác với nhà soạn nhạc Alan Silvestri.',
    'Ông đã tham gia quá trình ghi âm và viết nhạc cho hai album Thriller và Bad của Michael Jackson.',
    'Với tư cách là một người viết nhạc, ông đã đồng sáng tác nhiều bài hát trong đó có "Man in the Mirror" (1987) và "Hand in My Pocket" (1995).',
    'Ông là người sáng lập công ty Java Records.',
    'Ông đã thắng giải Grammy cho Ca khúc nhạc phim hay nhất tại lễ trao giải Grammy năm 2006 cho ca khúc "Believe" (The Polar Express).',
    'Năm 2011, ông thành lập công ty sản xuất riêng có tên là Augury, một xưởng sản xuất tại Hollywood tập trung vào phát triển những dự án âm nhạc trong các bộ phim, trên truyền hình và trong nhà hát.']],
  ['Bruno Mars',
   ['Peter Gene Hernandez (sinh 8 tháng 10 năm 1985), được biết đến với nghệ danh Bruno Mars, là một ca sĩ-nhạc sĩ và nhà sản xuất thu âm người Mỹ.',
    'Mars lớn lên trong một gia đình nghệ sĩ ở Honolulu, Hawaii và anh đã bắt đầu ca hát từ khi còn nhỏ.',
    'Sau khi biểu diễn nhiều nơi ở quê nhà quê anh thời niên thiếu, anh quyết định theo đuổi sự nghiệp ca hát.',
    'Anh đã bắt đầu sản xuất bài hát cho các nghệ sĩ khác, tham gia nhóm sản xuất The Smeezingtons.']],
  ['Mark Ronson',
   ['Mark Daniel Ronson (sinh ngày 4 tháng 9 năm 1975) là một nhạc sĩ, DJ, ca sĩ, và nhà sản xuất thu âm người Anh từng đoạt giải Grammy.',
    'Anh đã sản xuất nhiều album đa đĩa bạch kim cũng như thắng giải Grammy cho các ca sĩ như: Amy Winehouse, Adele và Bruno Mars.']],
  ['Million Reasons',
   ['"Million Reasons" (tiếng Việt: "Hàng triệu lí do") là một bài hát của nghệ sĩ thu âm người Mỹ Lady Gaga nằm trong album phòng thu thứ năm của cô, Joanne (2016).',
    'Ban đầu được phát hành như là một đĩa đơn quảng bá, nó đã được gửi đến các đài phát thanh vào ngày 8 tháng 11 năm 2016, như là đĩa đơn thứ hai trích từ album sau những hiệu ứng thương mại của bài hát khi Gaga xuất hiện trong chuyên mục Carpool Karaoke của chương trình The Late Late Show with James Corden.',
    'Bài hát được viết lời bởi Gaga, Hillary Lindsey và Mark Ronson, và do Ronson, Gaga và BloodPop đồng sản xuất.',
    'Đây là một bản nhạc pop mang âm hưởng của đồng quê, với những âm thanh của guitar và piano.',
    'Nội dung ca từ của "Million Reasons" đào sâu vào "sự đau khổ và hy vọng" trong một mối quan hệ.']],
  ['Nelly Furtado',
   ['Nelly Kim Furtado (sinh ngày 2 tháng 12 năm 1978) là một ca sĩ, nhạc sĩ, nhà sản xuất đĩa và nhạc công người Canada gốc Bồ Đào Nha.',
    'Cô ca sĩ bắt đầu trở nên nổi tiếng khi phát hành album Whoa, Nelly!',
    'vào năm 2000 và thắng giải Grammy cho hạng mục "Nữ ca sĩ hát Pop xuất sắc nhất" dành cho đĩa đơn "I\'m Like a Bird".',
    'Sau khi kết hôn, bắt đầu làm mẹ và phát hành một album không mấy thành công là Folklore (2003), Nelly đã trở lại vị trí nữ ca sĩ hàng đầu của Mỹ hiện nay với album Loose phát hành năm 2006.',
    'Album này có 2 đĩa đơn quán quân tại Mỹ ("Promiscuous", "Say It Right") và 1 đĩa đơn quán quân tại Anh ("Maneater").']],
  ['Mark Elliot Zuckerberg',
   ['Mark Elliot Zuckerberg (sinh ngày 14 tháng 5 năm 1984) là một nhà lập trình máy tính.']],
  ['Mick Jagger',
   ['Ngài Michael Philip "Mick" Jagger (sinh 26 tháng 7 năm 1943) là một ca sĩ, nhạc sĩ, diễn viên và nhà sản xuất người Anh.',
    'Ông nổi tiếng là ca sĩ hát chính của nhóm nhạc rock The Rolling Stones.',
    'Ngoài ra, ông còn tham gia sản xuất và thủ vai trong một số bộ phim.']],
  ['Amy Winehouse',
   ['Amy Jade Winehouse (14 tháng 9 năm 1983 – 23 tháng 7 năm 2011) là một nữ ca sĩ, nhạc sĩ người Anh.',
    'Cô được biết đến với chất giọng nữ trầm đầy cảm xúc và sự pha trộn đa dạng của nhiều thể loại âm nhạc, bao gồm soul, R&B và jazz.',
    'Là thành viên của Dàn nhạc Jazz Thanh niên Quốc gia thời trẻ, Winehouse đã ký hợp đồng với 19 Management của Simon Fuller vào năm 2002 và sớm thu âm một số bài hát trước khi ký hợp đồng với EMI.',
    'Cô cũng hình thành mối quan hệ với nhà sản xuất Salaam Remi thông qua hãng thu âm này.',
    'Album đầu tay của Winehouse, Frank, được phát hành vào năm 2003.',
    'Nhiều bài hát của album chịu ảnh hưởng của nhạc jazz và đều do Winehouse đồng sáng tác.',
    'Frank là một thành công lớn ở Anh và được đề cử cho giải Mercury.',
    'Bài hát "Stronger Than Me" đã mang về cho cô giải Ivor Novello hạng mục Bài hát đương đại hay nhất của Học viện nhạc sĩ, nhà soạn nhạc và tác giả Anh.']],
  ['Lionel Richie',
   ['Lionel Brockman Richie, Jr. (sinh ngày 20 tháng 6 năm 1949) là một nam ca sĩ, nhạc sĩ nhà sản xuất đĩa hát, và đôi khi là một diễn viên người Mỹ.',
    'Ông không những thành công với vai trò là một ca sĩ trong thể loại nhạc R&B mà còn là một nhạc sĩ, nhà soạn nhạc, nhà sản xuất và nam diễn viên nghiệp dư của ngành giải trí Hoa Kỳ.']]],
 'type': 'bridge',
 'supporting_facts': [['Mark Ronson', 1], ['Amy Winehouse', 0]]}

I looked online for a while and haven't found a good solution, is there any cases already to deal with more complex data feature like the context and supporting_facts field?

holylovenia commented 2 months ago

hi @holylovenia,

I tried Sequence before [], same issue. It sounds more like you only can have one "level" inside Sequence, like it's a sequence of str or int. But the raw data is complicated, see below (list of tuple of list): I looked online for a while and haven't found a good solution, is there any cases already to deal with more complex data feature like the context and supporting_facts field?

Hi @chenxwh, sorry for the late reply.

Do you think it makes sense if we "\n".join(context) into a single string? Additionally, type and supporting_facts can go under meta in the seacrowd schema.

chenxwh commented 2 months ago

looks like the full data access needs to send user license agreement for access, should I sign the form and requesting it from the authors? https://github.com/vimqa/vimqa/tree/main?tab=readme-ov-file#how-to-get-the-full-dataset

holylovenia commented 2 months ago

looks like the full data access needs to send user license agreement for access, should I sign the form and requesting it from the authors? https://github.com/vimqa/vimqa/tree/main?tab=readme-ov-file#how-to-get-the-full-dataset

Yes please, thanks @chenxwh!