問題タブ [tm]

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.

0 投票する
3 に答える
3918 参照

r - tm パッケージを使用して R で可読性を計算する方法

ライブラリには、これに対して事前に構築された関数がありtmますか、それともうまく機能する関数はありますか?

私の現在のコーパスは、次のように tm にロードされます。

koRpusを使用してみましたが、既に使用しているパッケージとは別のパッケージで再トークン化するのはばかげているようです。また、結果を に再組み込みできるように、戻りオブジェクトをベクトル化する際にも問題がありましたtm。(つまり、エラーが原因で、コレクション内のドキュメントの数よりも多くの、または少ない可読性スコアが返されることがよくあります。)

母音を音節として解析する単純な計算を行うことができることは理解していますが、すでにエッジケースを処理するより完全なパッケージが必要です (サイレント e に対処するなど)。

私が選んだ可読性スコアは、Flesch-Kincaid または Fry です。

d が 100 個のドキュメントのコーパスである最初に試したこと:

残念ながら、x が返すドキュメントは 100 未満であるため、成功を正しいドキュメントと関連付けることはできません。(これは、R における「foreach」と「lapply」の私の誤解の一部ですが、テキスト オブジェクトの構造が非常に難しく、適切にトークン化できず、flesch.kincaid を適用できず、適用の合理的な順序でエラーを正常にチェックできないことがわかりました。声明。)

アップデート

私が試した他の2つのこと、koRpus関数をtmオブジェクトに適用しようとしています...

  1. デフォルトのトークナイザーを使用して、引数を tm_map オブジェクトに渡します。 tm_map(d,flesch.kincaid,force.lang="en",tagger=tokenize)

  2. トークナイザーを定義し、それを渡します。

    /li>

これらの両方が返されました:

次に、d[ 1 ]の全文をリストします。見つかったような?関数を正しく渡すにはどうすればよいですか?

更新 2

koRpus 関数を lapply で直接マップしようとすると、次のエラーが表示されます。

これは奇妙なエラーのように見えます---テキストが見つからないという意味ではないと思いますが、見つかったテキストをダンプする前に、空白のエラー コード (「tokenizer」など) が見つからないということです。 .

更新 3

を使用した再タグ付けのもう 1 つの問題koRpusは、(tm タガーと比較して) 再タグ付けが非常に遅く、トークン化の進行状況が stdout に出力されることでした。とにかく、私は次のことを試しました:

ここでの私の意図は、y上記のオブジェクトtm(d)をメタデータとしてコーパスに再バインドすることmeta(d, "F-KScore") <- yです.

残念ながら、実際のデータ セットに適用すると、次のエラー メッセージが表示されます。

私の実際のコーパスの 1 つの要素は、NA であるか、長すぎるか、その他の法外なものであるに違いないと思います。

tmそのため、現在、ライブラリとうまく連携するスコアを読み取るためのビルド済み関数はないようです。誰かがエラーをキャッチする簡単な解決策を見つけない限り、関数呼び出しに挟み込んで、明らかに間違っている、不正な形式のドキュメントをトークン化できないことに対処できますか?

0 投票する
3 に答える
26214 参照

r - トピックモデルを使用した LDA で、さまざまなドキュメントがどのトピックに属しているかを確認するにはどうすればよいですか?

私は topicmodels パッケージの LDA を使用しています。約 30,000 のドキュメントで実行し、30 のトピックを取得し、トピックの上位 10 語を取得しました。非常によく見えます。しかし、どのドキュメントがどのトピックに属しているかを最も高い確率で確認したいのですが、どうすればそれを行うことができますか?

0 投票する
1 に答える
1587 参照

performance - R: tm Textmining パッケージ: Doc レベルのメタデータ生成が遅い

処理するドキュメントのリストがあり、レコードごとに、R パッケージである tm が (テキスト ファイルの読み取りから) 生成する「コーパス」データ構造内のドキュメント「メンバー」にメタデータを添付したいと考えています。

この for ループは機能しますが、非常に遅く、関数 f ~ 1/n_docs としてパフォーマンスが低下するようです。

これはコーパス変数に何らかの影響を与える可能性がありますが、私にはわかりません。しかし、tm_map() (lapply() 関数に似ています) 内に配置すると、はるかに高速に実行されますが、変更は永続化されません。

変数コーパスには、tm_map 関数を終了した後、空のメタデータ フィールドがあります。それは満たされるべきです。コレクションに関しては、他にもいくつかのことがあります。

meta() 関数の R ドキュメントには、次のように書かれています。

これらの呼び出しの多くを ("crude" の代わりに var "corpus" を使用して) 試しましたが、うまくいかないようです。他の誰かがかつて同様のデータセットで同じ問題を抱えていたようです ( 2009 年のフォーラム投稿、応答なし)

0 投票する
1 に答える
3379 参照

r - R 関数 row_sums および col_sums のドキュメントが見つかりません

tmパッケージ内の tf-idf 加重関数の変更に関する自分の質問を解決しようとしています: https://stackoverflow.com/questions/15045313/ching-tf-idf-weight-function-weight-not-by-occurrences-期間中の数による

そうすることで、TermDocumentMatrixweightTfIdfに次のコードを含む関数を見ています。m

row_sumsしかし、関数またはのドキュメントが見つかりませんcol_sums。それらを使用して独自の重み付け関数を作成しようとすると、エラーが発生します。Error in weighting(x) : could not find function "col_sums"

これらの関数はどこで定義されていますか?

R以下から完全な機能情報を貼り付けました。

0 投票する
2 に答える
22117 参照

r - R:wordcloudグラフィックにタイトルを追加/ png

用語ドキュメントマトリックスからタグクラウドを生成する実用的なRコードがいくつかあります。

今度は、多くのドキュメントから大量のタグクラウドを作成し、後でそれらを視覚的に検査したいと思います。タグクラウド画像がどのドキュメント/コーパスに属しているかを知るために、生成されたグラフィックにタイトルを追加します。それ、どうやったら出来るの?

これは明らかかもしれませんが、私はまだRグラフィックスの初心者です。

私自身のコーパスは大きすぎてここにリストできませんが、このSO質問のコード(SOユーザーAndrieから受け入れられた回答のコードと組み合わせて使用​​できます: wordcloudのスペース カスタムタイトルとカスタムテキストを追加したいこのような写真に

0 投票する
3 に答える
16671 参照

r - R は %in% を使用して文字ベクトルからストップワードを削除します

ストップ ワードを削除したい文字列を含むデータ フレームがあります。tmパッケージは大きなデータセットでありtm、実行が少し遅いように見えるため、パッケージの使用を避けようとしています。私はtm stopword辞書を使っています。

これは私が探している答えではありません。ベクトルまたはベクトルにない単語の文字列を取得しようとしていますstopWords

私は何を間違っていますか?

0 投票する
0 に答える
264 参照

r - Rでtmパッケージのインストールが失敗する

を使用して Fedora マシンにtmパッケージをインストールしようとしていますが、インストールinstall.packages("tm")中にコンパイル エラーが発生します。エラーのスナップショットを次に示します。

0 投票する
1 に答える
4012 参照

r - Rテキストマイニング - Rデータフレーム列のテキストを単語頻度のある複数の列に変更する方法は?

4列のデータフレームがあります。列 1 は ID で構成され、列 2 はテキスト (それぞれ約 100 語) で構成され、列 3 と 4 はラベルで構成されます。

ここで、テキスト列から (最も一般的な単語の) 単語の頻度を取得し、それらの頻度を余分な列としてデータ フレームに追加したいと思います。列名を単語自体にし、列をテキスト内の頻度 (テキストごとに 0 から ... の範囲) で埋めたいと思います。

tm パッケージのいくつかの機能を試してみましたが、今のところ満足できません。この問題に対処する方法やどこから始めればよいか、誰にもわかりませんか? 仕事をすることができるパッケージはありますか?

0 投票する
1 に答える
21673 参照

r - Rのtmパッケージを使用して、複数のコーパスの上位N個の頻繁な用語のデータフレームを作成します

RのパッケージでいくつかTermDocumentMatrixのを作成しました。tm

ドキュメントの各セットで最も頻繁に使用される10の用語を見つけて、最終的に次のような出力テーブルを作成したいと思います。

定義上、findFreqTerms(corpus1,N)N回以上出現するすべての用語を返します。これを手動で行うには、10程度の用語が返されるまで、Nを変更できますが、の出力findFreqTermsはアルファベット順にリストされているため、正確に正しいNを選択しない限り、実際にはどれがトップ10であるかわかりません。 R tmパッケージのstr(corpus1)ように見ることができるTDMの内部構造を操作することで、最も頻繁な用語のマトリックスを作成しますが、ここでの答えは私には非常に不透明だったので、質問を言い換えたいと思いました。

ありがとう!

0 投票する
1 に答える
1024 参照

r - Rで指定された用語を含むDocumentTermMatixを作成します

tm非常に頻繁に発生する用語のみを使用して、コーパスを使用してDocumentTermMatrixを作成しています。(つまり、MinDocFrequency = 50)

ここで、異なるコーパスを使用してDTMを作成したいと思いますが、前の用語とまったく同じ用語を数えます。(相互検証するため)

最初のコーパスと同じ方法を使用してDTMを生成すると、元のコーパスとは頻度が異なるため、多かれ少なかれ用語が含まれるか、異なる用語が含まれることになります。

どうすればこれを行うことができますか?どういうわけかカウントする用語を指定する必要がありますが、方法がわかりません。

私を正しい方向に向けることができる人に感謝します、

-N

編集:再現可能な例を求められたので、ここにいくつかのサンプルコードを貼り付けましたhttp://pastebin.com/y3FDHbYS 再編集:

ただし、これは、コーパスを作成するために私がすでに慣れ親しんでいる方法を示しているだけであり、その結果、2つのDTM(TextDTMとValiTextDTM)には異なる用語が含まれています。私が達成しようとしているのは、検証ではそれほど頻繁ではない場合でも、両方のコーパスで同じ用語を数えることです。この例では、検証の場合に非常にスパースなマトリックスが生成される場合でも、「テキスト」という単語の出現回数をカウントしようとしています。