0

私はコンコーダンスプログラムに取り組んでおり、現在getContext関数に取り組んでいます。この関数は正規表現のように機能する必要がありますが、指定された単語の前後の文字列のベクトルを返すようにしたいです。私が考えていることが正しいかどうかはわかりませんが、私が考えることができるのはそれだけです。

これが私が考えていたものです。単語を取り込んで2つのベクトルを作成し、指定した単語の左右に1つずつ返します。

ありがとう。: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

a を探しているだけの場合はstd::stringstd::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 に答える