本文整理汇总了C++中TextQuery类的典型用法代码示例。如果您正苦于以下问题:C++ TextQuery类的具体用法?C++ TextQuery怎么用?C++ TextQuery使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TextQuery类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
// open the file from which user will query words
ifstream infile;
if (argc < 2 || !open_file(infile, argv[1])) {
cerr << "No input file!" << endl;
return EXIT_FAILURE;
}
TextQuery tq;
tq.read_file(infile); // builds query map
// iterate with the user: prompt for a word to find and print results
// loop indefinitely; the loop exit is inside the while
while (true) {
cout << "enter word to look for,or q to quit" << endl;
string s;
cin >> s;
// stop if hit eof on input or a 'q'is entered
if (!cin || s == "q")
break;
// get the set of line numbers on which this word appears
set<TextQuery::line_no> locs = tq.run_query(s);
// print count and all occurrences, if any
print_results(locs, s, tq);
}
return 0;
}
示例2: main
int main(int argc, char **argv)
{
ifstream infile;
if (argc < 2 || !open_file(infile,argv[1]))
{
cerr << "No input file!" << endl;
return EXIT_FAILURE;
}
//textquery_test(infile);
TextQuery tq;
tq.read_file(infile);
cout << "================================================" << endl;
cout << "Query(\"Daddy\"):" << endl;
query_word_test(tq,"Daddy");
cout << "================================================" << endl;
cout << "~Query(\"Alice\"):" << endl;
query_not_test(tq,"Alice");
cout << "================================================" << endl;
cout << "Query(\"hair\") | Query(\"Alice\"):" << endl;
query_binary_test(tq,"|");
cout << "================================================" << endl;
cout << "Query(\"hair\") & Query(\"Alice\"):" << endl;
query_binary_test(tq,"&");
cout << "================================================" << endl;
cout << "(Query(\"fiery\") & Query(\"bird\")) | Query(\"wind\"):" << endl;
query_mul_test(tq);
return 0;
}
示例3: main
int main(int argc, char **argv)
{
std::ifstream infile;
if (2 > argc || !open_file(infile, argv[1]))
{
cerr << "No input file!" << endl;
return EXIT_FAILURE;
}
TextQuery tq;
tq.read_file(infile);
while (true)
{
cout << "enter word to look for, or q to quit: ";
string s;
cin >> s;
if (!cin || s == "q")
break;
set<TextQuery::line_no> locs = tq.run_query(s);
print_results(locs, s, tq);
}
return EXIT_SUCCESS;
}
示例4: exit
void EchoServer::compute(const std::string &word, const TcpConnectionPtr &conn, const TextQuery &tq)
{
if(word == "q")
exit(0);
typedef set<TextQuery::line_no> line_nums;
line_nums locs = tq.run_query(word);
line_nums::size_type size = locs.size();
char ssize[128] = "";
sprintf(ssize, "%d", size);
string s;
s = s + "\n" + word + " occurs " + ssize + " "
+ make_plural(size, "time", "s") + "\n";
line_nums::const_iterator it = locs.begin();
for ( ; it != locs.end(); ++it)
{
char sit[128] = "";
sprintf(sit, "%d", (*it) + 1);
s = s + "\t(line " + sit + ") "
+ tq.text_line(*it) + "\r\n";
}
s = s + "\nenter word to look for, or q to quit: ";
conn->send(s);
}
示例5: main
int main()
{
TextQuery tq;
tq.build_up_text();
tq.query_text();
return 0;
}
示例6: main
int main(int argc, char **argv)
{
if (argc != 2) {cerr << "No input file" << endl; return -2;}
// get a file to read from which user will query words
ifstream infile;
if (!open_file(infile, argv[1])) {
cerr << "No input file!" << endl;
return -1;
}
TextQuery tq;
tq.read_file(infile); // builds query map
// iterate with the user: prompt for a word to find and print results
string sought;
do {
cout << "enter a word against which to search the text.\n"
<< "to quit, enter a single character ==> ";
cin >> sought;
// stop if hit eof on input or single character entered
if (!cin || sought.size() < 2) break;
// find all the occurrences of the users requested string
vector<TextQuery::location> locs = tq.run_query(sought);
// report no matches
if (locs.empty()) {
cout << "\nSorry. There are no entries for "
<< sought << ".\nTry again." << endl;
continue;
}
// if the word was found, then print count and all occurrences
vector<TextQuery::location>::size_type size = locs.size();
cout << "\n" << sought << " occurs " << size
<< (size == 1 ? " time:" : " times:")
<< "\n" << endl;
// print each line in which the word appeared
vector<TextQuery::location>::iterator it = locs.begin();
while (it != locs.end()) {
cout << "\t(line: "
// don't confound user with text lines starting at 0
<< it->first + 1 << ", pos: " << it->second + 1 << ") "
<< tq.text_line(it->first) << endl;
++it;
}
} while (!sought.empty());
cout << "Ok, bye!" << endl;
// debugging aid -- look at the map that was built
tq.display_map();
return 0;
}
示例7: onMessage
void EchoServer::onMessage(const TcpConnectionPtr &conn)
{
ifstream infile;
infile.close();
infile.clear();
infile.open("test.txt");
TextQuery tq;
tq.read_file(infile);
string s(conn->receive());
s.erase(s.size() - 2);
pool_.addTask(bind(&EchoServer::compute, this, s, conn, tq));
}
示例8: main
int main()
{
TextQuery tq;
tq.read_file("test.txt");
tq.build_map();
// tq.debug();
cout << "Query:" << endl;
string word;
while(cin >> word)
{
tq.query_word(word);
}
return 0;
}
示例9: textquery_test
void textquery_test(ifstream &infile)
{
TextQuery tq;
tq.read_file(infile);
while (true)
{
cout << "enter word to look for,or q to quit: ";
string s;
cin >> s;
if (!cin || s == "q")
break;
set<TextQuery::line_no> locs = tq.run_query(s);
print_result(locs,s,tq);
}
}
示例10: main
int main(int argc, char *argv[])
{
TextQuery tq;
ifstream is("luo.txt");
tq.read_file(is);
string str("luo");
set<TextQuery::line_no> s_lno = tq.run_query(str);
cout << str << " occurs " << s_lno.size() << " times" << endl;
for(set<TextQuery::line_no>::iterator iter = s_lno.begin();
iter != s_lno.end(); ++iter) {
cout << "(line " << *iter << ") ";
cout << tq.text_line(*iter) <<endl;
}
return 0;
}
示例11: main
int main(int argc, char *argv[])
{
std::string s1("the"), s2("Her"), s3("in");
const std::string file("text.txt");;
TextQuery tq;
std::ifstream fin(file.c_str());
tq.read_file(fin);
Query q = (Query(s1) & Query(s2)) | Query(s3);
std::set<TextQuery::line_no> set = q.eval(tq);
typedef std::set<TextQuery::line_no>::iterator iter_stq;
for( iter_stq iter= set.begin() ; iter != set.end() ; iter++ )
{
std::cout << tq.text_line(*iter) << std::endl;
}
return 0;
}
示例12: AppMain
int AppMain(int argc, char *argv[]) {
Index *ind;
try {
ind = IndexManager::openIndex(RetrievalParameter::databaseIndex);
}
catch (Exception &ex) {
ex.writeMessage();
throw Exception("QueryClarity",
"Can't open index, check parameter index");
}
lemur::retrieval::ArrayAccumulator accumulator(ind->docCount());
IndexedRealVector res(ind->docCount());
ofstream os(LocalParameter::expandedQuery.c_str());
lemur::retrieval::SimpleKLRetMethod *model;
model = new lemur::retrieval::SimpleKLRetMethod(*ind, SimpleKLParameter::smoothSupportFile,
accumulator);
model->setDocSmoothParam(SimpleKLParameter::docPrm);
model->setQueryModelParam(SimpleKLParameter::qryPrm);
DocStream *qryStream;
try {
qryStream = new lemur::parse::BasicDocStream(RetrievalParameter::textQuerySet);
} catch (Exception &ex) {
ex.writeMessage(cerr);
throw Exception("QueryClarity", "Can't open query file");
}
qryStream->startDocIteration();
TextQuery *q;
while (qryStream->hasMore()) {
Document *d = qryStream->nextDoc();
q = new TextQuery(*d);
QueryRep *qr = model->computeQueryRep(*q);
res.clear();
QueryClarity(qr, q->id(), &res, model, os);
delete qr;
delete q;
}
os.close();
delete model;
delete qryStream;
delete ind;
return 0;
}
示例13: print_results
void print_results(const set<TextQuery::line_no>& locs, const string& sought, const TextQuery &file) {
// Print how many times a word shows, and all lines it in.
typedef set<TextQuery::line_no> line_nums;
line_nums::size_type size = locs.size();
cout << "\n" << sought << " occurs " << size << " " << make_plural(size, "time", "s") << endl;
line_nums::const_iterator it = locs.begin();
for (; it != locs.end(); ++it) {
cout << "\t(line " << (*it) + 1 << ") " << file.text_line(*it) << endl;
}
}
示例14: print_result
void TextQuery::print_result(const std::set<TextQuery::line_no>& locs, const std::string& sought, const TextQuery &file)
{
typedef std::set<TextQuery::line_no> line_nums;
line_nums::size_type size = locs.size();
std::cout << "\n" << sought << " occurs" << size << " " << make_plural(size, "time", "s") << std::endl;
line_nums::const_iterator it = locs.begin();
for (; it != locs.end(); ++it) {
std::cout << "\t(line " << (*it) + 1 << ")" << file.text_line(*it) << std::endl;
}
}
示例15:
std::set<TextQuery::line_no>
NotQuery::eval( const TextQuery& file ) const
{
std::set<TextQuery::line_no> has_val = query.eval( file );
std::set<line_no> ret_lines;
for( TextQuery::line_no n = 0; n != file.size(); ++n )
if ( has_val.find( n ) == has_val.end() )
ret_lines.insert( n );
return ret_lines;
}