テキストファイルがいくつかあるディレクトリがあります。各ファイルの各単語の頻度をどのように数えますか?単語とは、文字、数字、下線の文字を含むことができる文字の集合を意味します。各単語の頻度を数えるには
答えて
は、内のすべての単語の出現頻度をカウントするソリューションです。ファイル:
この言葉は自分の周波数を使用してファイル内のすべての単語(例えばが含まれています後 var words = new Dictionary<string, int>(StringComparer.CurrentCultureIgnoreCase);
countWordsInFile("file1.txt", words);
:
あなたはこのようにこのコードを呼び出すことができますwords["test"]
は、 "test"がファイルの内容に含まれている回数を返します。複数のファイルの結果を累積する必要がある場合は、同じ辞書を持つすべてのファイルのメソッドを呼び出します。ファイルごとに別々の結果が必要な場合は、毎回新しい辞書を作成し、@DarkGrayのような構造を使用することを推奨します。
ワードカウント:
int WordCount(string text)
{
var regex = new System.Text.RegularExpressions.Regex(@"\w+");
var matches = regex.Matches(text);
return matches.Count;
}
ファイルから読み込んだテキスト:構造をカウント
string text = File.ReadAllText(filename);
ワード:ここ
class FileWordInfo
{
public Dictionary<string, int> WordCounts = new Dictionary<string, int>();
}
List<FileWordInfo> fileInfos = new List<FileWordInfo>();
この正規表現では、文字、数字、下線文字のみを含むことができる文字は許可されていますか?また、単語、カウント回数、ファイルに関する情報を格納するために使用する一般的なコンテナはどれですか? –
@Grienders現在の亜種を確認してください –
あなたのコードは何をしていますか?それは私が必要なことをしない!それは各単語の頻度を数えますか、またはそれはすべての単語の量を数えますか? –
@aKzenT回答は良いですが問題があります!彼のコードは、単語が辞書にすでに存在するかどうかを決してチェックしません!そこでコードを次のように変更しました。
private void countWordsInFile(string file, Dictionary<string, int> words)
{
var content = File.ReadAllText(file);
var wordPattern = new Regex(@"\w+");
foreach (Match match in wordPattern.Matches(content))
{
if (!words.ContainsKey(match.Value))
words.Add(match.Value, 1);
else
words[match.Value]++;
}
}
もっと簡単なLinq-ishの代替方法があります。ここでの鍵は、File.ReadLines
(怠惰な読み物です)とstring.Split
で構築されたフレームワークを使用することです。
private Dictionary<string, int> GetWordFrequency(string file)
{
return File.ReadLines(file)
.SelectMany(x => x.Split())
.Where(x => x != string.Empty)
.GroupBy(x => x)
.ToDictionary(x => x.Key, x => x.Count());
}
多くのファイルから頻度を取得するには、params
に基づいて過負荷を設定することができます。
private Dictionary<string, int> GetWordFrequency(params string[] files)
{
return files.SelectMany(x => File.ReadLines(x))
.SelectMany(x => x.Split())
.Where(x => x != string.Empty)
.GroupBy(x => x)
.ToDictionary(x => x.Key, x => x.Count());
}
- 1. 特定の単語の後の単語の頻度を数える
- 2. 単語の頻度を数えて並べ替えます。
- 3. Javaを使用してテキストファイルの単語の頻度を数えるには?
- 4. 文書内の単語数頻度
- 5. トピックモデリング:LDA、各トピックの単語頻度とWordcloud
- 6. SQL - 単語頻度をカウントする
- 7. SQLデータベースの各単語の数を数えるには?
- 8. 各行の文字の頻度を数える方法
- 9. 単語内の文字の頻度
- 10. 単語内の文字の頻度
- 11. R単語頻度でのテキスト分析
- 12. WikiPediaの単語頻度記事
- 13. MySQL - 長いテキストフィールドの単語頻度カウント
- 14. 文書用語集の単語を頻度で並べ替えます。R
- 15. Python - テキストファイル内の単語リストの単語頻度を見つける
- 16. 単語の頻度を含める辞書を拡張する
- 17. 値の頻度を数える
- 18. javascriptを使用して特定の単語の単語頻度カウンタ
- 19. 複数のcsvファイルの単語のうち、ストップワードを含まない単語の頻度を調べる
- 20. 文の重要度スコアと単語頻度分布stanford-nlp
- 21. バイナリツリーを使って単語の頻度を追跡する
- 22. リスト内の単語の頻度をカウントする
- 23. Pythonでステミングした後の単語の頻度を調べる
- 24. Cの各行の単語を数える方法
- 25. Python nltk単語とフレーズの頻度をカウントする
- 26. 配列と単語の頻度をマージする
- 27. テキスト中の単語頻度をカウントするか?
- 28. リスト内で最も頻繁に使用される単語を数える
- 29. 文書用語行列から単語頻度を抽出する方法は?
- 30. 辞書の理解のある単語頻度
何をしようとしていますか?どのようにあなたはそれをやろうとしましたか?どのように機能しませんでしたか? –
私はまず何をすべきかわかりません。主な質問は、どのように単語を検索するのですか?単語、回数、ファイルに関する情報を格納するためには、どのような一般的なコンテナを使用するべきですか。 –