問題タブ [text-analysis]
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.
algorithm - メトリックスコアの適切な重みを決定する方法
私はテキスト分析について個人的な調査を行っており、テキストの一部を「スコアリング」するために70近くのメトリック(代名詞の使用頻度、読みのレベル、母音の頻度、箇条書きの使用など)を考え出しました。
理想的には、同じ著者からの別々のテキストが同様のスコアを持つでしょう。最終的な目標は、多数の著者にインデックスを付け、スコアを使用して、誰が別の匿名のテキストを書いたかを推測することです。
スコアを0から100に正規化し、2つのテキストがどのように「類似」しているのかをパーセンテージで表したいと思います。重みを決定する方法などの質問?とスコアを計算する方法は?スコアリングメトリックの背後にある数学と正規化する方法を説明しますが、すべてのメトリックが同じ重みであると想定します。
私の質問はこれです:ユーザーごとの累積スコアがその特定のユーザーからの書き込みを最も正確に説明することを保証するために、各メトリックをスコアリングするときに使用する適切な重みをどのように決定しますか?
また、ユーザーごとに重みを割り当てることができます。単語あたりの音節がアリスのために作品を書いた人を最も適切に説明している場合、2文字の単語の頻度はボブにとって最適ですが、アリスの最も重い重みは単語あたりの音節にあり、ボブは2の頻度になります-文字の言葉。
machine-learning - スタンフォードトピックモデリングツールキットによって特定された30のトピックが互いに非常に類似しているのはなぜですか?
スタンフォードトピックモデリングツールキット(Twitterユーザーが共有)の19,500件の記事のコーパスで特定された30のトピック(約4時間かかりました)が互いに非常に類似している理由として考えられるものは何ですか?それらはほとんど同じ用語を持っており、頻度=>基本的に、私はただ1つのトピックを持っています:)
識別されたトピックはここで見つけることができます
ストップワードの削除、空白の折りたたみ、すべての小文字化など、段階を学習して推測する前に、テキストドキュメントの標準的な準備を行います。
私のパラメータのいくつか:
- numTopics = 30
- TermMinimumDocumentCountFilter =(10)〜>//<10ドキュメントで発生する用語をフィルタリングする
- TermDynamicStopListFilter(30)〜>//30の最も一般的な用語を除外します
- DocumentMinimumLengthFilter(10)//10語以上のドキュメントのみを取得
- topicSmoothing = SymmetricDirichletParams(0.01)
- termSmoothing = SymmetricDirichletParams(0.01)
- maxIterations = 10
nlp - Stanford Topic Modeling Toolbox が lda-output ディレクトリを生成しないのはなぜですか?
Sarah Palin の 14,500 通の電子メールから 30 のトピックを識別するコードを githubから実行してみました(1-2-3 の手順に従います)。著者が発見したトピックはこちら. ただし、Stanford Topic Modeling Toolbox は lda-output ディレクトリを生成しません。lda-86a58136-30-2b1a90a6 が生成されましたが、このフォルダーの summary.txt には、トピックの最初の割り当てのみが表示され、最終的な割り当ては表示されません。発見されたトピックの最終的な要約で lda-output ディレクトリを作成する方法はありますか? 前もって感謝します!
java - 大規模なコーパスでの Lucene/Lingpipe を使用した Java での用語文書頻度
巨大なファイル (3.5GB、300K 行、300K ドキュメント) にあるドキュメントの大規模なコーパスを、1 行に 1 つのドキュメントで分析しようとしています。このプロセスでは、索引付けに Lucene を使用し、前処理に Lingpipe を使用しています。
問題は、ドキュメント内の非常にまれな単語を削除したいということです。たとえば、ある単語がコーパス (巨大なファイル) 内で MinDF 回未満しか出現しない場合、その単語を削除したいと考えています。
私は Lucene でそれを試すことができます: すべての個別の用語の文書頻度を計算し、それらを昇順に並べ替え、DF が MinDF よりも低い用語を取得し、巨大なファイルをもう一度調べて、これらの用語を行ごとに削除します。
このプロセスは非常に遅くなります。Javaを使用してこれを行うより簡単な方法を知っている人はいますか?
よろしく
r - tm パッケージ エラー: ドキュメント用語マトリックスの定義エラー
「tm」パッケージを使用して、ロイター 21578 コーパス (1987 年以降のすべてのロイター ニュース記事) を分析しています。XML ファイルを R データ ファイルにインポートした後、テキストをクリーンアップします。プレーンテキストに変換し、小文字に変換し、ストップ ワードを削除します (以下を参照)。次に、コーパスをドキュメント ターム マトリックスに変換します。しかし、次のエラー メッセージが表示されます。
UseMethod("Content", x) のエラー: クラス "character" のオブジェクトに適用される 'Content' に適用可能なメソッドがありません
すべての前処理ステップは、文書用語マトリックスまで正しく機能します。
コーパスの非ランダム サブセット (4000 ドキュメント) を作成しましたが、ドキュメント ターム マトリックス コマンドはそれで正常に動作します。
私のコードは以下です。助けてくれてありがとう。
r - Rのドキュメントのコーパスから「空の」文字アイテムを削除しますか?
私はニュース記事のコーパスをトピックモデル化するためにRのtm
andパッケージを使用しています。ただし、トピックを台無しにしているlda
「文字以外の」問題が発生しています。""
これが私のワークフローです:
残念ながら、私がldaモデルをトレーニングすると、最も頻繁に出現する単語が ""であることを除いて、すべてが見栄えがします。以下に示すように語彙から削除し、上記のようにモデルを再推定することで、これを改善しようとしています。
しかし、それはまだそこにあります。
これを削除する方法について何か提案はありますか?ストップワードのリストに追加""
しても役に立ちません。
python - 緩く構造化されたドキュメントを解析する方法
このようなデータを持つデータフィードを分析しています
ここで、各仕様の意味を分析する必要がram 6GB, 1333 MHz, DDR3
あります。6GBが容量、1333 MHzが周波数、DDR3がRAMのタイプであることを理解する必要があります。しかし、ご覧のとおり、これらは非常に不規則です(一部のエントリには一部のフィールドがあり、他のフィールドがない場合があり、空白が区切り文字として使用される場合もあります。場合によっては,
s、場合によっては-
s)。私の最初の反応は正規表現を使用することでしたが、すぐにそれが愚かであることに気づきました。それから私split
はセパレーター(,
上記の場合)でできると思いましたが、セパレーターでさえ固定されていません。また、このアプローチは、このようなエントリには役に立ちませんmemory 4 GB 1333 MHz DDR3
。このエントリの区切り文字として空白を使用すると、異なるように見えます4
GB
1333
MHz
が、実際4 GB
には1333 MHz
異なっています。また、プログラムでそれを決定しIntel Core i3
、Intel Core i3を暗示する方法はありますか?私はそれを一度図書館に伝えなければならないことを理解しています、そして同じことを意味します。しかし、後でテキストを分析すると、理解できるはずです。上記のエントリのリストは、エントリがどのように可変であるかを示しています。これらのタスクを処理するのに役立つPythonライブラリ(または他の言語)はありますか?Core i3
i3-380
Ci3
Intel Core i3
Core i3
Ci3
pdf - 文字化けした PDF からテキストを抽出する
貴重なテキスト情報を含む PDF ファイルがあります。
問題は、テキストを抽出できないことです。得られるのは、文字化けしたシンボルの束だけです。PDF リーダーからテキスト ファイルにテキストをコピー アンド ペーストすると、同じことが起こります。ファイル -> Acrobat Reader でテキストとして保存しても失敗します。
手に入れることができるすべてのツールを使用しましたが、結果は同じです。これはフォントの埋め込みと関係があると思いますが、正確にはわかりません。
私の質問:
- この奇妙な文字化けの原因は何ですか?
- PDF からテキスト コンテンツを抽出する方法(プログラムで、ツールを使用して、ビットを直接操作するなど)?
- コピー時に文字化けしないように PDF を修正するにはどうすればよいですか?
math - 単語間の相関係数を計算しますか?
テキスト分析プログラムでは、テキスト内の特定の単語の共起を分析したいと考えています。たとえば、"Barack" と "Obama" という単語が他の単語よりも一緒に表示されることが多い (つまり、正の相関関係がある) ことを確認したいと思います。
これはそれほど難しいことではないようです。しかし、正直なところ、私は 2 つの数値間の相関を計算する方法しか知りません。テキスト内の 2 つの単語間の相関関係は知りません。
- どうすればこの問題に最善のアプローチができますか?
- 単語間の相関関係を計算するにはどうすればよいですか?
たとえば、バラク・オバマはオバマ・バラクよりもはるかに可能性が高いため、条件付き確率を使用することを考えました。しかし、私が解決しようとしている問題は、はるかに基本的なものであり、単語の順序に依存しません。
search-engine - 検索エンジン API を使用せずに、任意の単語の相対頻度を測定または比較する方法は?
インターネット上での使用頻度をヒューリスティックとして使用して、2 つの単語または語句の良い方をプログラムで選択したいと思ったことは、これまで何度もありました。
明白な方法、および手動で行う方法は、各用語を検索エンジンに入力し、「ヒット」数を記録することです。
しかし、大手検索エンジンは検索 API を非推奨にするか、API キーを使用しても 1 日あたり 100 件のクエリを無料に制限しています。無料のプロジェクトに取り組んでいる場合は、あまり良くありません。また、大手検索エンジンには、利用規約に「スクレイピング禁止」条項があります。
任意の言語、おそらく未確認の言語で、ストレージが限られているデバイスから動作する必要があります。これは、ローカルのコーパスまたはデータベースを持つことを除外します。
アプリケーションの 1 つの領域は、ウィクショナリーの編集者向けのツールであり、言語を知らなくても、いくつかのバリアントの主なスペルを選択するのに役立ちます。私が今考えているのは、頻度をヒューリスティックとして使用して、外国のスクリプトのスペルとラテン アルファベットの損失のある音訳との間の最適な変換を選択することです。