解析されたデータの自然言語処理の永続化


12

最近、スタンフォードのCoreNLPを使用して自然言語処理(NLP)の実験を開始しましたが、テキストマイニングアプリケーションなどのNLP解析データを保存する標準的な方法にはどのようなものがありますか?

面白いと思う方法の1つは、子を隣接リストとして保存し、再帰クエリをうまく利用することです(Postgresはこれをサポートしており、非常にうまく機能していることがわかりました)。

しかし、私は長年にわたってこの分野で働いている人々によって採用されてきた分析の種類に応じて、おそらくこれを行うための多くの標準的な方法があると思います。それでは、NLPで解析されたデータの標準的な永続化戦略とは何ですか?

回答:


3

私はかつてNLPツールキットを使用していて、あなたが説明した問題に遭遇しました。(少なくとも)2つのアプローチがあると思います。

  • (暗黙的なアプローチ)、メモ化の使用

    関数が第一級オブジェクト(Lua、Python、Perl 1など)であるプログラミング言語では、特定の値が計算されると、関数を(実行時に)計算値に置き換えることで自動メモ化を実装できます。パラメータのセット。

    これは私が使用したアプローチであり、迅速に実装できました。欠点は、特定の大きなデータ構造がディスク上に保持されることであり、読み込みは再計算よりも桁違いに速いものの、まだ時間がかかりました。

  • (明示的)、リレーショナルまたはドキュメント指向のデータベースを使用して、将来気になるすべての結果を保存します。これは最初はより注意を払う必要がありますが、長い目で見れば成果があります。

興味深いかもしれません:


編集:私は、多段階の長期実行中の計算のために最近使用してきたことをもう一つは、ワークフローフレームワーク、その存在している数十。それは実際には永続性についてではありませんが、永続性はワークフローのステップです。私はそのためにluigiを試しています。たとえば、多くの定型コードを排除できるHadoopおよびPostgresヘルパークラスが付属しています。


2

優れた戦略は、MongoDBやCouchDBのようなNOSQLデータベースのような優れたReduce / Map機能のデータベースを使用することです。
これらのデータベースでは、用語と隣接関係をマッピングする単純なコード化ルール、および情報を削減する(「グループ化」する)単純なコード化ルールを作成できます。

ここから開始できます:
http : //www.mongodb.org/
http://wiki.apache.org/couchdb/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.