2017-05-08 15 views
-1

mongo dbコレクションからデータフレームを読み込んでデータフレームを呼び出すことができます。私はmongo spark connectorをこれに使用しました。Dataframeのテキスト列から単語を抽出して文書の単語辞書を作成する

これで、単語をドキュメントにマッピングする単語辞書を作成するために、データフレームのテキストフィールドに単語を抽出します。

したがって、基本的に、抽出された単語はキーであり、値は文書のdocIdになります。

データフレームのテキスト列から単語を解析して抽出する方法がわからないため、対応する文書に対応付けることができます。

マッピングした後、私はその単語を含む文書のリストとしてキーと値としての単語を持つように、それらを減らしたいと思います。

データフレームのテキスト列から単語を抽出するアプローチ/コードを手伝ってもらえますか?

答えて

0

基本的に何を言っていることは次のとおりです。

1)文書コレクション 2)この言葉

が含まれていますが、1000の文書との合計を持っている場合ので、このアプローチは効率的ではありませんどのように多くの書類上のマッピングを持つ単語集言葉は10,000以上のようなものかもしれません。

2)ドキュメントが更新されている場合、削除されたすべての単語マッピングを更新する必要があります新たに追加された単語へのマッピング 3)頻繁に検索される単語が30〜40語しかない場合、すべての単語を必然的に保存しています。

代わりに、文書を簡単に保管してください。全文検索を行う必要がある文書内容フィールドに$テキスト索引を追加します。

アプリケーションでテキスト検索のみを扱う場合は、mongodbの代わりにelasticsearchを使用します。いつか戻ってきたこの答えをチェックしてください:MongoDB: Text search (exact match) using variable

Elasticsearchは、テキスト検索に非常に効率的なluceneエンジン上に構築されています。

+0

ご回答いただきありがとうございます。私の必要条件は、ユーザーが入力するたびにGoogle Suggestに似たユーザーに自動提案を提供するために、入力されたコレクションを使用することです。 Mongo DB Text $ textでは、文書の特定のテキストを検索することはできますが、ユーザーに単語のリストを提供することはできません。私の組織では企業の意思決定があるため、ElasticSearchを使用することはできません.Mongo DBの機能を活用してこの要件を満たす必要があります。 – Jbaur

+0

私はプリーを入力すれば、それは私が遊ぶことを示唆しますか?または、プレイ、プレイヤー、プレーしているドキュメントのタイトルを設定したいですか?または、mongodbにタイトルだけでなく作業内容を探すために、mongodbがドキュメントの内容を調べるようにしますか? –

+0

ユーザーが 'A'を入力すると、Aで始まる単語は、ソースコレクションから単語を抽出して作成されたインデックス付きコレクションからフェッチされます。索引付けされたコレクションには、抽出された単語の値として「_id」フィールドを持つ文書があります。他のフィールドは、このフィールドを持つ文書の文書IDです。これは、正規表現のようなクエリで行うことができます。返された単語はユーザーに送信されます。ユーザーが単語を選択すると、索引付けされたコレクション内の単語を検索し、そこからドキュメントの場所を取得し、ソースコレクションを照会して実際のドキュメントを取得します。 – Jbaur

関連する問題