gue wreszcie dziala, tylko nie sortuje wynikow
git-svn-id: svn://atos.wmid.amu.edu.pl/utt@50 e293616e-ec6a-49c2-aa92-f4a8b91c5d16
This commit is contained in:
parent
3748bd1db4
commit
6ac84d8bba
2
app/TODO
2
app/TODO
@ -1,5 +1,6 @@
|
|||||||
BARDZO WAZNE:
|
BARDZO WAZNE:
|
||||||
* przemyslec sposob wybierania jezyka / slownika po zainstalowaniu roznych dystrybucji [PK, TO]
|
* przemyslec sposob wybierania jezyka / slownika po zainstalowaniu roznych dystrybucji [PK, TO]
|
||||||
|
* gue nie sortuje wynikow, opcja weights dziala na odwrot
|
||||||
|
|
||||||
WAZNE:
|
WAZNE:
|
||||||
* zamienic kota na lepszego (Kubis) [TO]
|
* zamienic kota na lepszego (Kubis) [TO]
|
||||||
@ -12,4 +13,3 @@ WAZNE:
|
|||||||
* przyspieszyc process_seg() -> obliczanie prefiksow pol z opcji -s i -S raz na poczatku programu, a nie w kolko
|
* przyspieszyc process_seg() -> obliczanie prefiksow pol z opcji -s i -S raz na poczatku programu, a nie w kolko
|
||||||
* kor: nie dziala opcja distance
|
* kor: nie dziala opcja distance
|
||||||
* zunifikowac opcje cor i kor
|
* zunifikowac opcje cor i kor
|
||||||
|
|
||||||
|
@ -10,3 +10,5 @@
|
|||||||
# All lines must looks like:
|
# All lines must looks like:
|
||||||
# parameter_name [=] value
|
# parameter_name [=] value
|
||||||
#
|
#
|
||||||
|
dictionary-home = PATH_PREFIX/share/utt
|
||||||
|
process = W
|
||||||
|
@ -25,7 +25,7 @@ void process_guess_options(gengetopt_args_info* args)
|
|||||||
{
|
{
|
||||||
char buf[255];
|
char buf[255];
|
||||||
expand_path(args->dictionary_home_arg, buf);
|
expand_path(args->dictionary_home_arg, buf);
|
||||||
sprintf(dictionary,"%s/%s/lem.bin",buf,args->language_arg);
|
sprintf(dictionary,"%s/%s/gue.bin",buf,args->language_arg);
|
||||||
if(file_accessible(dictionary)!=0)
|
if(file_accessible(dictionary)!=0)
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Cannot open the dictionary file: %s\nAborting.\n",dictionary);
|
fprintf(stderr,"Cannot open the dictionary file: %s\nAborting.\n",dictionary);
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#define W_SUFF 0.6
|
#define W_SUFF 0.6
|
||||||
#define W_PREF 0.4
|
#define W_PREF 0.4
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
// int non_standard_config=0;
|
// int non_standard_config=0;
|
||||||
@ -25,48 +26,6 @@ int main(int argc, char** argv) {
|
|||||||
process_common_options(&args,argv[0]);
|
process_common_options(&args,argv[0]);
|
||||||
process_guess_options(&args);
|
process_guess_options(&args);
|
||||||
|
|
||||||
|
|
||||||
// PONIŻEJ POPRZEDNI KOD (JUSTYNY)
|
|
||||||
// //preliminary command-line parsing - for configuration file info only
|
|
||||||
// gengetopt_args_info pre_args;
|
|
||||||
|
|
||||||
// if (cmdline_parser(argc, argv, &pre_args) != 0)
|
|
||||||
// exit(1);
|
|
||||||
// if(pre_args.config_given){
|
|
||||||
// printf("podano config: %s\n",pre_args.config_arg);
|
|
||||||
// non_standard_config=1;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// //configuration file 1 parsing
|
|
||||||
// struct cmdline_parser_params *params;
|
|
||||||
// params = cmdline_parser_params_init();
|
|
||||||
// params->initialize = 1;
|
|
||||||
// if(cmdline_parser_config_file(CONFIGFILE1,&args, params)!=0){
|
|
||||||
// printf("System-wide configuration file parsing error!\n");
|
|
||||||
// exit(1);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //configuration file 2 parsing-overriding
|
|
||||||
// params->initialize=0;
|
|
||||||
// params->override=1;
|
|
||||||
// char* config2=(non_standard_config)?pre_args.config_arg:CONFIGFILE2;
|
|
||||||
// if(cmdline_parser_config_file(config2,&args, params)!=0){
|
|
||||||
// printf("User configuration file parsing error!\n");
|
|
||||||
// return 1;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// params->initialize=0;
|
|
||||||
// params->override=1;
|
|
||||||
// //params->check_required=1;
|
|
||||||
|
|
||||||
// free(params);
|
|
||||||
|
|
||||||
// //command-line options parsing-overriding
|
|
||||||
// if (cmdline_parser(argc, argv, &args) != 0)
|
|
||||||
// exit(1);
|
|
||||||
|
|
||||||
|
|
||||||
char line[MAX_LINE];
|
char line[MAX_LINE];
|
||||||
char outline[MAX_LINE];
|
char outline[MAX_LINE];
|
||||||
char parms[MAX_LINE], desc[MAX_LINE], lemma[MAX_LINE];
|
char parms[MAX_LINE], desc[MAX_LINE], lemma[MAX_LINE];
|
||||||
@ -83,7 +42,7 @@ int main(int argc, char** argv) {
|
|||||||
line_count++;
|
line_count++;
|
||||||
int start, len;
|
int start, len;
|
||||||
|
|
||||||
line[strlen(line)-1] = '\0';
|
// line[strlen(line)-1] = '\0';
|
||||||
|
|
||||||
if (!process_seg(line, args))
|
if (!process_seg(line, args))
|
||||||
fputs(line,outputf);
|
fputs(line,outputf);
|
||||||
@ -119,6 +78,8 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
count = 1;
|
count = 1;
|
||||||
|
|
||||||
|
tab.sort();
|
||||||
|
|
||||||
while (count < tab.count() && count <= guess_count)
|
while (count < tab.count() && count <= guess_count)
|
||||||
if (first || tab[count].w_suf() >= cut_off && tab[count].w_suf() >= delta * last_weight)
|
if (first || tab[count].w_suf() >= cut_off && tab[count].w_suf() >= delta * last_weight)
|
||||||
{
|
{
|
||||||
@ -176,12 +137,13 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i=0; i< tab.count(); ++i)
|
for (int i=0; i< count; ++i)
|
||||||
{
|
{
|
||||||
// kolejne opisy - kolejne linie.
|
// kolejne opisy - kolejne linie.
|
||||||
char* descp=desc;
|
char* descp=desc;
|
||||||
descp += sprintf(desc, " %s%s,%s\n", output_field_prefix, tab[i].lemma(), tab[i].descr());
|
descp += sprintf(desc, " %s%s,%s", output_field_prefix, tab[i].lemma(), tab[i].descr());
|
||||||
if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf());
|
if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf());
|
||||||
|
descp += sprintf(descp,"\n");
|
||||||
strcpy(outline,line);
|
strcpy(outline,line);
|
||||||
outline[strlen(outline)-1]='\0';
|
outline[strlen(outline)-1]='\0';
|
||||||
strcat(outline,desc);
|
strcat(outline,desc);
|
||||||
|
@ -15,9 +15,9 @@ void Word::autodescr(const char* fo, const char* de)
|
|||||||
strncpy(lemd,de,i);
|
strncpy(lemd,de,i);
|
||||||
lemd[i]='\0';
|
lemd[i]='\0';
|
||||||
if(isdigit(lemd[0]))
|
if(isdigit(lemd[0]))
|
||||||
fullform(f,lemd,l); // jeśli lemat zakodowany
|
fullform(f,lemd,l); // je¶li lemat zakodowany
|
||||||
else
|
else
|
||||||
strcpy(l,lemd); // jeśli lemat w pełnej postaci
|
strcpy(l,lemd); // je¶li lemat w pe³nej postaci
|
||||||
strcpy(d,de+i+1);
|
strcpy(d,de+i+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,6 +26,18 @@ bool Word::cmp_w(Word a, Word b) {
|
|||||||
return (a.w_suf() > b.w_suf());
|
return (a.w_suf() > b.w_suf());
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
bool Word::cmp_w_rev(Word a, Word b) {
|
||||||
|
return (a.w_suf() < b.w_suf());
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
bool cmp_w_fun(Word a, Word b) {
|
||||||
|
return (a.w_suf() > b.w_suf());
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
bool cmp_w_rev_fun(Word a, Word b) {
|
||||||
|
return (a.w_suf() < b.w_suf());
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
istream& operator>>(istream& is, Word& w)
|
istream& operator>>(istream& is, Word& w)
|
||||||
{
|
{
|
||||||
@ -111,6 +123,11 @@ void Words::sort() {
|
|||||||
std::sort(tab.begin(), tab.end(), Word::cmp_w);
|
std::sort(tab.begin(), tab.end(), Word::cmp_w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
void Words::sort_rev() {
|
||||||
|
std::sort(tab.begin(), tab.end(), cmp_w_rev_fun);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
int Words::add(const char* fo)
|
int Words::add(const char* fo)
|
||||||
|
@ -39,6 +39,7 @@ private:
|
|||||||
// float _w_pref;
|
// float _w_pref;
|
||||||
public:
|
public:
|
||||||
static bool cmp_w(Word a, Word b);
|
static bool cmp_w(Word a, Word b);
|
||||||
|
static bool cmp_w_rev(Word a, Word b);
|
||||||
|
|
||||||
Word() : _len_suf(-1) { *f='\0'; returned=0; };
|
Word() : _len_suf(-1) { *f='\0'; returned=0; };
|
||||||
Word(const char* fo, const char* des) : _len_suf(-1) { autodescr(fo,des); _w_suf=1.0; returned=0; };
|
Word(const char* fo, const char* des) : _len_suf(-1) { autodescr(fo,des); _w_suf=1.0; returned=0; };
|
||||||
@ -103,6 +104,14 @@ inline int Word::cmp(const Word& w) { return strcmp(f,w.f); }
|
|||||||
//inline int Word::cmpi(const Word& w) { return PL.cmpi(f,w.f); }
|
//inline int Word::cmpi(const Word& w) { return PL.cmpi(f,w.f); }
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool cmp_w_fun(Word a, Word b);
|
||||||
|
bool cmp_w_rev_fun(Word a, Word b);
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -132,6 +141,7 @@ class Words
|
|||||||
int next();
|
int next();
|
||||||
|
|
||||||
void sort();
|
void sort();
|
||||||
|
void sort_rev();
|
||||||
|
|
||||||
void prn(ostream& os);
|
void prn(ostream& os);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user