<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Download - Apache OpenNLP</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="color-scheme" content="dark light">
    <meta name="description" content="Apache OpenNLP  is a machine learning based toolkit for the processing of natural language text." />
    <meta name="author" content="The Apache OpenNLP Team" />
    <meta name="keywords" content="java, natural language processing, nlp, apache, open source, web site" />
    <meta name="generator" content="JBake"/>
    
    <!-- RSS Feed -->
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml" />

    <!-- Favicon -->
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/manifest.json">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
    <meta name="theme-color" content="#ffffff">

    <!-- The styles -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="/css/font-awesome.min.css" rel="stylesheet">
    <link href="/css/asciidoctor.css" rel="stylesheet">
    <link href="/css/prettify.css" rel="stylesheet">
    <link href="/css/custom-style.css" rel="stylesheet">
    <link href="/css/scheme-light.css" rel="stylesheet">
    <link href="/css/scheme-dark.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="/js/html5shiv.js"></script>
    <![endif]-->
</head>
<body onload="prettyPrint()">
<span class="visible-lg">
<a href="https://github.com/apache/opennlp"><img style="z-index: 9999; position: absolute; top: 0; right: 0; border: 0;" src="/img/fork-me-on-github.png" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
</span>

<nav class="navbar navbar-default">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-items" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">
                <img alt="Brand" src="/img/opennlp-navbar-logo.png" class="img-responsive" width="100px" style="position: relative; top: -3px;">
            </a>
        </div>

        <div class="collapse navbar-collapse" id="navbar-items">
            <ul class="nav navbar-nav">
                <li>
                    <a href="/"><span class="glyphicon glyphicon-home"></span> Home</a>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-download-alt"></span> Download <b class="caret"></b></a>
                    <ul class="dropdown-menu">
		                <li><a href="/download.html">OpenNLP Releases</a></li>
                        <li><a href="/models.html">OpenNLP Models</a></li>
		                <li><a href="/maven-dependency.html">Maven Integration</a></li>
		                <li><a href="/gradle-dependency.html">Gradle Integration</a></li>
		            </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-flag"></span> General <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        <li><a href="/news/">News</a></li>
			            <li><a href="https://blogsarchive.apache.org/#opennlp" target="_blank">Blog</a></li>
                        <li><a href="/mailing-lists.html">Mailing Lists</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/OPENNLP" target="_blank">Issue tracker</a></li>
                        <li><a href="/books-tutorials-and-talks.html">Books, Tutorials and Talks</a></li>
                        <li><a href="/powered-by-opennlp.html">Powered by Apache OpenNLP</a></li>
                        
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/docs/">Manual and Javadocs</a></li>
                        <li><a href="/faq.html">FAQ</a></li>
                        <li><a href="https://cwiki.apache.org/OPENNLP" target="_blank">Wiki</a></li>
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-console"></span> Development <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/get-involved.html">Get Involved</a></li>
                        <li><a href="/source-code.html">Source Code</a></li>
                        <li><a href="/using-git.html">Using Git</a></li>
                        <li><a href="/building.html">Building</a></li>
                        <li><a href="/code-conventions.html">Code Conventions</a></li>
                        <li><a href="/release.html">Release</a></li>
                        <li><a href="/release-model.html">Release Models</a></li>
                        <li><a href="/team.html">Project Team</a></li>
                    </ul>
                </li>

            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-leaf"></span> ASF <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="https://www.apache.org/">The Apache Software Foundation</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        <li><a href="https://www.apache.org/security/">Security</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                    </ul>
                </li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>

<div class="container">
    <h1 class="title">Download</h1>

    <div class="sect1">
<h2 id="last_official_release">Last Official Release</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache OpenNLP 2.3.3 is now available for download.</p>
</div>
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<div class="title">Important</div>
</td>
<td class="content">
Please note that the <em>tar.gz</em> archive contains file names longer than 100 characters and has
been created using <a href="https://www.gnu.org/software/tar/" target="_blank" rel="noopener">GNU tar</a> extensions.
It must be untarred with a GNU compatible version of tar.
</td>
</tr>
</table>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">.tar.gz</th>
<th class="tableblock halign-left valign-top">.zip</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://www.apache.org/dyn/closer.cgi/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.tar.gz">apache-opennlp-2.3.3-bin.tar.gz</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.tar.gz.sha512">sha512</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.tar.gz.asc">asc</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://www.apache.org/dyn/closer.cgi/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.zip">apache-opennlp-2.3.3-bin.zip</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.zip.sha512">sha512</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-bin.zip.asc">asc</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://www.apache.org/dyn/closer.cgi/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.tar.gz">apache-opennlp-2.3.3-src.tar.gz</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.tar.gz.sha512">sha512</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.tar.gz.asc">asc</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://www.apache.org/dyn/closer.cgi/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.zip">apache-opennlp-2.3.3-src.zip</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.zip.sha512">sha512</a>
<a href="https://www.apache.org/dist/opennlp/opennlp-2.3.3/apache-opennlp-2.3.3-src.zip.asc">asc</a></p></td>
</tr>
</tbody>
</table>
<div class="sect2">
<h3 id="verifying_signatures">Verifying Signatures</h3>
<div class="paragraph">
<p>The sha512 and asc files are signature files and can be used to verify the integrity of the
downloaded distribution package.</p>
</div>
<div class="paragraph">
<p>Use the following commands to verify the integrity:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>gpg --print-md sha512 fileName.tar.gz</code></p>
</li>
<li>
<p><code>gpg --verify fileName.tar.gz.asc</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>It might be necessary to import the <a href="https://www.apache.org/dist/opennlp/KEYS">KEYS file</a> to verify the integrity
of the asc files.</p>
</div>
<div class="paragraph">
<p>That can easily be done with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>gpg --import KEYS</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>More information about release signing and verifying signatures can
be found <a href="https://www.apache.org/dev/release-signing.html">here</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="models">Models</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The models for Apache OpenNLP are found <a href="/models.html">here</a>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
The models can be used for testing or getting started, please train your own models for all other use cases.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="archive">Archive</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Historical releases can be downloaded from the archived <a href="https://sourceforge.net/projects/opennlp/">SourceForge project</a>
or the <a href="https://archive.apache.org/dist/opennlp/">Apache archive</a>.</p>
</div>
</div>
</div>

</div>

    <footer class='footer'>
        <div class="container">
            <p class="text-muted">Copyright &copy; 2024  The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>  <br>
            Apache OpenNLP, OpenNLP, Apache, the Apache feather logo, and the Apache OpenNLP project logo are
            trademarks of The Apache Software Foundation. -
            <a href="/privacy-policy.html">Privacy Policy</a></p>
        </div>
    </footer>

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
    <script src="/js/jquery-3.2.1.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/prettify.js"></script>
    
    <script type="text/javascript">

      var link = $('a[href="' + this.location.pathname + '"]');
      if (link != undefined)
    	  link.parents('li,ul').addClass('active');
	
	</script>

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
        /* We explicitly disable cookie tracking to avoid privacy issues */
        _paq.push(['disableCookies']);
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="//analytics.apache.org/";
            _paq.push(['setTrackerUrl', u+'matomo.php']);
            _paq.push(['setSiteId', '33']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
</body>
</html>