問題タブ [topicmodels]
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.
r - LDA によるトピックの予測
R の「lda」パッケージで作成したフィットからトピックの割り当てを抽出しようとしています。フィットを作成しました:
...そして、各トピック ドキュメント割り当ての確率、または単に各ドキュメントの最も可能性の高いトピックを抽出したいと考えています。「topicmodel」パッケージを使用すると、呼び出すことができます
それを取得するには(トピックモデルを使用したLDAのように、さまざまなドキュメントがどのトピックに属しているかを確認するにはどうすればよいですか? )
「lda」で同じものを得るにはどうすればよいですか?
r - 要素が1つしかない「リスト」のクラスをRのオブジェクトに変更するにはどうすればよいですか?
次のコードを使用して、トピックの数が 26 から 35 の範囲のトピック モデルのリストを 1 ずつ作成しました。
best.model を呼び出すと、次のようになります。
次に、各トピック モデルを個別のオブジェクトに抽出しようとします。
ただし、各モデルのクラスを呼び出すと、次のようになります。
最初の best.model リストから各要素を抽出し、各要素を簡単に操作できるオブジェクトにするにはどうすればよいですか?
java - マレットでトピックの確率分布を取得する方法は?
mallet を使用すると、特定の数のトピックとその単語を取得できます。トピック ワードが確率分布 (つまり、合計が 1) になるようにするにはどうすればよいですか?
たとえば、次のように実行すると、マレットによって与えられた出力を使用して、トピック 0 のトピック ワードの確率が 1 になるようにするにはどうすればよいですか?
r - DocumentTermMatrix には用語頻度重み付けエラーが必要です
非常に大きなデータセットで topicmodels パッケージの LDA() を使用しようとしています。次のエラーを修正するためにすべてを試した後、「nr * nc : 整数オーバーフローによって生成された NA」および「入力行列の各行には、少なくとも 1 つのゼロ以外のエントリを含める必要があります」というエラーが発生しました。
r - mallet パッケージを使用した新しいテキストの分類
Rパッケージを使用して新しいテキストデータをトピックに分類する方法があるかどうかは誰にも分かりmallet
ませんか?
このパッケージの一般的なルーチンは次のとおりです。
しかし、事前トレーニング済みのモデルを使用して新しいデータを分類する方法はどこにも見つかりませんでした。topicmodels
別の方法は、パッケージを使用するか、コマンド ラインからMalletを実行することです。どちらのオプションも合理的です (ただし、Mallet を使用するとトピックモデルよりもはるかに説得力のある結果が得られる傾向があると言わざるを得ません)、R パッケージを使用してモデルを既にトレーニングしておりmallet
、トピックを変更したくない場合は、次の方法を見つけます。mallet
パッケージを使用してデータを分類すると非常に役立ちます。
r - Windows の R は一部の文字を処理できません
Linux で LDA を実行したところ、トピック 2 の「ø」などの文字は表示されませんでしたが、Windows で実行すると表示されます。誰もこれに対処する方法を知っていますか? パッケージquanteda
とtopicmodels
.
編集:
データ: https://www.dropbox.com/s/tdr9yok7tp0pylz/technology201501.csv
コードは次のようなものです。
r - R の topicmodels パッケージを使用した LDA、各用語のトピック確率を取得するにはどうすればよいですか?
LDA の topicmodels パッケージを使用しています。各トピックがどの程度関連しているか、または関連していないかを示すビジュアライゼーションを作成したいと考えています。トピック 1 に固有の単語のクラスターを想定していますが、別のトピックに関連するいくつかのキーワードが共有されています。ここでのアドバイスは素晴らしいでしょう。続ける:
これを行うには、各トピックに対する各項の確率を知る必要があります。topicmodels パッケージでこれを取得するにはどうすればよいですか? 条件は次の方法で表示できます。
しかし、値を取得する方法がわかりません。アイデア?
r - topicmodels を使用した Quanteda: 削除されたストップワードが結果に表示されます (中国語)
私のコード:
コードが機能し、結果が表示されます。出力の例を次に示します。
これが問題です。私の投稿はすべてセグメント化されており (中国語では必要な前処理ステップ)、ストップ ワードが削除されています。それにもかかわらず、トピック モデルは、既に削除された 1 文字の停止語を含むトピックを返します。生の .txt ファイルを開いて、特定の 1 文字のストップ ワードに対して ctrl-f を実行すると、結果が返されません。しかし、これらの用語は R コードから返されたトピックに表示されます。これはおそらく、個々の文字が他の複数文字の単語の一部として出現するためです。たとえば、就はストップワードとして扱われる前置詞ですが、成就は「成功」を意味します。
これに関連して、特定の用語が分割されています。たとえば、私が調査しているイベントの 1 つには、ロシアのプーチン大統領 (「普京」) への言及が含まれています。ただし、トピック モデルの結果では、"普" と "京" のエントリが別々に表示され、"普京" のエントリはありません。(未加工のテキストの最初の単語と比較して、出力トピック 2 の 10 行目と 11 行目を参照してください。)
ここで発生する追加のトークン化ステップはありますか?
編集:再現可能にするために変更されました。なんらかの理由で、紹介の段落も削除するまで投稿できませんでした。
r - R の LDA トピック モデルに単語をシードする
私は、「ユーロ懐疑論」または「ユーロセプティック」という用語を使用する基準に基づいて収集されたニュース記事のデータセットを持っています。これらの記事の主なトピックを特定するために、lda
パッケージを使用してトピック モデルを実行しています (dfm
マトリックスが組み込まれています)。quanteda
しかし、興味のある単語はどのトピックにも表示されません。したがって、これらの単語をモデルにシードしたいのですが、それを行う方法が正確にはわかりません。
このパッケージtopicmodels
では、seedwords という引数が許可されていることがわかります。これは、 「matrix
またはオブジェクト クラスとして指定できます」simple_triplet_matrix
が、他に指示はありません。asimple_triplet_matrix
は文字列ではなく整数のみを受け取るようです。「euroscepticism」と「eurosceptic」という単語をモデルにシードすることを知っている人はいますか?
コードの短縮版は次のとおりです。