~ubuntu-branches/ubuntu/raring/sunpinyin/raring

« back to all changes in this revision

Viewing changes to src/slm/ids2ngram/idngram_merge.cpp

  • Committer: Package Import Robot
  • Author(s): YunQiang Su
  • Date: 2012-03-30 15:31:55 UTC
  • mfrom: (1.1.3) (1.2.7 sid)
  • Revision ID: package-import@ubuntu.com-20120330153155-qgls77sogzgtg9zp
Tags: 2.0.3+git20120222-1
* Team upload: git snapshot 20120222.
   - fix breaks if LDFLAGS in environment contains
       multiple words (Closese #646001).
   - rm patches merged to upstream:
       append-os-environ-toenv.patch
       fix-ftbfs-on-sh.patch
       remove-10-candidate-words-limitation.patch
   - refresh disable-lm-dict-compile.patch.
* Bump stardard version to 3.9.3: no modify needed.
* add libsunpinyin3-dbg and python-sunpinyin packages.
* debian/compat to 9, multiarch it.
* rewrite debian/rules with dh 7 format.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 
 * 
 
3
 *
4
4
 * Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
5
 
 * 
 
5
 *
6
6
 * The contents of this file are subject to the terms of either the GNU Lesser
7
7
 * General Public License Version 2.1 only ("LGPL") or the Common Development and
8
8
 * Distribution License ("CDDL")(collectively, the "License"). You may not use this
9
9
 * file except in compliance with the License. You can obtain a copy of the CDDL at
10
10
 * http://www.opensource.org/licenses/cddl1.php and a copy of the LGPLv2.1 at
11
 
 * http://www.opensource.org/licenses/lgpl-license.php. See the License for the 
 
11
 * http://www.opensource.org/licenses/lgpl-license.php. See the License for the
12
12
 * specific language governing permissions and limitations under the License. When
13
13
 * distributing the software, include this License Header Notice in each file and
14
14
 * include the full text of the License in the License file as well as the
15
15
 * following notice:
16
 
 * 
 
16
 *
17
17
 * NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
18
18
 * (CDDL)
19
19
 * For Covered Software in this distribution, this License shall be governed by the
21
21
 * Any litigation relating to this License shall be subject to the jurisdiction of
22
22
 * the Federal Courts of the Northern District of California and the state courts
23
23
 * of the State of California, with venue lying in Santa Clara County, California.
24
 
 * 
 
24
 *
25
25
 * Contributor(s):
26
 
 * 
 
26
 *
27
27
 * If you wish your version of this file to be governed by only the CDDL or only
28
28
 * the LGPL Version 2.1, indicate your decision by adding "[Contributor]" elects to
29
29
 * include this software in this distribution under the [CDDL or LGPL Version 2.1]
32
32
 * Version 2.1, or to extend the choice of license to its licensees as provided
33
33
 * above. However, if you add LGPL Version 2.1 code and therefore, elected the LGPL
34
34
 * Version 2 license, then the option applies only if the new code is made subject
35
 
 * to such option by the copyright holder. 
 
35
 * to such option by the copyright holder.
36
36
 */
37
37
 
38
38
#ifdef HAVE_CONFIG_H
57
57
 
58
58
static struct option long_options[] =
59
59
{
60
 
    {"NMax", 1, 0, 'n'},
61
 
    {"out", 1, 0, 'o'},
62
 
    {0, 0, 0, 0}
 
60
    { "NMax", 1, 0, 'n' },
 
61
    { "out", 1, 0, 'o' },
 
62
    { 0, 0, 0, 0 }
63
63
};
64
64
 
65
 
static int N=0;
66
 
static int paraMax=0;
67
 
static char* output=NULL;
68
 
static char* swapfile=NULL;
 
65
static int N = 0;
 
66
// static int paraMax = 0;
 
67
static char* output = NULL;
 
68
// static char* swapfile = NULL;
69
69
 
70
 
void ShowUsage()
 
70
void
 
71
ShowUsage()
71
72
{
72
73
    printf("Usage:\n\tidngram_merge options idngramfile[ idngramfile...]\n");
73
74
    printf("\nDescription:\n");
74
 
    printf("   This program merge multiple idngram file, each of them are sorted [id1,...,idN,freq] array, into one idngram file. For those id1..idN which appear in more than one files, only one item appear in the final file, and its freq are sumed.\n");
 
75
    printf(
 
76
        "   This program merge multiple idngram file, each of them are sorted [id1,...,idN,freq] array, into one idngram file. For those id1..idN which appear in more than one files, only one item appear in the final file, and its freq are sumed.\n");
75
77
    printf("\nOptions:\n");
76
78
    printf("\t  -n N           # N-gram\n");
77
79
    printf("\t  -o outputfile  # finale merged idngram file\n");
78
80
    printf("\nExample:\n");
79
81
    printf("   Following example merge 2 id3gram files into a large one:\n");
80
 
    printf("\tidngram_merge -n3 -o all.id3gram first.id3gram second.id3gram\n\n");
 
82
    printf(
 
83
        "\tidngram_merge -n3 -o all.id3gram first.id3gram second.id3gram\n\n");
81
84
}
82
85
 
83
 
static void getParameters(int argc, char* const argv[])
 
86
static void
 
87
getParameters(int argc, char* const argv[])
84
88
{
85
89
    int option_index = 0;
86
90
    int c;
87
 
    while ((c=getopt_long(argc, argv, "n:o:", long_options, &option_index)) != -1)
88
 
    {
 
91
    while ((c =
 
92
                getopt_long(argc, argv, "n:o:", long_options,
 
93
                            &option_index)) != -1) {
89
94
        switch (c) {
90
95
        case 'n':
91
96
            N = atoi(strdup(optarg));
104
109
    }
105
110
}
106
111
 
107
 
int main(int argc, char* argv[])
 
112
int
 
113
main(int argc, char* argv[])
108
114
{
109
115
    getParameters(argc, argv);
110
116
    FILE *out = fopen(output, "wb+");
119
125
            exit(200);
120
126
        }
121
127
        idngram_files.push_back(fp);
122
 
    printf ("\n");
123
 
   }
124
 
   printf("Merging...");
 
128
        printf("\n");
 
129
    }
 
130
    printf("Merging...");
125
131
    switch (N) {
126
132
    case 1:
127
 
            ProcessingIdngramMerge<1>(out, idngram_files);
128
 
            break;
 
133
        ProcessingIdngramMerge<1>(out, idngram_files);
 
134
        break;
129
135
    case 2:
130
 
            ProcessingIdngramMerge<2>(out, idngram_files);
131
 
            break;
 
136
        ProcessingIdngramMerge<2>(out, idngram_files);
 
137
        break;
132
138
    case 3:
133
 
            ProcessingIdngramMerge<3>(out, idngram_files);
134
 
            break;
 
139
        ProcessingIdngramMerge<3>(out, idngram_files);
 
140
        break;
135
141
    }
136
 
   printf ("\n");
137
 
   fclose(out);
138
 
   for (int i=0; i < idngram_files.size(); ++i)
 
142
    printf("\n");
 
143
    fclose(out);
 
144
    for (size_t i = 0; i < idngram_files.size(); i++)
139
145
        fclose(idngram_files[i]);
140
146
    return 0;
141
147
}