0

オフセットが重なっている文字列内の単語を区別するにはどうすればよいですか。たとえば、私は文字列を持っています:

$s = "The famous team violin will showcase there violin talent to the fans who love violin.";

次に、これらの単語をオフセットで取得するキーワード抽出があります。

team violin - 11
violin - 16

上記の結果に基づいて、結果の単語「バイオリン」は「チームバイオリン」と重複します

正しい結果は次のようになります:

team violin - 11
violin - 43

これは、各キーワードのオフセットを取得するためのコードです

foreach($keywordArr as $keyword)
{
preg_match('/\b'.$keyword.'\b/',$s,$match,PREG_OFFSET_CAPTURE)
$keywordwithOffset = $keyword."\t".$match[0][1];
}

誰かがそのようなことを解決できるphpスクリプトを手に入れましたか?

4

1 に答える 1

0

最初に大きなキーワードで文字列を抽出し、オフセットを取得してから、大きなキーワードを必要なだけ特別な文字 (#、$ など) に置き換えることをお勧めします。文字列の長さは変わりません。大きいキーワードと重複しない小さいキーワードのオフセットを検索しています。

于 2011-08-10T20:05:01.133 に答える