void Tokenizer::loadStopWord() { QFile stopword (qApp->applicationDirPath()+"/files/stop_word_list.txt"); if (!stopword.open(QIODevice::ReadOnly|QIODevice::Text)) { QMessageBox msgBox; msgBox.setText("Can't load the file Stop_word_list.txt!"); msgBox.exec(); } QTextStream stopwordStream(&stopword); while (!stopwordStream.atEnd()) { StopList.append((stopwordStream.readLine()).toLower()); }}
void Tokenizer::tokenization() {int t=0;while (t!=-1){ for (int i=0; i<StopList.length(); i++) { if (StopList[i]==Token[t]) Token.removeAll(Token[t]); }t--;}ui->Token_list->addItems(Token);}
int t=Token.size();while (t!=-1) ...
foreach(QString s,StopList) Token.removeAll(s);
for (int t=0; t<Token.length(); t++)
for (int t=0; t<Token.length(); t++){ for (int i=0; i<StopList.length(); i++) { if (StopList[i]==Token[t]) Token.removeAll(Token[t]); }}
C++ (Qt) std::list<std::string> tokens = {"1", "2", "3", "3", "6", "2", "9"}; tokens.sort(); // обязательно сортируем std::list<std::string> stop_list = {"7", "2", "3", "5"}; stop_list.sort(); // обязательно сортируем std::set_intersection(stop_list.begin(), stop_list.end(), tokens.begin(), tokens.end(), [&](auto x) { std::remove(tokens.begin(), tokens.end(), *x); } // внимание лямбда! );
void RemoveStopsFromLst( QStringList & lst, const QStringList & stopLst ){// QSet для быстрого поиска QSet <QString> stop = stopLst.toSet();// выходной лист чтобы не связываться с мутными удалениями из контейнера QStringList dst;// отбираем for (int i = 0; i < lst.size(); ++i) if (!stop.contains(lst[ i ]) dst.push_back(lst[ i ]);// переписываем lst = dst;}
std::list<std::string> tokens = {"1", "2", "3", "3", "6", "2", "9"}; tokens.sort(); // обязательно сортируем std::list<std::string> stop_list = {"7", "2", "3", "5"}; stop_list.sort(); // обязательно сортируем std::set_intersection(stop_list.begin(), stop_list.end(), tokens.begin(), tokens.end(), [&](auto x) { std::remove(tokens.begin(), tokens.end(), *x); } // внимание лямбда! );
C++ (Qt)учиться, учиться, еще раз учиться(как-то так)...
C++ (Qt)std::list<std::string> tokens = {"1", "2", "3", "3", "6", "2", "9"};tokens.sort(); // обязательно сортируемstd::list<std::string> stop_list = {"7", "2", "3", "5"};stop_list.sort(); // обязательно сортируем std::list<std::string> dst; std::set_intersection(stop_list.begin(), stop_list.end(), tokens.begin(), tokens.end(), std::back_inserter(dst) );
tokens.sort(); // обязательно сортируем