0

我正在研究一个索引程序,目前正在研究 getContext 函数。我需要这个函数有点像正则表达式,但我希望它在指定单词之前和之后返回一个字符串向量。我不知道我的想法是否正确,但这是我能想到的。

所以这就是我的想法:它接受一个单词并创建两个向量,并在指定单词的左侧和右侧返回一个。

谢谢。:D

我不认为我需要包含整个代码文件,但如果有人需要它,我也可以把它放上来。

/* Get context for input parameter word (case-insensitive comparison)
* Return a dynamically allocated vector of strings, each string
* consisting of contextSize number of words before word and contextSize
* number of words after word, with word in the middle (set off with "<<"
* before the word and ">>" after the word). ContextSize defaults to 5.
* It is user's responsibility to delete the vector.
*/
vector<string>*Concordance::getContext(string word, int contextSize = 5){
    vector<string> before;
    vector<string> after;


    return 0;
}
4

1 回答 1

0

如果你只是在寻找std::stringastd::vector<std::string>那么你可以使用std::find

bool IsWordInArrayOfWords(const std::vector<string>& arrayOfWords, const std::string& word)
{
    auto found = std::find(arrayOfWords.cbegin(), arrayOfWords.cend(), word);
    return found != arrayOfWords.cend();
}

如果您正在寻找一种方法来搜索单词的部分匹配以及基于百分比或其他更复杂的上下文的最佳匹配,并且正则表达式不是一个选项,那么我认为我们需要更好地描述您的内容'正在尝试完成以及您要解决的真正问题是什么。

于 2011-05-04T22:54:35.003 回答