問題タブ [lingpipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - LingPipe POS タガーのメモリ不足
LingPipe POS taggerを使用して、大量の (~180MB) 電子メールのコーパスで最も頻繁に使用される品詞をカウントするのに問題があります。具体的には、膨大な量のメモリ (少なくとも 4 GB) を消費するため、JVM にどれだけのメモリを割り当てても、OutOfMemoryError で失敗します。あきらめて別のタグ付けライブラリを試す前に、LingPipe に精通している人がいるかどうかを尋ねて、自分の何が間違っているかを知っているかどうかを確認してみようと思いました。
まず、Java シリアライゼーション コードのボイラープレートである LingPipe ライブラリに含まれている pos-en-general-brown.HiddenMarkovModel ファイルから HiddenMarkovModel オブジェクトを読み取ります。次に、次のように使用しようとします。
は次countTagsInEmails
のように定義されます。
FileUtil.loadMLPosts()
詳細は重要ではないと思います。Email
これは、180MB の電子メール アーカイブ ファイルからオブジェクトのリストを作成するだけでbody
、それぞれのフィールドはEmail
電子メールの本文を含む文字列です。Multiset
これは Guava の実装であることに注意してください。
プログラムの実行中に Java のメモリ使用量を監視すると、最初は 1GB (すでに驚くほど高くなっています) であり、タグ付けされた電子メールが増えるにつれて着実に増加します。いくつかの時点で、一度に数百メガバイトずつ劇的にジャンプします。コーパスへのタグ付けが完了する前に、4GB (JVM に与えたメモリ量) に達してクラッシュします。
LingPipe の HmmDecoder はメモリ効率が悪いのでしょうか? それとも私の使い方が悪いのでしょうか?LingPipe の (かなりまばらな) ドキュメント ページにある POS タグ付けの例では、一度に 1 文ずつタグ付けするデコーダが常に示されていることに気付きましたdecoder.tag()
。
java - Java の NLP ライブラリのインストール ガイドライン
私はNLPの初心者です。インストールを開始するには、基本的なアイデアが必要です。LingPipe とオープン NLP インストール セクションを読みましたが、maven と追加のトレーニング セット、モデルなどをインストールする理由がわかりませんでした。インストールの簡単な説明は、コーディングを開始するのに役立ちます。プラットフォーム - Ubuntu
この質問が一般的または単純すぎる場合は申し訳ありません
topic-modeling - トピック モデリング Java ツールキットの使用
私はテキスト分類に取り組んでおり、トピック モデル (LDA) を使用したいと考えています。私のコーパスは、少なくとも 24,000 のペルシャのニュース文書で構成されています。コーパス内の各ドキュメントは、ニュースから抽出された (キーワード、重み) ペアの形式になっています。
私は 2 つの Java ツールキットを見ました: mallet と lingpipe です。データのインポートに関するマレットのチュートリアルを読みましたが、私が持っている形式ではなく、プレーンテキストでデータを取得します。変更する方法はありますか?
リングパイプについても少し読んでください。チュートリアルの例では、整数の配列を使用していました。大量のデータに便利ですか?
LDA のどの実装が自分に適しているかを知る必要がありますか? 私のデータに合った他の実装はありますか? (ジャワ語で)
nlp - LingPipe Named Entity Recognizer が多くの不一致を出力する
LingPipe を使用して、このチュートリアルに従って、名前付きエンティティ (人、人、および組織) を抽出しようとしています。これが私が名前を抽出しようとしている全文であり、ここにコードがあります(簡潔にするために例外処理は省略されています):
そして、これは私が得る出力(の一部)です:
ご覧のとおり、 、 、 、 、 、 などの不一致/Bali.
部分pair
一致the Bali
がI'
多数Widodo. I
あり" Abbott
ます"
。ライブラリの NER は問題なく動作していると思いますが、問題は、上記のコードがこのライブラリのクラス/メソッドを何らかの形で誤用していることです。しかし、コードの何が問題なのかわかりませんか?
何か案は?
java - lingpipe Java エラーを修正する方法
既存の ant-buildfile オプションで lingpipe を開き、PolarityBasic.java をパッケージに入れるパッケージを作成します。
変更しmPolarityDir=new file("Desktop/POLARITY_DIR/txt_sentoken")
たり、ファイルを含む文字列を作成したりしても、同じエラーが発生します。
http://alias-i.com/lingpipe/web/download.html lingpipe-4.1.0
java - lingpipe を使用した段階的な言語モデルのトレーニング
DynamicLMClassifier.createNGramProcess(categories,nGram)
20 GB を超える大きなデータセットでトレーニングしようとしています。現在、トレーニング ファイル全体を文字列としてトレーニング メソッドに供給していますが、明らかな理由から、java.lang.OutOfMemoryError: Java heap space
このようなトレーニングをサポートするために JVM ヒープ サイズを増やすことは可能かもしれませんが、漸進的な方法を見つけることに興味があります。
トレーニング コードは次のようになります。
理想的な解決策は、トレーニング セットの N 個のサブセットのループで classifier.handle() をフィードすることです。モデルは、MLE を計算するためにそれぞれのカウントを含む ngrams タプルを記憶するだけでよいため、理論的にはこれは可能であると思います。