presage
0.8.7
|
00001 00002 /****************************************************** 00003 * Presage, an extensible predictive text entry system 00004 * --------------------------------------------------- 00005 * 00006 * Copyright (C) 2008 Matteo Vescovi <matteo.vescovi@yahoo.co.uk> 00007 00008 This program is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2 of the License, or 00011 (at your option) any later version. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License along 00019 with this program; if not, write to the Free Software Foundation, Inc., 00020 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00021 * 00022 **********(*)*/ 00023 00024 00025 #ifndef PRESAGE_NGRAM 00026 #define PRESAGE_NGRAM 00027 00028 #include <iostream> 00029 #include <string> 00030 #include <vector> 00031 #include <assert.h> 00032 00033 class Ngram { 00034 friend std::ostream& operator<<( std::ostream&, const Ngram& ); 00035 public: 00036 Ngram(const int N); 00037 ~Ngram(); 00038 00039 int getN() const; 00040 00041 std::string getNgram(const int n) const; 00042 void setNgram(const int n, const std::string str); 00043 00044 bool operator<( const Ngram& ) const; 00045 Ngram& operator=( const Ngram& ); 00046 00047 std::string toString() const; 00048 00049 private: 00050 int N; 00051 std::string* ngrams; 00052 00053 }; 00054 00055 #endif // PRESAGE_NGRAM