//! @brief read a text Bow file and fills a lexicon //! @param fileIn the file to read //! @param reader the file reader //! @param lex the lexicon to fill //! @param propertyAccessor //! @param referenceProperties void readBowFileText(ifstream& fileIn, BoWBinaryReader& reader, Lexicon& lex, const PropertyAccessor& propertyAccessor, set<LinguisticCode>& referenceProperties ) { BoWText text; reader.readBoWText(fileIn,text); bool filterCategory = false; if ( referenceProperties.size() > 0 ) { filterCategory = true; } BoWTokenIterator it(text); while (! it.isAtEnd()) { const BoWToken& token = *(it.getElement()); if (filterCategory) { set<LinguisticCode>::const_iterator referencePropertyIt = referenceProperties.find(propertyAccessor.readValue(token.getCategory())); if ( referencePropertyIt != referenceProperties.end() ) { lex.add(getStringDecomp(&token),token.getIndexString()); } } else { lex.add(getStringDecomp(&token),token.getIndexString()); } it++; } }