問題タブ [text2vec]
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 - text2vec と topicmodels は、LDA に適したパラメーター設定で同様のトピックを生成できますか?
さまざまなパッケージの結果、つまりアルゴリズムがどのように異なるのか、また同様のトピックを生成する方法でパラメーターを設定できるかどうか疑問に思っていました。特にパッケージtext2vec
を見てみました。topicmodels
以下のコードを使用して、これらのパッケージで生成された 10 のトピック (用語についてはコード セクションを参照) を比較しました。同様の意味を持つ一連のトピックを生成することができませんでした。たとえば、トピック 10 fromは「警察」と関係がありますが、「警察」または類似の用語を参照するtext2vec
トピックはありません。topicmodels
また、 が制作したトピック 5 のペンダントは、 が制作しtopicmodels
たトピックの中で、「人生、愛、家族、戦争」に関連するものを特定できませんでしたtext2vec
。
私は LDA の初心者なので、経験豊富なプログラマーにとって私の理解は素朴に聞こえるかもしれません。しかし、直観的には、結果の妥当性/堅牢性を証明するために、同様の意味を持つ一連のトピックを生成できるはずであると想定するでしょう。もちろん、必ずしもまったく同じ用語セットではありませんが、同様のトピックを扱う用語リストです。
おそらく問題は、これらの用語リストの私の人間の解釈が類似性を捉えるのに十分ではないということですが、人間の解釈の類似性を高める可能性のあるいくつかのパラメーターがあるかもしれません. これを達成するためのパラメーターを設定する方法について誰かが私を案内してくれますか、そうでなければ、問題の理解を深めるために適切なリソースに関する説明やヒントを提供できますか?
関連する可能性のあるいくつかの問題を次に示します。
text2vec
は標準の Gibbs サンプリングではなく、WarpLDAを使用していることを知っています。これは、 とのアルゴリズムの違いtopcimodels
です。私の理解が正しければ、事前確率alpha
とdelta
使用された inはそれぞれtopicmodels
asdoc_topic_prior
とtopic_word_prior
inに設定されtext2vec
ます。- さらに、後処理では、text2vec を使用して
lambda
トピックの用語を頻度に基づいてソートすることができます。用語がどのようにソートされているか、まだ理解していません- 設定?topicmodels
に匹敵します。lambda=1
(同様のトピックを取得せずに、0から1の間で異なるラムダを試しました) - 別の問題は、設定しても完全に再現可能な例を作成するのが難しいように見えることです
seed
(たとえば、この質問を参照)。これは私の直接の質問ではありませんが、回答が難しくなる可能性があります。
長い質問で申し訳ありませんが、助けや提案を事前に感謝します。
Update2:最初の更新の内容を、より完全な分析に基づく回答に移動しました。
更新:text2vec
パッケージ作成者Dmitriy Selivanovの有益なコメントに従って、設定lambda=1
により、2 つのパッケージによって作成された用語リスト間のトピックの類似性が高まることを確認できます。
length(setdiff())
さらに、トピックをすばやくチェックして、両方のパッケージで生成された用語リストの違いを詳しく調べましたlength(intersect())
(以下のコードを参照)。この大まかなチェックは、text2vec
トピックごとにいくつかの用語を破棄することを示しています-おそらく個々のトピックの確率のしきい値によって? topicmodels
すべてのトピックのすべての用語を保持します。これは、タームリストから (人間が) 導出できる意味の違いの一部を説明しています。
前述のように、再現可能な例を生成するのは難しいように思われるため、以下のコードのすべてのデータ例を適応させていません。実行時間が短いため、誰でも自分のシステムでチェックできます。
text2vec - text2vec - トピックの単語は新しいデータで更新されますか?
text2vec
現在、パッケージから LDA を使用してトピック モデリングを行っています。私はなんとかdtmマトリックスを作成し、適用LDA
してそのfit_transform
メソッドをn_topics=50
.
各トピックのトップワードを見ていると、疑問が頭に浮かびました。その後、モデルを新しいデータに適用する予定であり、以前のモデルでは検出されなかった新しい単語が発生する可能性があります。モデルは、各単語をそれぞれのトピックに割り当てることができますか? さらに、これらの単語もトピックに追加されるので、 を使用してそれらを見つけることができますget_top_words
か?
答えてくれてありがとう!