<!--

-->
<!--

-->
<!DOCTYPE html>
<html lang="en">
  <!--

-->

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>Clickbait Dataset</title>
  
  <meta name="description" content="Dataset for Classification of news headlines into clickbait or non-clickbait."> 
  <meta name="author" content="Apache SystemDS">

  <!-- Enable responsive viewport -->
  <meta name="HandheldFriendly" content="True">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- You can use Open Graph tags to customize link previews.
  Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
  <meta property="og:url" content="https://systemds.apache.org/" />
  <meta property="og:type" content="website" />
  <meta property="og:title" content="Clickbait Dataset" />
  <meta property="og:description" content="Apache SystemDS is an open source ML system for the end-to-end data science lifecycle" />
  <meta property="og:image" content="" />

  <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
  <!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->

  <!-- Le styles -->
  <link rel="stylesheet" href="/assets/css/main.css">

  <!-- favicons -->
  <link rel="shortcut icon" href="/assets/img/favicon.png">
</head> <!-- META -->
  <body class="vcard">
    <!--

-->
<header class="site-header site-header--not-home">
  <h1 class="logo"><a class="url" href="/"><i class="logo-mark"></i><span class="fn org">Apache SystemDS<sup
          id="trademark">&trade;</sup></span></a></h1>
  <nav class="main-nav">
    <ul>
      
      <li role="presentation">
        
        
        <a href="/download" target="_self">Download</a>
        
      </li>
      
      <li role="presentation">
        
        
        <a href="/get-started" target="_self">Get Started</a>
        
      </li>
      
      <li role="presentation">
        
        <a class="nav-link--hover">Docs <i class="icon icon-chevron-down"></i></a>
        <ul>
          
          
          <li><a href="https://apache.github.io/systemds/" target="_blank">latest</a></li>
          
          
          <li><a href="https://systemds.apache.org/docs/3.2.0/" target="_blank">3.2.0 (stable)</a></li>
          
          
          <li><a href="https://systemds.apache.org/release-notes/systemds-release-notes-3.2.0" target="_blank">Release Notes 3.2.0</a></li>
          
        </ul>
        
      </li>
      
      <li role="presentation">
        
        <a class="nav-link--hover">Community <i class="icon icon-chevron-down"></i></a>
        <ul>
          
          
          <li><a href="/community" target="_self">Get Involved</a></li>
          
          
          <li><a href="https://issues.apache.org/jira/browse/SYSTEMDS" target="_blank">Issue Tracker</a></li>
          
          
          <li><a href="https://github.com/apache/systemds" target="_blank">Source Code</a></li>
          
          
          <li><a href="https://github.com/apache/systemds-website" target="_blank">Website Source Code</a></li>
          
        </ul>
        
      </li>
      
      <li role="presentation">
        
        <a class="nav-link--hover">Apache <i class="icon icon-chevron-down"></i></a>
        <ul>
          
          
          <li><a href="https://www.apache.org/foundation/how-it-works" target="_blank">Apache Software Foundation</a></li>
          
          
          <li><a href="https://www.apache.org/licenses/" target="_blank">Apache License</a></li>
          
          
          <li><a href="https://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></li>
          
          
          <li><a href="https://www.apache.org/foundation/thanks" target="_blank">Thanks</a></li>
          
          
          <li><a href="/privacy-policy" target="_self">Privacy Policy</a></li>
          
          
          <li><a href="/security" target="_self">Security</a></li>
          
        </ul>
        
      </li>
      
    </ul>
  </nav>
</header> <!-- GLOBAL HEADER -->
    <!-- https://jekyllrb.com/docs/step-by-step/09-collections/#configuration -->
<!-- <h1>Clickbait Dataset</h1> -->
<section class="full-stripe full-stripe--alternate">
  <div class="ml-container ml-container--vertically-centered ">
    <div class="col col-6 content-group content-group--more-padding">
      <img src="/assets/img/datasets.png" alt="Datasets for SystemDS">
    </div>
    <div class="col col-6 content-group content-group--more-padding button-group">
      <h2>Clickbait Dataset</h2>
      <h4>Dataset for Classification of news headlines into clickbait or non-clickbait.</h4>

      <p>The data is collected from various news sites.
The clickbait headlines are collected from sites such as ‘BuzzFeed’, ‘Upworthy’, ‘ViralNova’, ‘Thatscoop’, ‘Scoopwhoop’ and ‘ViralStories’.
The relevant or non-clickbait headlines are collected from many trustworthy news sites such as ‘WikiNews’, ’New York Times’, ‘The Guardian’, and ‘The Hindu’.</p>

<p>Home Page: <a href="https://www.kaggle.com/datasets/amananandrai/clickbait-dataset">https://www.kaggle.com/datasets/amananandrai/clickbait-dataset</a></p>

<p>Download Size: <code class="language-plaintext highlighter-rouge">1.84 MiB</code></p>

<h3 id="compressed-files">Compressed Files</h3>

<ol>
  <li><a href="https://systemds.apache.org/assets/datasets/clickbait/clickbait.7z"><code class="language-plaintext highlighter-rouge">clickbait.7z</code>:  whole data used for the LSTM example</a></li>
</ol>


    </div>
  </div>
</section>
 
    <!--

-->
<footer class="site-footer">
  <div class="ml-container ml-container--horizontally-center">
    <div class="footer-col-wrapper">
      <div style="margin-top: 20px; margin-bottom: 20px;">
        <a href="https://www.apache.org"><img src="/assets/img/apache-foundation-logo.png" alt="Apache Incubator" /></a>
      </div>
      <!--Footer copyright year update credit: http://updateyourfooter.com/-->
      <div>
        Copyright &copy; 2015
        <script>new Date().getFullYear() > 2015 && document.write("-" + new Date().getFullYear());</script>
        <a href="https://www.apache.org">The Apache Software Foundation</a>.
        Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        <br>
        Apache and the Apache Feather logo are trademarks of The Apache Software Foundation.
      </div>
    </div>
  </div>
</footer> <!-- GLOBAL FOOTER-->
    <script src="assets/js/bundle.min.js"></script>
  </body>
</html>

