問題タブ [word-frequency]
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 - 自然言語処理のための単語頻度アルゴリズム
情報検索の学位を取得していないので、特定のテキスト本文で単語が出現する頻度をカウントするアルゴリズムが存在するかどうかを知りたいです。目標は、一連のテキスト コメントに対して人々が言っていることの「一般的な感触」をつかむことです。Wordleの行に沿って。
私が欲しいもの:
- 冠詞、代名詞など ('a'、'an'、'the'、'him'、'them' など) を無視する
- 固有名詞を保存する
- ソフトタイプを除き、ハイフネーションを無視する
星に手を伸ばすと、これらは桃色になります。
- ステミングと複数形の処理 (例: like、like、like、likeing は同じ結果に一致します)
- 形容詞(副詞など)とその主語のグループ化(「素晴らしい」、「サービス」ではなく「素晴らしいサービス」)
Wordnet を使用していくつかの基本的なことを試みましたが、やみくもに調整しているだけで、特定のデータで機能することを願っています。より一般的なものが素晴らしいでしょう。
algorithm - 大きな単語シーケンスで上位 K の頻繁な単語を見つける最も効率的な方法
入力: 正の整数 K と大きなテキスト。テキストは、実際には単語シーケンスとして表示できます。したがって、単語シーケンスに分解する方法を心配する必要はありません。
出力: テキスト内で最も頻繁に使用される K 語。
私の考えはこうです。
ハッシュテーブルを使用して、単語シーケンス全体をトラバースしながら、すべての単語の頻度を記録します。このフェーズでは、キーは「単語」であり、値は「単語頻度」です。これには O(n) 時間がかかります。
(単語、単語-頻度) ペアを並べ替えます。鍵は「単語頻度」です。これには、通常のソート アルゴリズムでは O(n*lg(n)) の時間がかかります。
ソート後、最初の K 語だけを取得します。これには O(K) 時間がかかります。
まとめると、合計時間は O(n+n lg(n)+K) です。K は N よりも小さいので、実際には O(n lg(n)) です。
これを改善できます。実際には、上位 K 個の単語が必要なだけです。他の言葉の頻度は私たちには関係ありません。したがって、「部分ヒープソート」を使用できます。ステップ 2) と 3) では、単に並べ替えを行うだけではありません。代わりに、次のように変更します。
2') 「単語頻度」をキーとして (単語、単語頻度) ペアのヒープを構築します。ヒープを構築するには O(n) 時間かかります。
3') ヒープから上位 K 個の単語を抽出します。各抽出は O(lg(n)) です。したがって、合計時間は O(k*lg(n)) です。
要約すると、このソリューションには O(n+k*lg(n)) の時間がかかります。
これは私の考えです。ステップ1)を改善する方法がわかりません。
情報検索の専門家がこの質問にもっと光を当ててくれることを願っています。
vb.net - VB.NETで単語の頻度を計算する最良の方法は何ですか?
C# で単語の頻度を計算する方法については、いくつかの良い例がありますが、どれも包括的なものではなく、VB.NET で本当に必要です。
私の現在のアプローチは、頻度カウントごとに 1 つの単語に制限されています。完全に正確な単語頻度リストを取得できるように、これを変更する最良の方法は何ですか?
私は実際のコード スニペットを希望しますが、一般的な「そうそう...これを使用してそれを実行する」も同様に機能します。
linux - 特定の用語の単語頻度の決定
私はコンピュータ サイエンスを専攻していない学生で、歴史の論文を書いています。この論文では、多数のテキストで特定の用語の頻度を特定し、これらの頻度を経時的にプロットして変化と傾向を特定します。特定のテキストファイルの単語頻度を決定する方法を理解しましたが、(比較的、私にとっては) 多数のファイル (>100) を扱っており、一貫性のために、頻度カウントに含まれる単語を制限したいと考えています特定の用語のセット (「ストップ リスト」の反対のようなもの)
これは非常に単純に保つ必要があります。最後に必要なのは、処理する各テキスト ファイルの特定の単語の頻度だけです。できればスプレッドシート形式 (タブで区切られたファイル) で、そのデータを使用してグラフや視覚化を作成できます。
私は日常的に Linux を使用しており、コマンド ラインを快適に使用できます。また、オープン ソース ソリューション (または WINE で実行できるもの) が大好きです。ただし、これは要件ではありません。
この問題を解決するには、次の 2 つの方法があります。
- 事前に定義されたリストを除いて、テキスト ファイル内のすべての単語を取り除き、そこから頻度をカウントする方法を見つけます。または、次のようにします。
- 事前に定義されたリストの用語のみを使用して頻度カウントを行う方法を見つけてください。
何か案は?
search - Googleの単語頻度の無料データベース?
今週のStackoverflowポッドキャストで、ジェフは2004年に、Googleに11万語の英語の単語を照会し、各単語のヒット数を含むデータベースを収集するスクリプトを作成したと述べました。彼らはこれをStackoverflowで使用します。たとえば、各質問ページの右側にある「関連」リストに使用します。
今日、同様のスクリプトを使用してこれらの1つを作成するのは難しいため(Joelが述べたように、「30,000語でドアをノックする」)、より最新の無料のデータベースを誰かが知っているかどうか疑問に思いました。 Googleの単語の頻度(たとえば、jquery、ruby、azureなど、それ以降確実に変更されたIT単語の場合)。
php - PHP でのテキスト ファイルのインデックス作成
私は、4 文字以上のすべての単語を取得し、その単語が使用された回数と共にそれらをデータベースに格納するインデクサーを作成するという課題に直面しました。
このインデクサーを 4,000 個の txt ファイルで実行する必要があります。現在、約 12 ~ 15 分かかります。スピードアップするための提案があれば教えてください。
現在、次のように単語を配列に配置しています。
現時点での最大のボトルネックは、単語をデータベースに保存するためのスクリプトだと思います。ドキュメントをエッセイ テーブルに追加する必要があります。次に、テーブルに単語が存在する場合は、単語が存在しない場合はフィールドにエッセイ ID (単語の頻度) を追加するだけで、それを追加する必要があります...
java - プログラミングパールの単語頻度
「Programming Pearls」では、次の問題に遭遇しました。問題はこれです:「単語を頻度の低い順に印刷する」。私が理解しているように、問題はこれです。与えられた文字列配列があると仮定して、それを呼び出しましょうs
(私がランダムに選択した単語、それは問題ではありません)、
文字列 "cat" は 4 回、"fox" は 3 回、"dog" は 2 回出現することがわかります。したがって、望ましい結果は次のようになります。
私はJavaで次のコードを書きました:
配列をソートし、配列内の各単語の出現回数を書き込むカウント配列を作成しました。
私の問題は、どういうわけか整数配列要素と文字列配列要素のインデックスが同じではないことです。整数配列の最大要素に従って単語を出力するにはどうすればよいですか?
algorithm - 単語頻度の追跡/カウント
単語の頻度カウントを保存およびクエリできるようにするための優れた設計について、コミュニティのコンセンサスを得たいと考えています。テキスト入力を解析し、単語が(時間の経過とともに)何回出現したかを保存する必要があるアプリケーションを構築しています。したがって、次の入力が与えられます。
- 「あざける鳥を殺すために」
- 「ピアノ奏者の嘲笑」
次の値を格納します。
後で、任意の単語のカウント値をすばやくクエリできます。
私の現在の計画は、単純に単語とカウントをデータベースに保存し、単語カウント値のキャッシュに依存することです...しかし、これを長期的に実行可能なソリューションにするのに十分なキャッシュヒットが得られないと思います.
アルゴリズム、データ構造、またはこれを優れたソリューションにする他のアイデアを提案できる人はいますか?
python - Python を使用したテキスト内の単語頻度。ストップ ワードは無視
これにより、テキスト内の単語の頻度がわかります。
これはまた、「the」「an」「a」などの役に立たない言葉を私に与えます
私の質問は、これらの一般的な単語をすべて削除できる Python で利用可能なストップ ワード ライブラリはありますか? これをGoogle App Engineで実行したい