c# - 计算文本文件中特定单词的频率

标签 c# .net regex vb.net text

我有一个文本文件存储为字符串变量。文本文件经过处理,因此仅包含小写单词和空格。现在,假设我有一个静态词典,它只是特定单词的列表,并且我想从文本文件中计算词典中每个单词的出现频率。例如:

Text file:

i love love vb development although i m a total newbie

Dictionary:

love, development, fire, stone


我希望看到的输出类似于以下内容,列出了字典单词及其计数。如果使编码更简单,它也只能列出文本中出现的词典单词。

===========

WORD, COUNT

love, 2

development, 1

fire, 0

stone, 0

============


使用正则表达式(例如“ \ w +”),我可以获得所有单词匹配,但是我不知道如何获取字典中的计数,因此我陷入了困境。这里的效率至关重要,因为字典很大(约100,000个单词),文本文件也不小(每个约200kb)。

感谢您的帮助。

最佳答案

var dict = new Dictionary<string, int>();

foreach (var word in file)
  if (dict.ContainsKey(word))
    dict[word]++;
  else
    dict[word] = 1;

关于c# - 计算文本文件中特定单词的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520876/

相关文章:

c# - 构造我自己的 HttpRequest 对象

java - 如何使这个正则表达式成为有效的 Java 正则表达式?

python - 使用 python 正则表达式模块处理带重音的 Unicode 字符

c# - Blob 触发的 Azure 函数无法部署,但可以在本地运行,并且没有任何错误迹象

c# - 从数据库获取值时 DBNULL.Value 始终返回 True

c# - 调试和发布之间的C#区别

C# Mongo FirstOrDefaultAsync 挂起

c# - 如何解决Azure DataLakeStore文件内容处置添加在文件中?

c# - PrintSystemJobInfo.JobStream 坏了吗?

java - 如何用制表符替换行开头的所有空格?