現在、私は、NLPに基づいてテキストデータを分析して視覚化するシステムを開発しています。単独インタラクティブビジュアライゼーションを処理セロリメッセージキューとAWSラムダタスク処理
バックエンド(パイソン+フラスコ+ AWS EC2)が分析を処理し、バックフロントエンドに結果を供給するためにAPIを使用して(FLASK + D3 + Herokuの)アプリ。
現在、プロトタイプでの解析は基本的なPython関数です。これは、大きなファイルでは解析が長くなり、結果としてフロントエンドへのAPIデータブリッジ時に要求タイムアウトが発生することを意味します。また、多くのファイルの分析は、リニアブロッキングキューで行われます。
このプロトタイプを拡張するには、Analysis(text)
関数をバックグラウンドタスクに変更して、それ以上の実行をブロックせず、関数が完了したらコールバックを実行できるようにする必要があります。入力テキストはAWS S3からフェッチされ、出力はAWS S3にも格納されることを目指して比較的大きなJSON形式になっているため、APIブリッジはフロントエンドアプリケーションのすべてのグラフのデータを含むこのJSONを単に取得します。 (私は、永続的なデータを格納するための大きなリレーショナルデータベース構造を作成するよりも、S3のほうがやや簡単です。)
私はCeleryで簡単な例を示していますが、紙の上でスケーリングの点でより良い解決策のように見えるラムダ...
Analysis(text)
関数は、あらかじめ構築されたモデルと比較的一般的なNLP Pythonパッケージの関数を使用します。プロトタイプをスケーリングする経験が不足しているので、このシナリオではどのソリューションが最も適しているかについての経験と判断をお願いしたいと思います。
ありがとうございます。