try to add moses

Julien LepillerThu Feb 15 23:14:14+0100 2018

8beaf04

try to add moses

more/packages/moses.scm unknown status 1

1+
;;; GNU Guix --- Functional package management for GNU
2+
;;; Copyright ?? 2018 Julien Lepiller <julien@lepiller.eu>
3+
;;;
4+
;;; This file is part of GNU Guix.
5+
;;;
6+
;;; GNU Guix is free software; you can redistribute it and/or modify it
7+
;;; under the terms of the GNU General Public License as published by
8+
;;; the Free Software Foundation; either version 3 of the License, or (at
9+
;;; your option) any later version.
10+
;;;
11+
;;; GNU Guix is distributed in the hope that it will be useful, but
12+
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13+
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14+
;;; GNU General Public License for more details.
15+
;;;
16+
;;; You should have received a copy of the GNU General Public License
17+
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18+
19+
(define-module (more packages moses)
20+
  #:use-module ((guix licenses) #:prefix license:)
21+
  #:use-module (gnu packages)
22+
  #:use-module (gnu packages boost)
23+
  #:use-module (gnu packages compression)
24+
  #:use-module (guix packages)
25+
  #:use-module (guix download)
26+
  #:use-module (guix git-download)
27+
  #:use-module (guix utils)
28+
  #:use-module (guix build-system gnu))
29+
30+
(define-public cmph
31+
  (package
32+
    (name "cmph")
33+
    (version "2.0")
34+
    (source (origin
35+
              (method url-fetch)
36+
              (uri (string-append "mirror://sourceforge/cmph/cmph/cmph-"
37+
                                  version ".tar.gz"))
38+
              (sha256
39+
               (base32
40+
                "0xms1hii88wlihrr4766qmk26kvzhzcw3h6a489gp89xzxsrlv5d"))))
41+
    (build-system gnu-build-system)
42+
    (home-page "http://cmph.sourceforge.net/")
43+
    (synopsis "C Minimal Perfect Hashing Library")
44+
    (description "Perfect hash functions map a static set of n keys into a set
45+
of m integer numbers without collisions, where m is greater than or equal to
46+
n.  If m is equal to n, the function is called minimal.
47+
48+
Minimal perfect hash functions are widely used for memory efficient storage
49+
and fast retrieval of items from static sets, such as words in natural
50+
languages, reserved words in programming languages or interactive systems,
51+
universal resource locations (URLs) in Web search engines, or item sets in
52+
data mining techniques.  Therefore, there are applications for minimal perfect
53+
hash functions in information retrieval systems, database systems, language
54+
translation systems, electronic commerce systems, compilers, operating
55+
systems, among others.")
56+
    (license (list license:lgpl2.1+ license:mpl1.1))))
57+
58+
(define-public moses
59+
  (package
60+
    (name "moses")
61+
    (version "4.0")
62+
    (source (origin
63+
              (method url-fetch)
64+
              (uri (string-append "https://github.com/moses-smt/mosesdecoder/"
65+
                                  "archive/RELEASE-" version ".tar.gz"))
66+
              (sha256
67+
               (base32
68+
                "13wvxizbvzrklswf1s8751r0vqd71xfn55biy76ifni2pg6pcwrm"))))
69+
    (build-system gnu-build-system)
70+
    (arguments
71+
     `(#:phases
72+
       (modify-phases %standard-phases
73+
         (delete 'configure)
74+
         (add-before 'build 'patch-bin-sh
75+
           (lambda _
76+
             (substitute* "jam-files/engine/execunix.c"
77+
               (("\"/bin/sh\"") (string-append "\"" (which "sh") "\"")))))
78+
         (replace 'build
79+
           (lambda* (#:key inputs #:allow-other-keys)
80+
             (setenv "JAMSHELL" (string-append (which "sh") " -c"))
81+
             (invoke "./bjam" (string-append "--with-boost=" (assoc-ref inputs "boost"))
82+
                     (string-append "--with-cmph=" (assoc-ref inputs "cmph"))
83+
                     "--with-mm" "--with-probing-pt" "--no-xmlrpc-c" "-q"))))))
84+
    (inputs
85+
     `(("boost" ,boost)
86+
       ("cmph" ,cmph)
87+
       ("zlib" ,zlib)))
88+
    (home-page "http://www.statmt.org/moses")
89+
    (synopsis "Statistical machine translation")
90+
    (description "Moses is an implementation of the statistical (or data-driven)
91+
approach to machine translation (MT).  In statistical machine translation
92+
(SMT), translation systems are trained on large quantities of parallel data
93+
(from which the systems learn how to translate small segments), as well as
94+
even larger quantities of monolingual data (from which the systems learn what
95+
the target language should look like).  Parallel data is a collection of
96+
sentences in two different languages, which is sentence-aligned, in that
97+
each sentence in one language is matched with its corresponding translated
98+
sentence in the other language.")
99+
    (license license:asl2.0)))