2016-09-12 15 views
8

Sphinxで1つの文章で単語を検索することができます。たとえば、次のテキストがあります。スフィンクスでのセンテンスの検出方法を改善するには?

Васямолодец、съелогурец、т.к. проголодался。 Такиедела。

私は

молодец SENTENCE огурец 

を検索する場合、私はこのテキストを見つけます。私は

молодец SENTENCE проголодался 

を検索する場合、フレーズт.к.からドットが文の終わりと考えたので、私は、このテキストを見つける傾けます。

どのように表示されるのか、区切り記号のセットはSphinx's sourcesにハードコードされています。

私の質問は、どのように文の検出を改善するのですか?より良い方法は、YandexのTomitaパーサまたは別のnlpライブラリをセンテンスのスマートな検出で使用することです。

+0

YEsは、ハードコードされていますが、 '。' 「T.K.」がその区切りとしてセンテンス境界と見なされるべきではないように設定されるべきである。 http://sphinxsearch.com/docs/current.html#conf-index-sp - – barryhunter

+0

@barryhunter、はい、しかし 'т.к.'はSphinxの標準省略形ではありませんか?この省略形の指定方法は?可能な他の状況:「Yahoo!その他の場合。私はよりよい方法 - どのように外部ライブラリにセグメンテーションを委任する... – mnv

+0

ルールによると、それは抽象的な(私がそれを理解するように)、特定のappriviationsよりむしろそのルールに基づいて数える必要がありますthats。より広範なルールを使用するようにスフィンクスを拡張する場合、ソースを変更する必要があります。 – barryhunter

答えて

1

YandexのTomitaパーサーで文章を分割します。私たちは "\ n"で分割されたテキストを取得します。

すべての「。」、「!」、「?」を削除します。各文章から最後に離れる。

この前処理されたデータでSphinxインデックスを構築します。

関連する問題