1

テキストとさまざまなソース コードが混在するドキュメントに使用するのに適した Lucene アナライザーは何でしょうか?

たとえば、「C」と「C++」を別の単語と見なしCharset.forName("utf-8")、クラス名とメソッド名に分割し、パラメーターを 1 つまたは 2 つの単語と見なしたいと考えています。

私が見たいデータセットの良い例は、StackOverflow そのものです。StackOverflow は検索に Lucene.NET を使用していると思います。ストックアナライザーを使用していますか、それとも大幅にカスタマイズされていますか?

4

1 に答える 1

0

おそらく、WhitespaceTokenizer を使用し、それをカスタマイズして句読点を削除するのが最善です。たとえば、「+」、「-」を除くすべての句読点を削除して、C++ などの単語は残しますが、開始および終了の引用符とブラケットなどは残します。実際には、このような場合、ドキュメントのさまざまな部分をキャッチするために、さまざまなトークナイザーを使用してドキュメントを 2 回追加する必要がある場合があります。つまり、StandardTokenizer で 1 回、WhitespaceTokenizer で 1 回、この場合、StandardTokenizer はすべてのコードを分割します。たとえば、Whitespace は C++ などの単語をピックアップするため、クラス名とメソッド名の間で分割されます。明らかに言語に依存しますが、たとえば Scala ではメソッド名に句読点を使用できます。

于 2012-08-08T13:23:20.597 に答える