演奏についての質問が気になります。
$text
いくつかの文の英語のテキストを含むphp 文字列があります。問題を単純化するために、各文が「.」で終わると仮定しましょう。のような他の記号はありません。! など。
$sentences = array();
$sentences = explode(". ", $text);//we split the text into array of sentences
$words = array();
for ($i=0; $i<count($sentences); $i++){
$words[$i] = explode(" ", $sentences[$i]);//split each sentence into words
}
したがって、$words
は 2 次元配列です。
$words[$i][$j]
文 #i の単語 #j です。右?
質問は:
文字列内の文字の位置によって単語の座標を見つける最も速い方法は何ですか?
したがって、テキストがある場合:
I go to school. And you.
$word = positionFinder(0);//I $word == array(0,0) - the zero word in the zero sentence
$word = positionFinder(1);//' ' $word == array(-1," ") or something like that
$word = positionFinder(6);//to $word == array(0,2)
$word = positionFinder(9);//school $word == array(0,3)
$word = positionFinder(10);//school $word == array(0,3)
$word = positionFinder(14);//. $word == array (-1,".") or something like that
$word = positionFinder(17);//And $word == array(1,0) - the zero word in the first sentence
パフォーマンスを向上させるために、追加の配列の一部のデータを使用できると思います。関数はpositionFinder
、テキスト内の単語数よりも多く使用されます。したがって、positionFinder
はできるだけ速く動作するはずです。
つまり、文字で単語の座標を見つけるようなものです。何か案は?
ありがとうございました。